在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,
Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的日志。
1.Journal默认配置文件路径
/etc/systemd/journald.conf
2.Journal配置文件
mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent
# 压缩历史日志
Compress=yes
SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
# 最大占用空间 10G
SystemMaxUse=10G
# 单日志文件最大 200M
SystemMaxFileSize=200M
# 日志保存时间 2 周
MaxRetentionSec=2week
# 不将日志转发到 syslog
ForwardToSyslog=no
EOF
systemctl restart systemd-journald
3.Journal日常操作
== 查看内核日志
$ journalctl -k
== 查看指定服务日志
$ journalctl -u docker.serivce
== 查看指定日期日志
$ journalctl --since="2018-09-21 10:21:00" -u docker
$ journalctl --since="2018-09-21 10:21:00" --until="2018-09-21 10:22:00" -u docker
== 查看指定级别日志
$ journalctl -p 3 -u docker.service
操作系统提供了从0 (emerg) 到 7 (debug) 一共7个级别的日志,7个级别的含义为:
0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug
== 查看日志占用的磁盘空间
$ journalctl --disk-usage
== 设置日志占用的空间
$ journalctl --vacuum-size=500M
== 设置日志保存的时间
$ journalctl --vacuum-time=1month