前提:必须对 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-
开头表示数据传输成功。