tl; dr
在CentOS 7上,您必须启用日志消息的持久存储:
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
否则,启动之间将不会保留日志日志消息。
细节
是否通过journald
保留先前引导的日志消息/etc/systemd/journald.conf
。CentOS 7下的默认设置是:
[Journal]
Storage=auto
其中journald.conf手册页解释auto
为:
“易失性”,“持久性”,“自动”和“无”之一。如果为“ volatile”,则日记日志数据将仅存储在内存中,即/ run / log / journal层次结构(如果需要,则在其下面)中。如果为“永久”,则数据将最好存储在磁盘上,即在/ var / log / journal层次结构(如果需要的话创建)的下方,并回退到/ run / log / journal(如果需要的话创建)。提早启动,并且磁盘不可写。“ auto ”类似于“ persistent”,但是如果需要的话不会创建目录/ var / log / journal,因此它的存在控制着日志数据的去向。
(强调我的)
因此,systemd-journald.service手册页指出:
默认情况下,日志将日志数据存储在/ run / log / journal /中。由于/ run /是易失性的,因此日志数据在重新引导时会丢失。为了使数据持久化,只需创建/ var / log / journal /,然后systemd-journald将在其中存储数据。
显然,默认设置在Fedora 19中进行了更改(更改为永久存储),并且由于CentOS 7是从Fedora 18派生的,因此默认情况下它仍然不存在。持久性默认情况下是在rsyslogd 编写的日记过的日记/var/log/messages
和轮换版本之外实现的(默认情况下/var/log/messages-YYYYMMDD
运行,并从日记中获取其输入)。
因此,要启用在RHEL / CentOS 7下记录日志的持久日志记录,必须
# mkdir /var/log/journal
然后修复权限并重新启动日志记录,例如通过
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
systemctl restart systemd-journald
应该做。因此,无需重新启动。