docker 單機搭建請移步官方文檔
第一臺機器啟動命令
docker run --name es1 --net elastic -p 9200:9200 -p 9300:9300 \
-e "network.bind_host=0.0.0.0" -e "network.publish_host=172.16.49.91" \
-v /es-data/data:/usr/share/elasticsearch/data \
-it docker.elastic.co/elasticsearch/elasticsearch:8.6.2
啟動成功會生成token如下
通過方框內(nèi)的token,繼續(xù)創(chuàng)建第二臺機器
docker run --name es2 -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -p 9200:9200 -p 9300:9300 --net elastic \
-e "network.bind_host=0.0.0.0" -e "network.publish_host=172.16.49.86" \
-e ENROLLMENT_TOKEN="eyJ2ZXIiOiI4LjYuMiIsImFkciI6WyIxNzIuMTYuNDkuOTE6OTIwMCJdLCJmZ3IiOiI5ZDEyNmVkYWQxNjMzYmI3MGY5MmVkZmMzN2ExMGQ5MzFmNjhlMWE3N2QzZDY1OWFjNDgxZTE0MzI0MzJjYTA3Iiwia2V5IjoiTGZyTHRZWUJURzJmOHNURWdYN3g6OURWRGlFQWlUT1NBNVNWOXdYTE9MZyJ9" \
-it docker.elastic.co/elasticsearch/elasticsearch:8.6.2
踩坑記錄
- 內(nèi)存小的機器必須指定ES_JAVA_OPTS彼哼,不然會報內(nèi)存不夠的錯誤
- -e "network.bind_host=0.0.0.0" -e "network.publish_host=172.16.49.91" 此配置為了解決elasticsearch默認創(chuàng)建證書時对妄,證書的ip列表只包含了容器本地ip,宿主機ip沒有包含敢朱,導致外部無法訪問elasticsearch剪菱,此處我被官方文檔誤導,走入了手動生成ca證書的誤區(qū)(雖然也可以解決拴签,但是需要手動生成容器內(nèi)的http.p12和transport.p12證書孝常,且無法通過token 直接創(chuàng)建服務,異常麻煩)蚓哩,經(jīng)過仔細思考构灸,終于用簡單方式實現(xiàn)
- -p 9200:9200 -p 9300:9300 ,9300的端口綁定必須指定岸梨,不然第二太機器創(chuàng)建的時候會加入不了集群
- -v /es-data/data:/usr/share/elasticsearch/data 喜颁,掛載外部目錄的時候,注意文件夾提權(quán)曹阔,elasticsearch.yml無法掛載在外部半开,會報錯(原因可能是elasticsearch啟動的時候會刪除此文件,并重新生成赃份,導致報錯 Device or resource busy)
es集群從節(jié)點重啟報錯
ERROR: Skipping security auto configuration because it appears that the node is not starting up for the first time. The node might already be part of a cluster and this auto setup utility is designed to configure Security for new clusters only.
此錯誤寂拆,需要刪除容器中的環(huán)境變量ENROLLMENT_TOKEN
方法如下
# 找到容器目錄
docker inspect es2 | grep ResolvConfPath
# 暫停 docker 服務
systemctl stop docker
# 找到 resolv.conf 同級目錄下的 config.v2.json 并移除其文件中的"ENROLLMENT_TOKEN" key
# 啟動docker 服務
systemctl start docker
# 啟動 容器(完美解決)
docker start es2
metricbeat 安裝完成后有兩個地方需要修改,才能順利采集es數(shù)據(jù)
1、配置 /etc/metricbeat/metricbeat.yml 如下漓库,主要用于向es中發(fā)送數(shù)據(jù)
2 恃慧、配置 /etc/metricbeat/modules.d/elasticsearch-xpack.yml 如下,主要用于收集es數(shù)據(jù)