我遇到了Ubuntu16.04.4机器运行系统d和syslog-ng (3.5.6-2.1)的问题,syslog-ng没有接收到由进程记录到syslog的消息(我们称之为X)。深入研究表明,日志正在劫持X记录的消息,因此他们从未到达syslog-ng。
在搜索了一下之后,似乎需要让systemd意识到syslog-ng正在提供syslog服务,因此日志接收到的消息也被发送到syslog-ng。然而,通过查看syslog-ng的systemd单元,发现情况应该已经是这样的,因为它包含:
[Install]
WantedBy=multi-user.target
Alias=syslog.service但是即使syslog-ng已经在systemctl enable syslog-ng中显式地启用了,它似乎是符号链接。
/etc/systemd/system/syslog.service -> /lib/systemd/system/syslog-ng.service在系统里不见了。卸载和重新安装syslog,然后运行systemctl enable syslog-ng,实际上是重新创建了这个符号链接,这使得它能够工作。
现在的实际问题是,我有一台机器,其中启用了syslog-ng系统单元,但是符号链接缺失了,在这种情况下,systemctl enable syslog-ng不会重新创建丢失的符号链接,因为systemd似乎看到syslog-ng已经启用,因此不需要检查是否存在符号链接。
当然,理论上我可以手动创建符号链接,但这里的问题是:
我已经查看了我可以找到的系统文档,但是对于何时/如何/在什么情况下创建这些符号链接,这是令人沮丧的模糊。
任何帮助都将不胜感激!
发布于 2018-06-28 13:11:26
syslog 3.5是相当老的,而且有点错误,我建议升级到一个更新的版本(目前3.16是最新版本)。您可以在开发人员的回购程序中找到包:https://build.opensuse.org/project/show/home:laszlo_布迪:赛斯洛格
https://serverfault.com/questions/918655
复制相似问题