docker方式部署elasticsearch集羣和kibana
一、部署環境
服務器:
IP地址 | 操作系統 |
---|---|
192.168.241.11 | CentOs7-1804 |
192.168.241.12 | CentOs7-1611 |
192.168.241.13 | CentOs7-1804 |
docker版本:18.03.1-ce, build 9ee9f40及1.13.1, build 07f3374/1.13.1(docker的安裝本文不贅述)
二、部署elasticsearch
1、從互聯網拉取,或從外部導入elasticsearch鏡像
從互聯網拉取:
docker pull elasticsearch:6.5.4
如果不能連接互聯網,需要找一臺能連互聯網的服務器,現從互聯網拉取鏡像,再導出導入到目標服務器。
鏡像導出:
docker save 93109ce1d590 > /tmp/elasticsearch-6.5.4_docker-img.tar
鏡像導入:
docker load < /tmp/elasticsearch-6.5.4_docker-img.tar
2、修改vm.max_map_count的值
使用docker運行elasticsearch,要求宿主機系統的m.max_map_count的值不小於262144,否則elasticsearch鏡像無法運行。
編輯“/etc/sysctl.conf”文件,在其中增加一行:
vm.max_map_count=262144
保存後,執行“sysctl -p”讓配置生效。
3、運行鏡像
查看鏡像列表,找到鏡像ID:
docker images
運行鏡像:
docker run -d -p 9200:9200 -p 9300:9300 --name=elasticsearch:6.5.4 93109ce1d590
參數“-d”指定容器在後臺運行;參數“-p”用於綁定宿主機與容器的端口,格式爲:主機(宿主)端口:容器端口;“–name”爲建立的容器指定容器名,如果不指定,會自動生成一個名字。
此時使用“docker ps”命令,可以看到容器已經啓動:
4、配置elasticsearch
進入容器:
docker exec -it 59451b1356a4 /bin/bash
elasticsearch的容器內部,安裝目錄爲“/usr/share/elasticsearch”,“/usr/share/elasticsearch/data”爲數據存放目錄,“/usr/share/elasticsearch/logs”爲日誌目錄,生產環境中,可將這兩個目錄映射到外部存儲中。
編輯“/usr/share/elasticsearch/config/elasticsearch.yml”文件,內容如下:
cluster.name: "es-docker-cluster"
network.host: 0.0.0.0
# minimum_master_nodes need to be explicitly set when bound on a public IP
# set to 1 to allow single node clusters
# Details: https://github.com/elastic/elasticsearch/pull/17288
discovery.zen.minimum_master_nodes: 1
network.publish_host: 192.168.241.12
node.name: 192.168.241.12
discovery.zen.ping.unicast.hosts: ["192.168.241.11:9300", "192.168.241.12:9300", "192.168.241.13:9300"]
“cluster.name”爲集羣名,要想將多個節點組成一個集羣,只需將這些節點的集羣名都設置爲同一個就可以了;“network.publish_host”爲當前節點向集羣中其他節點公佈的服務地址,以便其他節點可以發現當前節點,默認與“network.host”相同;“node.name”爲節點名,同一個集羣中各節點的節點名不能相同;“discovery.zen.ping.unicast.hosts”爲集羣中所有節點的列表;“http.port”爲節點對外服務的端口,這裏沒有設置,則默認爲9200。
5、重啓容器
修改配置後,需要重啓容器,讓配置生效:
docker restart 59451b1356a4
在三臺服務器上均按上述步驟部署好elasticsearch後,集羣即部署完成。
三、部署kibana
步驟與elasticsearch的部署差不多,這裏就只簡要敘述一下步驟;kibana只需要部署一臺服務器即可。
1、從互聯網拉取kibana鏡像
docker pull kibana:6.5.4
2、運行kibana鏡像
docker run -d -p 9200:9200 -p 9300:9300 --name=kibana:6.5.4 3c8a8603d365
3、進入kibana容器進行配置
docker exec -it d0c2175c9881 /bin/bash
kibana在容器中的安裝目錄爲“/usr/share/kibana/”。
修改配置文件“/usr/share/kibana/config/kibana.yml”,內容如下:
# Default Kibana configuration from kibana-docker.
server.name: kibana
server.host: "0"
elasticsearch.url: http://192.168.241.13:9200
xpack.monitoring.ui.container.elasticsearch.enabled: true
配置文件裏,我們只需要修改“elasticsearch.url”的值即可,修改爲我們的elasticsearch集羣中任意一個節點的IP地址和端口。
4、退出並重啓容器。
重啓完成kibana後,在瀏覽器中輸入kibana的服務地址(例如本文的爲:http://192.168.241.13:5601/),即可看到kibana的界面:
進入“Monitoring”菜單,就能看到我們集羣的一些概況(該功能默認關閉,第一次打開次頁面會提示開啓,在頁面上點一下開啓即可)。
elasticsearch和kibana更詳細的使用,請讀者自行研究。