早上好!我今天正在使用 Graylog,Ubuntu 上一切运行良好,但我尝试连接到它的两台 CentOS 7.1 服务器表现异常。我一直在做笔记,并将它们粘贴在下面。感谢您花时间阅读本文!
转发到 rsyslog 时,日志将写入远程 /var/log 文件。转发到 Graylog 时,服务不会发送日志,但如果由 rsyslogsudo rsyslogd
而不是 syslog 服务启动,它就会工作
以下是每个流程的输出ps aux | grep sysl
:从服务:
[用户]$ ps aux | grep sysl
root 12362 0.0 0.1 311228 2804 ? SSL 10:19 0:00 /usr/sbin/rsyslogd -n
用户+ 12369 0.0 0.0 112640 928 pts/0 S+ 10:19 0:00 grep --color=auto sysl
从sudo rsyslogd
:
[用户]$ ps aux | grep sysl
根 12320 0.0 0.1 313300 2336 ? SSL 10:18 0:00 rsyslogd
用户+ 12354 0.0 0.0 112640 932 pts/0 S+ 10:18 0:00 grep --color=auto sysl
该应用程序应与此处所述相同:
[用户]$ 哪个 rsyslogd
在/usr/sbin/rsyslogd中
唯一的区别就是标志的使用-n
。
rsyslog systemd 服务文件的内容:
[单元]
描述=系统日志服务
;需要=syslog.socket
[服务]
类型=通知
环境文件=-/etc/sysconfig/rsyslog
ExecStart=/usr/sbin/rsyslogd -n $SYSLOGD_OPTIONS
标准输出=空
[安装]
WantedBy=多用户.目标
;别名=syslog.service
根据 /etc/sysconfig/rsyslog,$SYSLOGD_OPTIONS 为“”
运行sudo /usr/sbin/rsyslogd -n
发送消息,但锁定终端会话(CTRL-C 不会退出,必须关闭 tmux 窗格并重新连接,但 rsyslogd 将保持运行)
从服务中删除-n $SYSLOGD_OPTIONS
将导致服务无法启动(它崩溃了,我确实运行了sudo systemctl daemon-reload
)
答案1
我搞明白了。我太笨了。SELinux 不允许 syslog 通过非标准端口发送日志,而这正是我试图做的。安装policycoreutils-python
并运行sudo semanage port -a -t syslogd_port_t -p tcp 5514
解决了这个问题 :)