部署ES(Elasticsearch)+kibana
1.ES暴露的端口很多
2.ES十分消耗內存
3.ES的數據一般需要掛載出去,放在安全目錄(掛載)
elastic
前往官方手冊
1.下載運行elasticsearch的
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
這里不用--net somenetwork這個參數,這是docker網絡,暫時不用
用下面這個
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
用docker ps -a 看到elasticsearch已經是推出狀態
我又重新啟動一個elasticsearch01容器
然后看了日志,原來是因為我的服務器不夠elasticsearch占有內存導致
這樣的話,設置它的啟動后占有的內存
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch
再用docker ps查看
這里我用的Xterminal軟件,所以可以很直觀的看到很占內存。
也可以用docker stats
驗證是否運行成功,curl localhost:9200
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch
這個內存占用還是太大
在修改為
docker run -d --name elasticsearch04 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" elasticsearch
參數含義:
-e "discovery.type=single-node" 設置環境變量 指定 Elasticsearch 以單節點模式運行(無需集群)
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 設置 JVM 堆內存參數 -Xms512m 初始堆內存,-Xmx512m 最大堆內存
安裝Kibana鏡像
docker pull kibana
docker run -d --name kibana01 -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://elastissearch04:9200" --link elasticsearch:elasticsearch04 kibana
我這里準備kibana連接ES,發現不成功
說是容器不存在,沒有啟動
檢查發現兩處錯誤
啟動成功
嘗試curl loclhost:5601驗證
去web頁面訪問一下。
這并沒有來連接成功
應該是我的容器名地址錯誤
上面的命令應該是沒有給我配置,下面是我的思路
命令:
# 進入 Kibana 容器 docker exec -it kibana /bin/bash # 檢查配置文件是否存在 ls /usr/share/kibana/config/ # 如果不存在,創建配置目錄和文件 mkdir -p /usr/share/kibana/config/ echo "elasticsearch.url: 'http://elasticsearch:9200'" > /usr/share/kibana/config/kibana.yml echo "server.host: '0.0.0.0'" >> /usr/share/kibana/config/kibana.yml # 退出并重啟 Kibana exit docker restart kibana
嘗試ping
能夠ping
理論上可以了
頁面去成功訪問。
設置密碼
# 進入容器 docker exec -it elasticsearch /bin/bash # 編輯配置文件(使用 vi/nano 或直接追加配置) echo "xpack.security.enabled: true" >> /usr/share/elasticsearch/config/elasticsearch.yml echo "xpack.security.http.ssl.enabled: false" >> /usr/share/elasticsearch/config/elasticsearch.yml # 開發環境禁用 HTTPS exit
重啟es服務
docker restart elasticsearch
這里重啟之后,ES就掛掉了,大概率是因為內存的原因
# 進入 Kibana 容器 docker exec -it kibana /bin/bash # 編輯配置文件 echo "elasticsearch.username: 'elastic'" >> /usr/share/kibana/config/kibana.yml echo "elasticsearch.password: '你剛設置的密碼'" >> /usr/share/kibana/config/kibana.yml exit
重啟
docker restart kibana
如果是Kibana掛掉了,又2種方法,
第一種就是通過掛載卷修復(適合生產環境)
第二種就是直接修改 Kibana 配置(推薦)生產環境慎用!完成后需重新啟用認證。
目前沒有學掛載,使用第二種