尾部多个日志流利
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>
【讨论】:
以上是关于尾部多个日志流利的主要内容,如果未能解决你的问题,请参考以下文章