之前自己從網上找了不少搭建的文檔,但是總是有這樣那樣的問題,有些文檔上一條命令和下一條命令定義的別名都不一致,還有漏腳本的,用起來很費勁,所以重新整理了一下發出來,避免以后忘了。docker的安裝不在本文中贅述。
環境:win10系統,hyper-v虛擬機,CentOS7系統,docker,elasticsearch 7.0.0版,kibana 7.0.0版
一.安裝elasticsearch
#下載elasticsearch鏡像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.0.0 # 創建並運行elasticsearch容器
# 5601是kibana的默認端口,9200是es的默認端口,discovery.type指定單節點模式
docker run -d --name es -p 5601:5601 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0
# 測試
curl http://localhost:9200
二.安裝kibana
# 創建並運行kibana
# -e ELASTICSEARCH_URL指定es的地址,--network指定使用es的網絡,可以借用es開放的5601端口 docker run -it -d -e ELASTICSEARCH_URL=http://localhost:9200 --name kibana --network=container:es kibana:7.0.0
#修改一下kibana的配置文件,要不kibana啟動會報kibana is not ready yet的錯誤 # 進入kibana容器/bin/bash目錄 docker exec -it kibana /bin/bash # 進入config目錄 cd config # 修改kibana的配置文件,啟動時的配置參數都是從這兒來的 vi kibana.yml
elasticsearch.hosts默認是 ["http://elasticsearch:9200"],網上的文檔沒提到過要改,但是我運行kibana會報錯,后來研究出來改成下圖這樣 ,就OK了
然后保存退出文件修改
#退出kibana容器
exit
# 重啟kibana
docker restart kibana
#在瀏覽器輸入虛擬機的url:5601測試一下是否連通,例如:http://172.16.205.175:5601
也許會遇到虛擬機防火牆端口未開的問題,可能會用到下面的腳本開啟端口
# 開放端口 firewall-cmd --zone=public --add-port=5601/tcp --permanent firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --zone=public --add-port=9300/tcp --permanent # 重啟防火牆 firewall-cmd --reload
有些安裝文檔寫了需要配置跨域,但是我沒配,在宿主機上訪問也正常,上面就沒寫
#進入es容器內部 docker exec -it es /bin/bash cd config # 修改配置文件 vi elasticsearch.yml # 加入跨域配置 http.cors.enabled: true http.cors.allow-origin: "*" # 退出es容器 exit # 重啟es容器 docker restart es