Fluentd收集Docker日志(1)

1.配置docker全局变量

1)vi /etc/docker/daemon.json 

{

"log-driver": "fluentd",
   "log-opts": {
     "fluentd-address": "127.0.0.1:24224"
   }

}

2)检查/etc/sysconfig/docker中配置的log server 是否已经配置

 

2.部署fluentd  注意配置文件 和 log存放路径 需要chmod777 

1)新建/home/fluentd.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    10s
  
  • source:确定输入源
  • match: 确定输出目的地
  • filter:确定 event 处理流
  • system:设置系统范围的配置
  • label:将内部路由的输出和过滤器分组
  • @include:包括其它文件

 

2)新建/home/fluentdlog目录

3)将上面目录文件chmod777

4) 运行fluentd docker容器

docker run --privileged=true -it -d -p 24224:24224 -v /home/fluentd.conf:/fluentd/etc/fluent.conf -v /home/fluentdlog:/fluentd/log fluent/fluentd:v1.3

 

3.运行一个容器(此处httpd),在/home/fluentdlog下查看收集的日志

docker run -d --log-driver fluentd --log-opt fluentd-address=0.0.0.0:24224 --log-opt tag="httpd-fluentdtest" --log-opt fluentd-async-connect --log-opt mode=non-blocking --name httpd-fluentdtest2 -p 8060:80 httpd

* fluentd-async-connect 异步日志  这个表示 fluentd挂了,docker服务仍然照常

你可能感兴趣的:(docker)