我正在运行一个纯净的Ubuntu 16.04服务器,我试图弄清楚默认情况下日志是如何设置的。我可以看到
大多数消息似乎同时出现在
为了进一步增加我的困惑,我在主机上执行了
我的问题是:
journald
和rsyslog
都已安装并运行,但对于日志消息的处理方式并不明确。大多数消息似乎同时出现在
/var/log/syslog
和journalctl
中,但我无法在/etc/systemd/journald.conf
(默认情况下基本上都是注释掉的)、/etc/rsyslog.conf
或/etc/rsyslog.d/50-default.conf
中找到任何关于两者之间转发的明确配置。
我尝试寻找官方文档,甚至一篇解释Ubuntu中这两者设置的博客文章,但没有找到任何信息。为了进一步增加我的困惑,我在主机上执行了
logger -p local1.info Test
,发现没有将任何内容写入/var/log/syslog
,而该消息确实出现在journalctl
中。我的问题是:
- journald和rsyslog在Ubuntu 16.04(默认情况下)是如何一起工作的?
为什么从logger
发送的消息似乎只出现在日志中,而不出现在syslog中?
更新:事实证明logger
没有按预期工作是我的疏忽,所以与主要问题无关。
logger -p .info hello
不是有效的命令。您没有提供任何设施名称。 - luv.preetroot@T:~# logger -p mail.info Helllooo root@T:~# journalctl 未找到任何日志文件。 -- 没有条目 --
有什么想法吗? - Hackeronimuxsock
被硬编码为查看/run/systemd/journal/syslog
(SYSTEMD_PATH_LOG
),而/lib/systemd/system/syslog.socket
有ListenDatagram=/run/systemd/journal/syslog
,这触发了/etc/systemd/system/syslog.service -> /lib/systemd/system/rsyslog.service
和debian/patches/Re-enable-journal-forwarding-to-syslog.patch
使ForwardToSyslog
成为默认选项,只进行了最基本的文档更新。 - eichin