Elasticsearch集群模式部署
### Elasticsearch集群模式部署知识点 #### 一、环境准备 **目标环境:** - 操作系统:CentOS 7 - 三台主机IP地址:192.168.90.131, 192.168.90.132, 192.168.90.133 - JDK 版本:JDK 1.8(Elasticsearch 需要依赖 JDK 1.8 或以上版本) **步骤详解:** 1. **准备 CentOS 7 环境:** - 使用 Centos 7 系统作为部署基础。 - 准备三台虚拟机或物理机,并确保它们之间的网络通信畅通无阻。 - 可以通过克隆一台主机然后修改网络配置和其他的相关配置来快速完成环境的准备。 2. **JDK 安装:** - 在每台主机上安装 JDK 1.8。 - 确认 JDK 版本满足 Elasticsearch 的需求。 3. **Elasticsearch 文件准备:** - 下载 Elasticsearch 压缩包。 - 将下载的 Elasticsearch 压缩包保存并解压到 `/usr/local` 目录下。 4. **Kibana 文件准备:** - 同样地,将 Kibana 解压至 `/usr/local` 目录下。 #### 二、Elasticsearch 集群搭建 **具体步骤:** 1. **进入 Elasticsearch 上传目录:** ```bash cd /usr/local/ ``` 2. **解压 Elasticsearch 安装包:** ```bash tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz ``` 3. **进入配置目录:** ```bash cd elasticsearch-7.6.2 ``` 4. **创建数据目录:** - 创建一个名为 `data` 的目录,用于存放 Elasticsearch 的数据。 ```bash mkdir data ``` 5. **进入配置文件目录:** ```bash cd config ``` 6. **编辑 JVM 参数:** - 编辑 `jvm.options` 文件,设置合理的 JVM 参数。 ```bash vim jvm.options ``` 7. **编辑 Elasticsearch 配置文件 `elasticsearch.yml`:** - 设置集群名称、节点名称等。 - 指定数据存储路径、日志文件路径等。 - 设置网络访问地址、端口号。 - 配置集群内节点的初始连接信息。 ```bash vim elasticsearch.yml ``` 示例配置: ```yaml cluster.name: my-elasticsearch node.name: node-1 path.data: /usr/local/elasticsearch-7.6.2/data path.logs: /usr/local/elasticsearch-7.6.2/logs network.host: 0.0.0.0 http.port: 9200 discovery.seed_hosts: ["192.168.90.131:9300", "192.168.90.132:9300", "192.168.90.133:9300"] cluster.initial_master_nodes: ["node-1", "node-2", "node-3"] ``` 8. **系统参数调整:** - 修改 `/etc/security/limits.conf` 和 `/etc/sysctl.conf` 文件。 ```bash vim /etc/security/limits.conf vim /etc/sysctl.conf ``` 示例内容: ```conf # limits.conf * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 # sysctl.conf vm.max_map_count=262145 ``` 9. **使配置生效:** ```bash /sbin/sysctl -p ``` #### 三、启动 Elasticsearch **注意事项:** - Elasticsearch 不应以 root 用户身份启动。 - 创建一个新的用户,并赋予相应的权限。 **步骤:** 1. **创建用户及用户组:** ```bash groupadd admin useradd -g admin -p admin admin chown -R admin:admin /usr/local/elasticsearch-7.6.2 su admin ``` 2. **启动 Elasticsearch:** - 进入 Elasticsearch 的 `bin` 目录。 ```bash cd /usr/local/elasticsearch-7.6.2/bin ./elasticsearch -d ``` 3. **验证启动状态:** - 通过访问 IP 地址加端口号 (例如: `http://192.168.90.131:9200`) 来验证 Elasticsearch 是否已成功启动。 #### 四、设置 Elasticsearch 开机自启 **步骤:** 1. **进入 init.d 目录:** ```bash cd /etc/init.d ``` 2. **编辑启动脚本 `elasticsearch`:** ```bash vim elasticsearch ``` 示例内容: ```bash #!/bin/bash # chkconfig: 345 85 15 # description: Elasticsearch Service ... # 添加启动与停止相关的代码 ... ``` 3. **使服务可开机自启动:** - 使用 `chkconfig` 命令添加服务。 ```bash chkconfig --add elasticsearch chkconfig elasticsearch on ``` 4. **验证服务状态:** - 检查服务是否已被正确添加到开机启动列表。 ```bash chkconfig --list elasticsearch ``` 通过以上步骤,我们可以成功地在 CentOS 7 上搭建一个稳定的 Elasticsearch 集群,并实现其开机自启动功能。这为后续的数据分析、索引和搜索提供了坚实的基础。