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/