1、下载镜像

  1. docker pull sebp/elk

2、生成容器

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300 -it --name elk sebp/elk

5044 是 Logstash的端口
9200 是 Elasticsearch的端口
5601 是 Kibana的端口

3、需要修改 logstash 配置

进入 容器

docker exec -it elk /bin/bash

#修改文件
vi /etc/logstash/conf.d/02-beats-input.conf

#删除原来的 粘贴新的

input {
    tcp {
        port => 5044
        codec => json_lines
    }
}
output{
    elasticsearch {
    hosts => ["localhost:9200"]
    }
}

4、重启elk

docker restart elk

5、测试访问

访问http://ip:5601 测试能不能打开页面

异常现象:启动ElasticSearch,报下面异常

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决:
1、修改max_map_count值
 sysctl -w vm.max_map_count=262144
2、查看是否修改为262144
 more /proc/sys/vm/max_map_count

3、重新启动ElasticSearch