docker搭建elk

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/

原文地址:https://www.cnblogs.com/wtujvk/p/10018188.html