「CentOS 7」- Journald

内容简介

本文介绍在CenOS 7中如何使用Journald服务以及journalctl命令进行日志管理。

持久化日志

需要修改/etc/systemd/journald.conf配置文件中[Journal]部分的Storage属性。

在CentOS Linux release 7.4.1708 (Core)中,默认Storage=auto配置。还可以配置为:

# “volatile”,将日志存储在内存中,即/run/log/journal目录,如果有必要会自动创建。

# “persistent”,日志将保存在磁盘中,即/var/log/journal目录,如果有必要会自动创建。但是,如果在启动期间磁盘不可写,比如无法成功创建/var/log/journal目录,那依旧会写入/run/log/journal目录,如果有必要会自动创建。

# “auto”,类似于”persistent”属性,但是不会自动创建/var/log/journal目录,因此目录/var/log/journal的存在与否,决定了日志的写入位置。

# “none”,关闭所有的存储,接收到的所有日志数据将被丢弃。将被转发到其他的目标,比如控制台、内核日志缓冲,syslog服务等等。

而”auto”是默认值。所以想要持久化日志,执行如下命令即可:

#!/bin/sh

# 创建目录
mkdir /var/log/journal

# 使用systemd中定义的指令进行初始化
systemd-tmpfiles --create --prefix /var/log/journal

# 重启以生效
systemctl restart systemd-journald

清理日志

可以使用--vacuum-size=选项与--vacuum-time=选项清理日志,但是这只能用于清理归档的日志:

#!/bin/sh

# 查看日志使用空间,包括归档与活跃的日志
journalctl --disk-usage

# 根据时间及大小清理日志
journalctl --vacuum-time=10d
journalctl --vacuum-size=2G

参考文献

manpath.be/journald.conf
How do I display log messages from previous boots under CentOS 7?
Clear systemd journal