Я настраиваю кластер ELK с использованием Centos 8 и версии 7.4 Elasticsearch, Logstash и Kibana. Моя проблема в том, что Logstash не собирает события, поступающие через системный журнал. Настройка Logstash для чтения из файлов и отправка их в elasticsearch работает нормально.
Обзор инфра, на этом сервере установлены 3 системы.
Я отключил SELinux, чтобы убедиться, что он не влияет на него. Конфигурация Logstash использует порт 5144, и я вижу, что он отлично работает с:
[root@elk-1 conf.d]# netstat -tulpn | grep 5144
udp 0 0 0.0.0.0:5144 0.0.0.0:* 15838/java
Для правил брандмауэра я использую следующее (firewalld):
firewall-cmd --set-default-zone=internal
firewall-cmd --permanent --zone=internal --add-port=514/tcp #syslog port
firewall-cmd --permanent --zone=internal --add-port=514/udp #syslog port
firewall-cmd --permanent --zone=internal --add-port=5514/tcp #syslog forwarded port
firewall-cmd --permanent --zone=internal --add-port=5514/udp #syslog forwarded port
firewall-cmd --permanent --zone=internal --add-port=5600/tcp #kibana
firewall-cmd --permanent --zone=internal --add-port=5601/tcp #kibana
firewall-cmd --permanent --zone=internal --add-port=9600/tcp #logstash
firewall-cmd --permanent --zone=internal --add-port=9200/tcp #elasticsearch
firewall-cmd --permanent --zone=internal --add-port=9300/tcp #elasticsearch
firewall-cmd --permanent --zone=internal --add-port=80/tcp #http
firewall-cmd --permanent --zone=internal --add-port=443/tcp #https
firewall-cmd --zone=internal --add-forward-port=port=514:proto=udp:toaddr=127.0.0.1:toport=5514 --permanent
firewall-cmd --zone=internal --add-forward-port=port=514:proto=tcp:toaddr=127.0.0.1:toport=5514 --permanent
firewall-cmd --zone=internal --add-masquerade --permanent
Итак, я перенаправляю трафик с 514 на 5144. Я вижу трафик, идущий через порт 514 с помощью tcpdump. Однако я не вижу трафика на порту 5144. Проверка журналов Logstash не дает ничего полезного даже в режиме отладки.
Раздел ввода моего журнала:
input {
udp {
port => 5144
type => syslog
}
}
и вывод:
output {
elasticsearch {
hosts => [ "10.248.1.31:9200" ]
manage_template => false
index => "fgt-%{+YYYY.MM.dd}"
}
}
* ОБНОВИТЬ *
Настройка Logstash для использования root вместо пользователя logstash и файла конфигурации для прослушивания 514 сработала. Однако я знаю, что это не лучшая идея, и хотел бы лучше исправить это.
Есть идеи, почему Logstash не собирает трафик из системного журнала?
Спасибо