资讯专栏INFORMATION COLUMN

使用Fluentd收集Docker容器日志

ivan_qhz / 961人阅读

摘要:本文介绍使用收集容器日志的方法。提供了很多,默认情况下使用的,它会把容器打到的日志收集起来存到文件中,所看到的日志就是来自于这些文件。

本文介绍使用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


  @type   forward




  @type              file

  path               /fluentd/log/${tag}/${tag}
  append             true
  
    @type            single_value
    message_key      log
  
  
    @type             file
    timekey           1d
    timekey_wait      10m
    flush_mode        interval
    flush_interval    30s
  

新建一个目录比如/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=:24224 
  --log-opt mode=non-blocking 
  --log-opt tag={{.Name}} 
  
第三步:观察日志

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

.
└── 
    └── .20190123.log
参考文档

Configure logging drivers

Customize log driver output

Use Fluentd logging driver

Docker CLI - run

Fluentd

Fluentd - out_file

Fluentd - formatter_single_value

Fluentd - buf_file

Fluentd - buffer

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28075.html

相关文章

  • 使用开源工具fluentd-pilot收集容器日志

    摘要:来自用户的最佳实践分享,如何用阿里开源的日志收集工具收集机器上所有应用日志。具有如下特性一个单独的进程收集机器上所有容器的日志。无论是强大的阿里云日志服务,还是比较流行的组合,甚至是,都能把日志投递到正确的地点。 来自用户的最佳实践分享,如何用阿里开源的Docker日志收集工具fluentd-pilot收集机器上所有Docker应用日志。 fluentd-pilot简介 fluentd...

    Dionysus_go 评论0 收藏0
  • 关于k8s集群容器日志收集的总结

    摘要:我推荐你使用进行日志收集,将作为的出口。集群目前暂时没有提供日志查看机制。以如下的形式启动容器,容器日志将发往配置的。 【作者barnett】本文介绍了k8s官方提供的日志收集方法,并介绍了Fluentd日志收集器并与其他产品做了比较。最后介绍了好雨云帮如何对k8s进行改造并使用ZeroMQ以消息的形式将日志传输到统一的日志处理中心。 容器日志存在形式 目前容器日志有两种输出形式: ...

    jeffrey_up 评论0 收藏0
  • 关于k8s集群容器日志收集的总结

    摘要:我推荐你使用进行日志收集,将作为的出口。集群目前暂时没有提供日志查看机制。以如下的形式启动容器,容器日志将发往配置的。 【作者barnett】本文介绍了k8s官方提供的日志收集方法,并介绍了Fluentd日志收集器并与其他产品做了比较。最后介绍了好雨云帮如何对k8s进行改造并使用ZeroMQ以消息的形式将日志传输到统一的日志处理中心。 容器日志存在形式 目前容器日志有两种输出形式: ...

    or0fun 评论0 收藏0
  • 使用 Fluentd 管理 Docker 日志

    摘要:使用管理日志标签空格分隔日志管理本文作者是,本文原文地址是当前版本的一个问题就是日志管理。任何长时间运行的进程产生的日志都是冗长的,这会导致仔细检查非常困难。所有文件这时能被转发到一个中央日志系统。 使用 Fluentd 管理 Docker 日志 标签(空格分隔): Fluentd Docker 日志管理 本文作者是 jwilder,本文原文地址是 Docker Log M...

    Hujiawei 评论0 收藏0
  • 容器日志处理及实现

    摘要:实现方式是每个挂载目录使用的插件扫描每个容器日志文件,直接发送给。首先根据容器配置的类别调用返回一个方法类型实质就是从工厂类注册的插件去查找,具体源码下文分析。在处理中心统一完成下一步处理。直接接收容器的日志。 容器日志 输出形式: 目前容器日志有两种输出形式: stdout,stderr 标准输出 这种形式的日志输出我们可以直接使用docker logs查看日志, k8s 集群中同样...

    mtunique 评论0 收藏0

发表评论

0条评论

ivan_qhz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<