Skip to main content
Version: v24.07

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-clusterenvironmentdiscovery.zen.ping.unicast.hostsnetwork.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 官方配置文档