尾部多个日志流利

Posted

技术标签:

【中文标题】尾部多个日志流利【英文标题】:Tail multiple logs fluentd 【发布时间】:2014-09-07 17:23:40 【问题描述】:

我正在尝试使用以下配置在 fluentd 中跟踪多个日志:

<source>
  type tail
  tag es.workers.worker1

  format /^\[(?<timestamp>.*? .*?) (?<log_level>[INFO|ERROR][^\]]*)\] (?<message>.*)$/

  path /var/log/upstart/worker1.log
  pos_file /var/lib/fluentd/pos/-var-log-upstart-worker1.log.pos

</source>
<source>
  type tail
  tag es.workers.worker2

  format /^\[(?<timestamp>.*? .*?) (?<log_level>[INFO|ERROR][^\]]*)\] (?<message>.*)$/

  path /var/log/upstart/worker2.log
  pos_file /var/lib/fluentd/pos/-var-log-upstart-worker2.log.pos

</source>
<source>
  type tail
  tag es.workers.worker3

  format /^\[(?<timestamp>.*? .*?) (?<log_level>[INFO|ERROR][^\]]*)\] (?<message>.*)$/

  path /var/log/upstart/worker3.log
  pos_file /var/lib/fluentd/pos/-var-log-upstart-worker3.log.pos

</source>
<source>
  type tail
  tag es.workers.worker4

  format /^\[(?<timestamp>.*? .*?) (?<log_level>[INFO|ERROR][^\]]*)\] (?<message>.*)$/

  path /var/log/upstart/worker4.log
  pos_file /var/lib/fluentd/pos/-var-log-upstart-worker4.log.pos

</source>

这行不通。通常(但并非总是),我只获取第一个文件的日志。有时它是一个不同的文件,但它总是只有一个。关于发生了什么的任何想法?我在 fluentd 错误日志中没有收到任何有意义的错误。

【问题讨论】:

您是否尝试过将所有 4 个文件放在一个尾部配置中,以查看在这种情况下是否可行?我知道这意味着所有消息都将具有相同的标签,但至少可以正常工作。 你能添加其余的conf文件吗?如果我们能看到匹配/过滤器会有所帮助 您好,您的问题是如何解决的? 【参考方案1】:

可以像这样拖尾多个文件(标签将基于文件名)

<source>
  @type tail
  @id in_tail_container_logs
  path /var/lib/docker/containers/*/*-json.log
  pos_file /fluentd/log/containers.log.pos
  time_format "%Y-%m-%dT%H:%M:%S.%L%Z"
  keep_time_key true
  read_from_head true
  tag "docker.*"
  format json
</source>

或者像这样

<source>
  @type tail
  @id in_tail_fos_logs
  @label @LOGS
  path /www/web/log/*.log,/www/web2/log/*.log,/www/web3/log/*.log   
  exclude_path ["/www/web/log/logstash_*.log"]
  pos_file /var/log/td-agent/logs.log.pos
  time_format "%Y-%m-%dT%H:%M:%S.%L%Z"
  read_from_head true
  tag "rowlogs.*"
  format none
</source>

【讨论】:

以上是关于尾部多个日志流利的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell脚本到尾部日志文件的多个远程服务器

询问流利的系统日志聚合器

如何将流利的位输入日志写入本地主机系统日志服务器

无法使用撰写中的服务名称从(流利的)日志驱动程序登录

是否可以使用标准输出作为流利的源来捕获特定日志以写入弹性搜索?

如何使用流利的断言报告对象的名称