1.部署單點(diǎn)ElasticSearch
1.1.創(chuàng)建網(wǎng)絡(luò)
因?yàn)槲覀冞€需要部署kibana
容器,因此需要讓ElasticSearch
和kibana
容器互聯(lián)。這里先創(chuàng)建一個(gè)網(wǎng)絡(luò):
docker network create es-net
1.2.拉取鏡像
考慮到ElasticSearch
的兼容性,這里ElasticSearch
、kibana
統(tǒng)一下載8.6.2
版本
# 拉取鏡像
docker pull elasticsearch:8.6.2
1.3.第一次執(zhí)行docker腳本
docker run -it \
-p 9200:9200 \
-p 9300:9300 \
--name es \
--net es-net \
-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
-e "discovery.type=single-node" \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
elasticsearch:8.6.2
注意第一次執(zhí)行腳本不要加-d
這個(gè)參數(shù),否則看不到服務(wù)首次運(yùn)行時(shí)生成的隨機(jī)密碼和隨機(jī)enrollment token
1.4.創(chuàng)建Elasticsearch掛載目錄
mkdir -p /home/elk8.6.2/elasticsearch
1.5.給創(chuàng)建的文件夾授權(quán)
sudo chown -R 1000:1000 /home/elk8.6.2/elasticsearch
1.6.將容器內(nèi)的文件復(fù)制到主機(jī)上
docker cp es:/usr/share/elasticsearch/config /home/elk8.6.2/elasticsearch
docker cp es:/usr/share/elasticsearch/data /home/elk8.6.2/elasticsearch
docker cp es:/usr/share/elasticsearch/plugins /home/elk8.6.2/elasticsearch
docker cp es:/usr/share/elasticsearch/logs /home/elk8.6.2/elasticsearch
1.7.刪除容器
docker rm -f es
1.8.修改docker腳本,增加-v掛載目錄和-d參數(shù)
docker run -it \
-d \
-p 9200:9200 \
-p 9300:9300 \
--name es \
--net es-net \
-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
-e "discovery.type=single-node" \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
-v /home/elk8.6.2/elasticsearch/config:/usr/share/elasticsearch/config \
-v /home/elk8.6.2/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elk8.6.2/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /home/elk8.6.2/elasticsearch/logs:/usr/share/elasticsearch/logs \
elasticsearch:8.6.2
1.9.修改配置/home/elk8.6.2/elasticsearch/config/elasticsearch.yml:
增加:xpack.monitoring.collection.enabled: true
說(shuō)明:添加這個(gè)配置以后在kibana
中才會(huì)顯示聯(lián)機(jī)狀態(tài),否則會(huì)顯示脫機(jī)狀態(tài)
1.10.重啟容器
docker restart es
1.11.Elasticsearch.8X以上默認(rèn)開(kāi)啟了X-Pack安全功能
說(shuō)明:請(qǐng)求Elasticsearch
必須使用https
測(cè)試:https://ip:9200
用戶(hù)名就是:elastic
,密碼在第一次啟動(dòng)時(shí)保存下來(lái)的信息中查找,輸入賬號(hào)密碼,即可看到elasticsearch
的響應(yīng)結(jié)果:
看到這種信息說(shuō)明啟動(dòng)成功了。
1.12.如果賬戶(hù)密碼忘了,設(shè)置修改賬號(hào)密碼如下:
docker exec -it es /bin/bash
cd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive
ElasticSearch
設(shè)置后賬戶(hù):elastic
,密碼:123456
2.部署kibana
kibana
可以給我們提供一個(gè)ElasticSearch
的可視化界面,便于我們使用。
2.1.拉取鏡像
# 拉取鏡像
#注意要與ElasticSearch版本一致
docker pull kibana:8.6.2
2.2.第一次執(zhí)行docker啟動(dòng)腳本
docker run -it \
-d \
--restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kibana \
-p 5601:5601 \
--net es-net \
kibana:8.6.2
2.3.創(chuàng)建kibana掛載目錄
mkdir -p /home/elk8.6.2/kibana
2.4.給創(chuàng)建的文件夾授權(quán)
sudo chown -R 1000:1000 /home/elk8.6.2/kibana
2.5.將容器內(nèi)的文件復(fù)制到主機(jī)上
docker cp kibana:/usr/share/kibana/config /home/elk8.6.2/kibana
docker cp kibana:/usr/share/kibana/data /home/elk8.6.2/kibana
docker cp kibana:/usr/share/kibana/plugins /home/elk8.6.2/kibana
docker cp kibana:/usr/share/kibana/logs /home/elk8.6.2/kibana
2.6.刪除容器
docker rm -f kibana
2.7.修改配置文件/home/elk8.6.2/kibana/config/kibana.yml:
- 增加:
i18n.locale: “zh-CN”
- 修改:
elasticsearch.hosts: [‘https://172.20.0.2:9200’]
,將IP
改成elasticsearch
的docker ip
,注意一定要用https
- 修改:
xpack.fleet.outputs: [{id: fleet-default-output, name: default, is_default: true, is_default_monitoring: true, type: elasticsearch, hosts: [‘https://172.20.0.2:9200’], ca_trusted_fingerprint: xxxxxxxxxx}]
將IP
改成elasticsearch
的docker ip
,注意一定要用https
2.8.修改docker啟動(dòng)腳本,增加掛載目錄
docker run -it \
-d \
--restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kibana \
-p 5601:5601 \
--net es-net \
-v /home/elk8.6.2/kibana/config:/usr/share/kibana/config \
-v /home/elk8.6.2/kibana/data:/usr/share/kibana/data \
-v /home/elk8.6.2/kibana/plugins:/usr/share/kibana/plugins \
-v /home/elk8.6.2/kibana/logs:/usr/share/kibana/logs \
kibana:8.6.2
2.9.查看kibana日志
docker logs -f kibana
此時(shí),在瀏覽器輸入地址訪問(wèn):http://192.168.1.111:5601
,即可看到結(jié)果。
2.2.DevTools
kibana
中提供了一個(gè)DevTools
界面:
這個(gè)界面中可以編寫(xiě)DSL
來(lái)操作elasticsearch
。并且對(duì)DSL
語(yǔ)句有自動(dòng)補(bǔ)全功能。
4.部署es集群
部署es
集群可以直接使用docker-compose
來(lái)完成,不過(guò)要求你的Linux
虛擬機(jī)至少有4G
的內(nèi)存空間
首先編寫(xiě)一個(gè)docker-compose
文件,內(nèi)容如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-779181.html
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
運(yùn)行docker-compose
以啟動(dòng)集群:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-779181.html
docker-compose up
到了這里,關(guān)于Docker安裝部署ElasticSearch的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!