RHEL 及 CentOS 原来使用 rsyslog 管理记录档, 在 RHEL / CentOS 7 开始除了保留了 rsyslog 外, 还加入了 journald。systemd 是一个负责开启, 停止及监察进程状态的服务, 所有经 systemd 启动的服务, systemd 会将包括正常启动, 启动或结束时的问题经由 journald 写入纪录档, 而 journalctl 则是用作查看 journald 纪录档的工具。
以下是 RHEL 及 CentOS 操作 Journald 的实用例子。
检查目前的纪录档:
# journalctl
上面 journalctl 的执行结果与 “tail -f /var/log/messages” 差不多, 分别主要是 journalctl 会将 notice 及 warning 用粗字体, 时间会使用本地时区, 每次 reboot 加上新行, error 会用红色突显出来。
查看自今次开机的纪录档:
# journalctl -b
查看昨天的纪录:
# journalctl –since yesterday
查看 error message:
# journalctl -p err
最后 10 件发生的事件:
# journalctl -f
查看 journal 占用了多少空间:
# journalctl –disk-usage
整合 Journald 与 Rsyslog
CentOS 7 默认没有将 Journald 与 Rsyslog 整合, 要将两者整合要开启档案 /etc/syslog.conf 设定:
# vi /etc/rsyslog.conf
找到 “$ModLoad imuxsock” 及 “$ModLoad imjournal” 两行, 并在两行中间加入以下新行内容, 类似这样:
$ModLoad imuxsock
$OmitLocalLogging off
$ModLoad imjournal
$OmitLocalLogging off
$ModLoad imjournal
储存盘案后离开编辑器。然后开启档案 /etc/rsyslog.d/listen.conf:
# vi /etc/rsyslog.d/listen.conf
如果找不到以下一行, 需要自行加入:
$SystemLogSocketName /run/systemd/journal/syslog
储存后便完成整合 journald 及 rsyslog 了。
文档有误:
$OmitLocalLoggin off
应该是
$OmitLocalLogging off
谢谢指正, 已改好.