Передайте журналы Linux fluentd на Linux

На одном VM у меня есть это в /etc/rsyslog.d/50-default.conf

*.* @192.168.29.1:42185

#  Default rules for rsyslog.

На vm с 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 и это просто не отправляет файлы.

2
задан 8 August 2014 в 21:51
1 ответ

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

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

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

tcpdump -i any port 42185

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

EDIT: в дополнение к этому, убедитесь, что ваш rsyslog конфиг корректен: все примеры, которые я видел и использовал, имеют двойной @@ в прямом правиле:

*.* @@192.168.29.1:42185

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

3
ответ дан 3 December 2019 в 10:46

Теги

Похожие вопросы