Назад | Перейти на главную страницу

Fluentd Tail из нескольких мест

Я новичок в мире fluentd, поэтому имейте это в виду, отвечая на мой вопрос.

Я пытаюсь отследить несколько мест, я создал 2 исходных тега

<source>
  @type tail
  path E:/server-logs/server/*.log
  pos_file /tmp/server.log.pos
  tag my-server
  <parse>
    @type ltsv
    delimiter_pattern /"\s+/
    label_delimiter ="
    types code:integer,process:integer,thread:integer
  </parse>
</source>

<source>
  @type tail
  path E:/server-logs/services/**/*.log
  pos_file /tmp/services.log.pos
  tag my-services
  <parse>
    @type ltsv
    delimiter_pattern /"\s+/
    label_delimiter ="
    types code:integer,process:integer,thread:integer
  </parse>
</source>

Источники используют фильтр

<filter my-*>
  @type record_transformer
  remove_keys <Msg time
  <record>
    time ${record["<Msg time"]}
  </record>
</filter>

Но журналы должны оказаться в двух разных местах

<match my-services>
  @type stdout
</match>

<match my-server>
  @type kafka2
 @log_level warn
  # list of seed brokers
  brokers kafka:9092
  use_event_time false

  # buffer settings
  <buffer my-server>
    @type file
    path /var/log/td-agent/buffer/td
    flush_interval 3s
  </buffer>

  # data type settings
  <format>
    @type json
  </format>

  # topic settings
 topic_key my-server
  default_topic my-server

</match>

Когда я запускаю fluentd, я вижу эту ошибку 2020-02-14 09:08:43 +0100 [error]: # 0 неожиданная ошибка error_class = Errno :: EMFILE error = "Слишком много открытых файлов @ rb_sysopen - /tmp/server.log .pos "

Я прокомментирую любой из двух источников, он работает нормально.

Я мог бы создать два разных файла конфигурации и запустить fluentd в двух экземплярах, но это лучшая практика?