文章目錄
- Elasticsearch7.2.1 部署docker
-
- 安裝docker
- 安裝docker-compose 單機容器編排工具
- 安裝es7
- 安裝kibana
- docker環境下es和kibana權限認證
- 安裝logstash
Elasticsearch7.2.1 部署docker
安裝docker
1.uname -a 檢視目前系統版本

其中:
uname -r:發行版号 3.10
3.10.0-693.2.2.el7.x86_64
uname -v: 核心編譯日期
#1 SMP Tue Sep 12 22:26:13 UTC 2017
uname -o:作業系統
GNU/Linux
2.yum -y install docker 下載下傳安裝docker 或者sudo wget -qO- https://get.docker.com | sh 下載下傳最新版本
運作docker version檢視docker版本
3.啟動docker服務 service docker start
docker info檢視docker存儲位置
docker ps 檢視是否有docker程序
Docker常用指令:
docker logs -f 容器名 檢視日志
docker images 檢視鏡像檔案
docker ps 檢視正在運作的容器
docker ps –a 檢視所有的容器
docker stop CONTAINER_ID 停止容器
docker container exec -it f0b1c8ab3633 /bin/bash 進入到容器
exit 退出
docker version 檢視版本
docker run -d -p 81:80 nginx 啟動nginx容器
docker rmi imgageid 删除鏡像
docker rm 容器id 删除容器
docker volumes ls 檢視所有volume存儲名稱
docker volumes inspect volumeName 檢視指定存儲名稱的路徑
安裝docker-compose 單機容器編排工具
1.linux安裝
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.Apply executable permissions to the binary:應用(可執行)的權限 即戴綠帽
chmod +x /usr/local/bin/docker-compose
chmod a+x和chmod +x 一緻
u代表使用者,g代表使用者組,o代表其他,a代表所有
檢視版本 $ docker-compose --version
docker-compose version 1.24.1, build 1110ad01
3. 建立軟連結 相當于windows的快捷方式
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
/usr/bin下存在以下快捷方式
docker-compose -> /usr/local/bin/docker-compose
- 啟動
docker-compose up & 背景啟動 若配置檔案修改了會重建容器,沒有持久化的修改丢失
docker-compose -f es.yml up & 指定别名-f
停止:
docker-compose down 删除所有容器
docker-compose stop 停止所有容器
docker-compose stop 容器名 service 如es01和es02
注意:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vm.max_map_count kernel setting needs to be set to at least 262144
故而sysctl -w vm.max_map_count=262144 即/etc/sysctl.conf檔案下新增這一條
sysctl -p使其生效
安裝es7
1.拉取鏡像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.1
2.運作es
docker run --name es7 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.2.1
--name es7将這個容器命名es7
起名之後 docker restart es7 容器的重新開機通過自定義的命名進行操作
-p 9200:9200 将宿主端口映射到Docker容器中的9200端口 此時可通路容器中的es服務 主機:容器
3.修改配置
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
檢視叢集狀态:
curl http://127.0.0.1:9200/_cat/health
檢視所有結點:
curl http://127.0.0.1:9200/_cat/nodes
修改容器的配置檔案:
docker exec -it es01[容器名] bash
vi config/elasticsearch.yml
exit退出容器
安裝kibana
1.拉取鏡像
docker pull docker.elastic.co/kibana/kibana:7.2.1
設定配置:
通過環境變量設定 優先使用環境變量
services:
kibana:
image: docker.elastic.co/kibana/kibana:7.2.1
environment:
SERVER_NAME: kibana.example.org # 預設kibana
ELASTICSEARCH_URL: http://elasticsearch.example.org # 預設localhost:9200
綁定配置:
services:
kibana:
image: docker.elastic.co/kibana/kibana:7.2.1
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
docker環境下es和kibana權限認證
修改docker-compose
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.1
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
- esconfig01:/usr/share/elasticsearch/config
ports:
- 9200:9200
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.1
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata02:/usr/share/elasticsearch/data
- esconfig02:/usr/share/elasticsearch/config
networks:
- esnet
kibana:
image: docker.elastic.co/kibana/kibana:7.2.1
container_name: kibana
environment:
SERVER_NAME: kibana
ELASTICSEARCH_HOSTS: http://對外ip:9200
ELASTICSEARCH_URL: http://對外ip:9200
ports:
- 5601:5601
volumes:
- kibana:/usr/share/kibana/config
volumes:
esdata01:
driver: local
esdata02:
driver: local
esconfig01:
driver: local
esconfig02:
driver: local
kibana:
driver: local
networks:
esnet:
es:7.2.1利用x-pack進行權限認證
首先生成證書
docker-compose up es01& 開啟容器
docker exec -it es01 bash 進入容器
再執行
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
前提是volumes同步了config檔案下的證書
修改配置檔案
在master結點下的config下elasticsearch.yml配置檔案中添加如下配置
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
然後重新啟動
設定密碼
bin/elasticsearch-setup-passwords interactive # auto 自動設定密碼,interactive手動設定密碼
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
同步叢集其他結點:
将證書和以下配置同步到其他結點的config檔案夾下
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
最後重新開機所有結點
此時通路9200需要認證
設定kibana:
修改配置檔案kibana.yml
elasticsearch.username: "kibana"
elasticsearch.password: "你設定的密碼"
此時通路kibana
安裝logstash
1.拉取鏡像
docker pull docker.elastic.co/logstash/logstash:7.2.1