我尝试使用以下配置以流利方式拖尾多个日志:
<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>
这不起作用。通常(但不总是),我只获取第一个文件的日志。有时它是一个不同的文件,但它总是只有一个。关于发生了什么的任何想法?我在流利的错误日志中没有收到任何有意义的错误。
答案 0 :(得分:0)
可以像这样对多个文件定序(标签将基于文件名)
<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>