Пересылать журналы Linux на Fluentd на Linux

На одной виртуальной машине у меня это в /etc/rsyslog.d/50-default.conf

*.* @192.168.29.1:42185

#  Default rules for rsyslog.

На вм с fluentd у меня есть это:

У меня есть это в /etc/td-agent/td-agent.conf

<source>
  type syslog
  port 42185
  tag  rsyslog
</source>

<match rsyslog.**>
  type copy
  <store>
    # for debug (see /var/log/td-agent.log)
    type stdout
  </store>
  <store>
    type elasticsearch
    logstash_format true
    flush_interval 10s # for testing.
  </store>
</match>

Но, похоже, ничего не отправляется на удаленную машину, как я смотрю в /var/log/td-agent.log и вижу

2014-08-08 10:51:10 -0700 [info]: adding source type="syslog"
2014-08-08 10:51:10 -0700 [info]: adding source type="forward"
2014-08-08 10:51:10 -0700 [info]: adding source type="http"
2014-08-08 10:51:10 -0700 [info]: adding source type="debug_agent"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="td.*.*" type="tdlog"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="debug.**" type="stdout"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="rsyslog.**" type="copy"
2014-08-08 10:51:10 -0700 [info]: listening fluent socket on 0.0.0.0:24224
2014-08-08 10:51:10 -0700 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"
2

Я не знаю, почему журналы не отправляются, и я не вижу, как определить, что-то не так с rsyslog и он просто не отправляет файлы.

1 ответ

Решение

Если я не ошибаюсь, rsyslog пересылает журналы по TCP (в файле конфигурации это указано как "для надежности"), но слушатель fluentD по умолчанию прослушивает UDP. Это изменение вашей конфигурации fluentD должно позволить вам получать журналы по TCP:

<source>
  type syslog
  port 42185
  protocol_type tcp
  tag  rsyslog
</source>

Я хотел бы проверить с дампом TCP, получает ли трафик агент, если вы все еще не получаете журналы после внесения этого изменения:

tcpdump -i any port 42185

Это также должно указывать на получение TCP или UDP (указывается только port, и не tcp или же udp также)

РЕДАКТИРОВАТЬ: в дополнение к этому, убедитесь, что ваша конфигурация rsyslog верна: все примеры, которые я видел и использовал, имеют двойной @@ в прямом правиле:

*.* @@192.168.29.1:42185

http://www.rsyslog.com/doc/rsyslog_reliable_forwarding.html

Другие вопросы по тегам