内容简介:本文介绍使用Fluentd收集standalone容器日志的方法。Docker提供了很多当有多个docker host的时候你会希望能够把日志汇集起来,集中存放到一处,本文讲的是如何通过
本文介绍使用Fluentd收集standalone容器日志的方法。
Docker提供了很多 logging driver
,默认情况下使用的 json-file
,它会把容器打到stdout/stderr的日志收集起来存到json文件中, docker logs
所看到的日志就是来自于这些json文件。
当有多个docker host的时候你会希望能够把日志汇集起来,集中存放到一处,本文讲的是如何通过 fluentd logging driver 配合 fluentd 来达成这一目标。
目标:
- 将standalone容器打到stdout/stderror的日志收集起来
- 收集的日志根据容器名分开存储
- 日志文件根据每天滚动
第一步:配置Fluentd实例
首先是配置文件 fluent.conf
:
<source>
@type forward
</source>
<match *>
@type file
path /fluentd/log/${tag}/${tag}
append true
<format>
@type single_value
message_key log
</format>
<buffer tag,time>
@type file
timekey 1d
timekey_wait 10m
flush_mode interval
flush_interval 30s
</buffer>
</match>
新建一个目录比如 /home/ubuntu/container-logs
,并赋予权限 chmod 777 /home/ubuntu/container-logs
。
然后启动Fluentd实例,这里使用的 Docker 方式:
docker run -it \ -d \ -p 24224:24224 \ -v /path/to/conf/fluent.conf:/fluentd/etc/fluent.conf \ -v /home/ubuntu/container-logs:/fluentd/log fluent/fluentd:v1.3
第二步:指定容器的logging driver
在启动容器的时候执行使用fluentd作为logging driver:
docker run -d \
...
--log-driver=fluentd \
--log-opt fluentd-address=<fluentdhost>:24224 \
--log-opt mode=non-blocking \
--log-opt tag={{.Name}} \
<image>
第三步:观察日志
到 /home/ubuntu/container-logs
目录下能够看到类似这样的目录结构:
.
└── <container-name>
└── <container-name>.20190123.log
参考文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 容器化日志收集方案-EFK
- 容器服务Windows Kubernetes使用阿里云日志服务来收集容器日志
- k8s容器日志收集方案
- elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志
- JVM 笔记:垃圾收集算法与垃圾收集器
- JVM 笔记:垃圾收集算法与垃圾收集器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Haskell School of Music
Paul Hudak、Donya Quick / Cambridge University Press / 2018-10-4 / GBP 42.99
This book teaches functional programming through creative applications in music and sound synthesis. Readers will learn the Haskell programming language and explore numerous ways to create music and d......一起来看看 《The Haskell School of Music》 这本书的介绍吧!
XML 在线格式化
在线 XML 格式化压缩工具
HSV CMYK 转换工具
HSV CMYK互换工具