我正在努力在我的环境中实现syslog-ng OSE。 最后,我想build立一个中央日志logging服务器,但为了让我的脚湿,我开始一个简单的configuration。 我创build了一个包含单个源,单个目标和单个日志的configuration。 当我执行syslog-ng -F (作为通过cli的前台进程)时,我得到了预期的结果(所有的系统消息都被logging到/ var / log / messages)。 但是,如果我作为守护进程(通过systemctl)运行它,我没有收到所有预期的系统消息。 奇怪的是,我还在接收来自内核设备的消息。 这是我的简单configuration:
@version:3.5 @include "scl.conf" source s_sys { system(); internal(); }; destination d_mesg { file("/var/log/messages"); }; log { source(s_sys); destination(d_mesg); };
正如你所看到的,我没有设置任何filter。 我已经validation,该服务正在通过systemctl status syslog-ng运行,它是。 我已经确定并停止并删除所有其他日志守护进程。
syslog-ng.service - System Logger Daemon Loaded: loaded (/usr/lib/systemd/system/syslog-ng.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2016-02-28 17:15:07 EST; 21min ago Docs: man:syslog-ng(8) Main PID: 3416 (syslog-ng) CGroup: /system.slice/syslog-ng.service └─3416 /usr/sbin/syslog-ng -F -p /var/run/syslogd.pid
我的操作系统是CentOS 7.2任何帮助将不胜感激
NevDull,感谢您的input。 它帮助我解决了与此主题类似的以下问题:
在systemctlpipe理下运行时,syslog-ng无法捕获由logger命令发出的消息。 但是,当您通过terminal时,它会按照预期的方式执行,如下所示:
systemctl stop syslog-nd syslog-ng -Fevd logger -p mail.info "I'm testing..." [need to open a new terminal session] cat /var/log/maillog
因此,您可以在/ var / log / maillog文件上看到您的“我正在testing…”消息。
按照您的build议编辑“/etc/systemd/journald.conf”文件解决了这个问题。
感谢分享