Пересылать журналы 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