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

Отправка журналов на удаленный сервер с помощью rsyslog

Я пытаюсь настроить централизованное ведение журнала с помощью Logstash, Elasticsearch и Kibana, и у меня возникают проблемы с получением журналов на мой сервер журналов.

Logstash прослушивает TCP 5000 и успешно получает журналы с одного из моих серверов, но не с остальных. Я могу подключиться к моему серверу журналов по telnet на 5000, и Logstash принимает сообщения, поэтому я считаю, что проблема связана с отправкой журналов rsyslog.

Я использую CentOS 6.5 и добавил в /etc/rsyslog.conf следующее:

$WorkDirectory /var/lib/rsyslog # where to place spool files
*.* @@logs.<domain_removed>.com:5000

После внесения изменений rsyslog перезапущен без ошибок, но Logstash ничего не получает. Каталог спула пуст, поэтому я не верю, что это сбои при отправке.

May 16 20:46:10 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-    pid="5097" x-info="http://www.rsyslog.com"] exiting on signal 15.
May 16 20:46:10 kernel: imklog 5.8.10, log source = /proc/kmsg started.
May 16 20:46:10 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="3556" x-info="http://www.rsyslog.com"] start

Есть идеи, как отследить ошибку?

РЕДАКТИРОВАТЬ: эта проблема была вызвана SELinux

SELinux блокировал отправку rsyslog на порт 5000. По умолчанию SELinux разрешает rsyslog отправлять трафик только по UDP 514.

Я добавил исключение в SELinux:

$sudo semanage port -a -t syslogd_port_t -p tcp 5000