前提:必须对 docker log 有所了解,不了解的前往>> logging
Docker logging driver
对 Docker 而言,其默认的 logging driver 是 json-file,如果在启动时没有特别指定,都会使用这个默认的 logging driver。
json-file 会将我们在控制台通过 docker logs 命名看到的日志都保存在一个 json 文件中,我们可以在服务器 Host 上的容器目录中找到这个 json 文件。
日志路径
| 1 | /var/lib/docker/containers/<container-id>/<container-id>-json.log | 
安装 Filebeat
注意这里下载和我们ELK对应的版本.
配置 Filebeat
这里我们需要告诉 Filebeat 要监控哪些日志文件及将日志发送到哪里去,因此我们需要修改一下 Filebeat 的配置:
| 1 | cd /etc/filebeat | 
要修改的内容为:
监控哪些日志?
| 1 | filebeat.inputs: | 
这里指定 paths:/var/lib/docker/containers/*/*.log,另外需要注意的是将 enabled 设为 true。
将日志发到哪里?
| 1 | #-------------------------- Elasticsearch output ------------------------------ | 
这里指定直接发送到 ElasticSearch,配置一下ES的接口地址即可。
启动 Elasticsearch
克隆 示例代码 并启动
| 1 | docker-compose up -d | 
启动 Filebeat
| 1 | ./filebeat -c filebeat.yml & | 
验证数据
打开网址 看到索引为 filebeat- 开头表示数据传输成功。


