使用Fluentd收集Docker容器日志

本文介绍使用Fluentd收集standalone容器日志的方法。

Docker提供了很多 logging driver ,默认情况下使用的 json-file ,它会把容器打到stdout/stderr的日志收集起来存到json文件中, docker logs 所看到的日志就是来自于这些json文件。

当有多个docker host的时候你会希望能够把日志汇集起来,集中存放到一处,本文讲的是如何通过 fluentd logging driver 配合 fluentd 来达成这一目标。

目标:

首先是配置文件 fluent.conf :

新建一个目录比如/home/ubuntu/container-logs,并赋予权限chmod 777 /home/ubuntu/container-logs。

然后启动Fluentd实例,这里使用的Docker方式:

在启动容器的时候执行使用fluentd作为logging driver,下面以standalone容器举例:

注意上面的--log-opt tag={{.Name}}参数。

如果是docker compose / docker stack deploy部署,则在docker-compose.yaml中这样做 :

到/home/ubuntu/container-logs目录下能够看到类似这样的目录结构:

上面的示例,在实践中,并没有完全采用,不过采用日期形式记录容器日志的 fluentd 配置信息基本完全采用。我采用独立的docker-compose编辑文件处理fluentd的启动

其他输出日志的容器采用独立的编排

扩展阅读:gpgpus per machine ... fluent输出动画 ... fluent courant number ... fluent初始化后卡住 ... fluent h5 ... fluent 瞬态jou文件 ... fluent open udf library ... 如何用fluent做流场动画 ... fluent显示完整 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网