docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /opt/data/elk-data:/var/lib/elasticsearch --name elk sebp/elk
1.運行完後報錯:
max virtual memory areas vm.max_map_count [26214] is too low, increase to at least [262144]
這是因爲elasticsearch用戶擁有的內存權限太小,至少需要262144。
執行
sysctl -a|grep vm.max_map_count
顯示:
vm.max_map_count = 26214
使用命令修改:
sysctl -w vm.max_map_count=262144
然後在 /etc/sysctl.conf文件最後添加一行
vm.max_map_count=262144。
使用docker ps 查看是否在運行,使用docker images找到本地鏡像,使用 docker start [imageId] 運行已存在的鏡像。(docker run 生成鏡像)
2. 訪問elk。(我的虛擬機ip是192.168.1.90)
2.1 5601端口查看Kibana:
http://192.168.1.90:5601/
2.2 es 訪問9200端口 (http://192.168.1.90:9200/)
2.3 進入容器內 docker exec -it <container-name> /bin/bash
docker exec -it 2103a6c2dccb1a6e937d8292bae2fb0ae745749310d84a5fc30d6952125f7239 /bin/bash
進入容器後執行 /opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
如果報錯
就執行service logstash stop
出現 Successfully started Logstash API endpoint {:port=>9600} 就是說明配置成功。
this is a dummy entry
然後回車
瀏覽器中打開: http://192.168.1.90:9200/_search?pretty (192.168.1.90換成docker宿主機地址)
訪問5601端口查看 (http://192.168.1.90:5601/)
查看日誌:
參考資料:
Docker ELK使用文檔 https://elk-docker.readthedocs.io/