Elasticsearch
假设有如下服务器用于设置 Elasticsearch 集群:
- Elasticsearch Node 1
192.168.1.6
- Elasticsearch Node 2
192.168.1.7
- Elasticsearch Node 3
192.168.1.9
#
1. 配置 Node 1登录 Elasticsearch Node 1 192.168.1.6
并切换工作目录
cd /data/tencent-survey-v23.10
执行以下命令生成证书
证书生成后将放置于 etc/elasticsearch/certs/elastic-certificates.p12
,需要将该证书拷贝至其他 Elasticsearch 节点
docker compose -f docker-compose-certsgen.yaml up
修改 docker-compose-pass.yaml
文件 elasticsearch-server-cluster
里 environment
的 discovery.zen.ping.unicast.hosts
与 network.host
为实际 IP 地址
- discovery.zen.ping.unicast.hosts=192.168.1.6,192.168.1.7,192.168.1.8- network.host=192.168.1.6
#
2. 启动 Node 1注意:启动 Docker Compose 之前需要设置 vm.max_map_count
至少为 262144
,否则 Elasticsearch 无法启动。
sudo sysctl -w vm.max_map_count=262144docker compose -f docker-compose-paas.yaml up elasticsearch-server-cluster
如果 es 第一次启动失败, 可能是 ./var/lib/elasticsearch/ 的权限问题
chmod 777 -R ./var/lib/elasticsearch/
#
3. 验证 Node 1通过执行以下命令来确认 Node 1 已经成功启动
curl elastic:$ES_PASSWORD@192.168.1.6:9200/_cat/nodes?v
# 正常情况下会有类似如下输出:# ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name# 192.168.1.6 61 79 2 0.10 0.36 0.39 mdi - erqssq9
#
4. 配置 Node 2将 Node 1 的证书 etc/elasticsearch/certs/elastic-certificates.p12
拷贝至 Node 2 工作目录下 etc/elasticsearch/certs
同 Node 1 类似,修改 docker-compose-pass.yaml
文件相应部分为实际 IP 地址
- discovery.zen.ping.unicast.hosts=192.168.1.6,192.168.1.7,192.168.1.8- network.host=192.168.1.7
#
5. 启动 Node 2同 启动 Node 1
#
6. 验证 Node 2通过执行以下命令来确认 Node 2 已经成功启动
curl elastic:$ES_PASSWORD@192.168.1.7:9200/_cat/nodes?v
# 正常情况下会有类似如下输出:# ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name# 192.168.1.7 61 79 2 0.10 0.36 0.39 mdi - Wndi3ZF
#
7. 配置其他 Node重复 Node 2 的配置步骤
#
8. 验证集群状态curl elastic:$ES_PASSWORD@192.168.1.6:9200/_cat/nodes?v
# 正常情况下会有类似如下输出:# ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name# 192.168.1.6 61 79 2 0.10 0.36 0.39 mdi - erqssq9# 192.168.1.7 60 80 1 0.03 0.22 0.34 mdi * Wndi3ZF
#
9. 修改 Elasticsearch 连接地址登录所有应用服务器并切换至工作目录,修改 .env
中以下配置为 Elasticsearch Node 1 的实际连接信息:
# Elasticsearch 6.8ES68_HOST=elastic:$ES_PASSWORD@192.168.1.6:9200# Elasticsearch 6.8 for logLOG_ES_HOST=elastic:$ES_PASSWORD@192.168.1.6:9200
注意,需要在所有应用服务器中重复执行
修改完成后,使用以下命令重启所有应用服务
:
docker compose -f docker-compose.yaml restart
#
其他更多详细信息,可参考 Elasticsearch 6.8 官方配置文档