我正在运行一个logstash发货人,rsyslog将日志发送到5140端口的logstash,我可以确认数据包是否到达:
tcpdump -vvv -A -i any port 5140
我的logstash配置如下:
input {
udp {
type => "syslog"
port => 5140
}
}
filter { }
output {
stdout {
codec => rubydebug
}
redis {
host => "172.30.114.151"
key => "logstash"
port => "6379"
data_type => "list"
}
}
我还尝试了以下输入:
input {
syslog {
port => 5140
}
}
哪个netstat显示tcp Listen而不是udp。
我已使用以下标志禁用ipv6 for logstash:
_JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
当我跑步时:
netstat -tulpan
我明白了:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1191/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2135/master
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 7593/rsyslogd
tcp 0 0 172.26.33.182:22 172.30.230.152:47975 ESTABLISHED 2260/sshd:
tcp 0 0 172.26.33.182:22 172.30.230.151:42811 ESTABLISHED 6781/sshd:
tcp6 0 0 :::22 :::* LISTEN 1191/sshd
tcp6 0 0 :::4440 :::* LISTEN 1296/java
tcp6 0 0 ::1:25 :::* LISTEN 2135/master
tcp6 0 0 :::514 :::* LISTEN 7593/rsyslogd
udp 0 0 0.0.0.0:5140 0.0.0.0:* 8499/java
udp 0 0 0.0.0.0:37934 0.0.0.0:* 653/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 653/avahi-daemon: r
进程8499是logstash。我试过以root身份和其他端口运行。我似乎无法使用logstash来“监听”udp
我还确认该端口已打开并正在使用:
telnet <ipaddress> 5140
Selinux被禁用:
sestatus
SELinux status: disabled
我需要一些帮助。我搜索并搜索过。我已经调查了我遇到的所有其他解决方案,没有运气。这似乎是重复的。但是,其他解决方案对我不起作用。这是一个centos安装。还试过端口514,10514无济于事。
答案 0 :(得分:0)
您必须允许防火墙中的端口,因为centos带有默认防火墙,该默认防火墙不允许流量进入logtash输入
通过以下命令允许特定端口上的流量:
systemctl disable firewalld
systemctl stop firewalld
使用以下命令禁用防火墙或停止服务:
${pwd}
**禁用防火墙可能是一个安全问题,但出于实验目的,您可以尝试一下