找了很多使用 docker-elk 搭建的博客, 英文的阅读吃力不说, 镜像源也是慢的让人头皮发麻, 所以从新编排了一个
docker-compose
,源都是从
https://hub.docker.com/ 上找的, 即便拉的国内镜像源应该也能很好的支持了吧?
18.06.0-ce
1.22.0
给每一个容器最少分配 1G 的内存git
5.*
5.*
5.*
在各个目录下都有对应的 config 配置, 根据各自的状况自行处理github
拿默认的 logstash/confg/test.conf 中的配置举例:docker
input { file { #这里的路径指的是 logstash 容器中的路径, 外部接入须要使用 volume 进行目录映射 path => "/logs/input/*" } # 在 logstash 容器中的输入 stdin {} # 由于作了本地5000端口和容器5000端口进行绑定, 因此能够用 nc 工具测试一下 # echo "Test Logstash TCP Input Plugin" | nc localhost 5000 tcp { type => "tcp" port => 5000 mode => "server" } } output { file { #这里的路径指的是 logstash 容器中的路径, 外部接入须要使用 volume 进行目录映射 path => "/logs/output/%{+yyyy-MM-dd-HH}/%{host}.log" } stdout { codec => rubydebug } elasticsearch { hosts => "elasticsearch:9200" # 这里设置的 index 在 kibana 中会用到 index => "file-log-%{+YYYY.MM}" } }
执行浏览器
git clone https://github.com/gaopengfei123123/docker-elk.git && cd docker-elk docker-compose up -d --build
等一会看到执行成功的提示ruby
Creating docker-elk_elasticsearch_1 ... done Creating docker-elk_logstash_1 ... done Creating docker-elk_kibana_1 ... done
在本地浏览器输入 http://localhost:5601/
进入 kibana 界面bash
注意, 第一次启动时有可能会出现提示 elasticsearch not found
这类的问题, 能够先等个一两分钟刷新一下就行了, 若是仍是不行就谷歌或者提 issue 解决一下elasticsearch
同目录下输入tcp
docker-compose stop
则中止全部服务工具
在 logs/input/
目录下新增个 test.log 文件, 而后输入点东西验证一下, 或者命令行执行echo "Test Logstash TCP Input Plugin" | nc localhost 5000
经过 tcp 发送日志测试
docker-compose logs -f
查看各容器日志输出