Elasticsearch 实战:Elasticsearch Linux 单机安装
要在 Linux 系统上安装单机版 Elasticsearch,遵循以下步骤:
**1. **环境准备
-
Java 运行环境:确保已安装最新稳定版的 Java Development Kit (JDK),版本要求通常在 Elasticsearch 官方文档中说明。可通过以下命令检查 Java 版本:
java -version
-
操作系统:确保操作系统满足 Elasticsearch 的最低要求。通常推荐使用 Linux 64-bit 系统,如 Ubuntu、CentOS 等。
-
磁盘空间:预留足够的磁盘空间以存放数据、日志和其他文件。
-
用户与权限:创建一个非 root 用户(如
elasticsearch
),并为其分配必要的文件系统权限。推荐不要以 root 用户运行 Elasticsearch。
**2. **下载 Elasticsearch
访问 Elasticsearch 官方下载页面 下载适用于 Linux 的 Elasticsearch 安装包。通常选择与 Java 版本兼容的最新稳定版。
**3. **解压安装包
将下载的 .tar.gz
文件解压到一个合适的目录,如 /usr/local/elasticsearch
。确保所有节点都在同一版本下运行。
**4. **配置单机节点
在 Elasticsearch 安装目录下,编辑 config/elasticsearch.yml
配置文件,进行以下设置:
-
网络绑定:指定节点监听的 IP 地址和端口:
network.host: localhost # 或者具体的 IP 地址,如 192.168.1.100 http.port: 9200 # 可以设置不同的端口避免冲突 transport.port: 9300 # 可以设置不同的端口避免冲突
-
数据路径:指定数据存储路径:
path.data: /var/lib/elasticsearch # 根据实际情况配置
-
日志路径:指定日志输出路径:
path.logs: /var/log/elasticsearch # 根据实际情况配置
-
内存锁定:在单机环境中,为了防止 Elasticsearch 因为内存不足而被系统强制杀掉,可以开启内存锁定:
bootstrap.memory_lock: true # 可能需要修改系统配置以允许锁定内存
-
堆大小:根据服务器资源调整 JVM 堆大小:
# 在 jvm.options 文件中修改 -Xms1g -Xmx1g
**5. **设置系统限制
在 /etc/security/limits.conf
或对应系统的用户限制配置文件中,增加以下行,以允许 Elasticsearch 使用更多的文件描述符和内存:
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
**6. **启动节点
切换到 Elasticsearch 安装目录,以非 root 用户身份执行以下命令启动单个节点:
sudo -u elasticsearch ./bin/elasticsearch
观察控制台输出和日志文件,确认节点成功启动且无异常。
**7. **验证安装
使用 curl、Postman 或任何 HTTP 客户端,发送如下请求到本地的 HTTP 端口(如 localhost:9200
),检查 Elasticsearch 响应:
curl -X GET "localhost:9200"
预期返回 Elasticsearch 的版本信息和状态。
**8. **防火墙设置(可选)
根据实际需求,配置防火墙规则以允许外部访问 Elasticsearch 的 HTTP 和 Transport 端口(默认分别为 9200 和 9300)。例如,在使用 ufw
的 Ubuntu 系统中:
sudo ufw allow 9200/tcp
sudo ufw allow 9300/tcp
**9. **安全与权限设置(可选)
对于生产环境,强烈建议启用 Elasticsearch 的安全性功能,如 X-Pack 或 Elastic Stack Security。这包括设置密码、限制网络访问、启用 TLS 加密、配置角色和权限等。请参阅官方文档以了解详细步骤。
通过以上步骤,您已在 Linux 系统上成功安装了单机版 Elasticsearch。后续可根据业务需求进行索引、文档操作、查询、聚合等实战操作。务必定期备份数据,并保持 Elasticsearch 及其依赖组件(如 Java)的版本更新。