Следить за несколькими журналами 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.


person user1427661    schedule 17.07.2014    source источник
comment
Вы пробовали поместить все 4 файла в одну конфигурацию с одним хвостом, чтобы увидеть, будет ли это работать в этом сценарии? Я знаю, что это означает, что все сообщения будут иметь один и тот же тег, но, по крайней мере, чтобы что-то работало.   -  person dutzu    schedule 14.01.2016
comment
Не могли бы вы добавить остальную часть файла conf? Это могло бы помочь, если бы мы могли видеть совпадение / фильтр   -  person Yaron Idan    schedule 15.02.2018
comment
Привет, как вы решили свою проблему?   -  person S Andrew    schedule 21.05.2018


Ответы (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>
person Al-waleed Shihadeh    schedule 18.02.2020