ELK - Logstash 未接收系统日志事件

ELK - Logstash 未接收系统日志事件

我正在使用 Centos 8 和 Elasticsearch、Logstash 和 Kibana 7.4 版设置 ELK 集群。我的问题是 Logstash 无法接收通过 syslog 发送的事件。将 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。我可以使用 tcpdump 查看通过端口 514 的流量。但是我没有看到端口 5144 上有任何流量。即使在调试模式下,检查 Logstash 日志也没有任何帮助。

我的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 没有从 syslog 中获取流量,您有什么想法吗?

谢谢

相关内容