Fluentd 服务器log aggregators根据tag输出到指定路径

Fluentd 配置文件-client fluentd 到 server fluentd,使用fluentd的高可用配置方式(Fluentd High Availability Configuration)的配置方式,从各个log forwarders中收集日志发送到log aggregators。

收集到的日志并不希望放在一起,仍然希望按照以前docker容器的container_id,container_name进行分类,放入目录中。

log aggregators端配置(Fluentd服务器端)

# 安装命令
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-file-alternative
/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-forest

# 配置文件/etc/td-agent/docker_in04.conf
# 使用match到的tag列表的第一个(tag计数从0开始)作为目录输出
<source>
  type forward
  port 24224
  bind 0.0.0.0
  log_level error
</source>

<match docker.test*>
  type stdout
</match>

<match docker.*>
  type forest
  subtype file
  <template>
    type file_alternative
    path /home/lee/fluentd-log/${tag_parts[1]}/temp
  </template>
</match>

执行命令:/opt/td-agent/embedded/bin/fluentd -c docker_in04.conf

log forwarders端(Fluentd客户端端)

# fluentd配置文件
<source>
  type forward
  log_level error
  port 24224
  bind 0.0.0.0
</source>

<match docker.*>
    type forward    
    <server>
    host 192.168.126.136
    port 24224
    </server>
    flush_interval 10s
</match>

# 运行docker容器,将容器id作为tag
docker run --name temp01 --log-driver=fluentd --log-opt tag="docker.{{.FullID}}" \ 
--log-opt fluentd-async-connect=true -d -p 8002:8000 imekaku/simple-web python /work/simple.py

在浏览器中访问该服务,其中的日志就会被log forwarders端的fluentd收集,并发送给log aggregators端的fluentd,并会按照配置文件,生成相应的目录并输出

参考链接

タグの一部をファイル名に使う(在文件名称中使用标签的一部分)

fluent-plugin-forest插件

fluent-plugin-file-alternative插件

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部