在我的 ubuntu 14.04 机器上,rsyslog 服务运行正常......
service rsyslog status
返回,
rsyslog start/running, process 794
cat /proc/794/cmdline
表明,
rsyslog #meaning rsyslog is running with default params.
现在,我正在尝试检查 rsyslog 是否在端口 514 上有 TCP/UDP 侦听连接,使用:
netstat -lnup | grep 514 #for udp
netstat -lntp | grep 514 #for tcp
两个 netstat 命令都返回空。
不过,如果没有监听端口,它如何运行服务器呢?
答案1
默认情况下,rsyslog 不侦听 INET 套接字。相反,它绑定到/dev/log
,这是一个Unix 域套接字。
# ls -la /proc/$(pidof rsyslogd)/fd
total 0
dr-x------ 2 root root 0 Jul 20 11:28 .
dr-xr-xr-x 7 root root 0 Jul 20 11:05 ..
lrwx------ 1 root root 64 Jul 20 11:28 0 -> socket:[3559]
l-wx------ 1 root root 64 Jul 20 11:28 1 -> /var/log/syslog
...
# netstat -x | grep 3559
unix 19 [ ] DGRAM 3559 /dev/log
答案2
也检查下面的命令,
# netstat -anp | grep rsyslogd
unix 9 [ ] DGRAM 74832746 5570/rsyslogd /dev/log
或者
# netstat -anp | grep 514
tcp 0 0 192.168.122:45405 192.168.0.210:514 ESTABLISHED 5570/rsyslogd
tcp 0 0 192.168.122:45459 192.168.0.210:514 ESTABLISHED 5570/rsyslogd
答案3
netstat 在 CentOS 7 中似乎已被弃用。使用 ss 命令如下
ss -tulpn | grep 514
您还可以从 rsyslog conf 中识别使用的端口:
sudo less /etc/rsyslog.conf