
Я пытаюсь настроить централизованное ведение журналов с помощью 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
Есть идеи, как отследить ошибку?
EDIT: Эта проблема была вызвана SELinux
решение1
SELinux блокировал отправку rsyslog на порт 5000. По умолчанию SELinux разрешает rsyslog отправлять трафик только на UDP 514.
Я добавил исключение в SELinux с помощью:
$sudo semanage port -a -t syslogd_port_t -p tcp 5000