使用 Systemd 管理日志

内容纲要

查看【Linux】专题可浏览更多内容

相关文章

Journal 是通过 journal 守护进程实现的,它处理由内核、 initrd、服务等产生的所有消息。

查看基本日志信息

# 一些有用的选项:
# -k 仅查看内核信息
# -b 显示当前引导中的日志
# -n 显示指定条数,默认 10
# -f 跟随实时显示
# --utc 以 UTC 格式显示时间戳
journalctl

查询时间范围内日志

# 查看时间范围可以使用 --since 及 --until
journalctl --since "2020-01-01 12:15:00"
journalctl --since "2020-01-01" --until "2020-09-05 03:00"

# 除了具体的时间格式,还可以使用 yesterday、 today、tomorrow 以及 now:
journalctl --since yesterday

# 从早上 9 点到一小时之前
journalctl --since 09:00 --until "1 hour ago"

查询单元日志

# -u 查询指定单元
journalctl -u nginx.service

# 查看 NGINX 服务的实时日志
journalctl -u nginx.service --since "now" -f

查询进程 ID、用户 ID 或群组 ID 的日子

journalctl _PID=8088
journalctl _UID=33 --since today

查看指定优先级的日志

journalctl -p err
  • 0: emerg
  • 1: alert
  • 2: crit
  • 3: err
  • 4: warning
  • 5: notice
  • 6: info
  • 7: debug

日志设置

# 查看日志所占空间
journalctl --disk-usage

# 限制日志大小
sudo journalctl --vacuum-size=1G

# 日志保留时间
sudo journalctl --vacuum-time=1years

更多关于限制日志扩张的设置,可通过编辑 /etc/systemd/journald.conf 来实现:

  • SystemMaxUse=:指定持久化存储中的日志可使用的最大磁盘空间。
  • SystemKeepFree=:指定在向持久性存储添加日志条目时,日志应留出的空间量。
  • SystemMaxFileSize=:控制持久性存储中单个日志文件在被旋转之前可以增长到多大。
  • RuntimeMaxUse=:指定可在易失性存储中使用的最大磁盘空间(在/run文件系统中)。
  • RuntimeKeepFree=:指定将数据写入易失性存储(在/run文件系统内)时,为其他用途预留的空间数量。
  • RuntimeMaxFileSize=:指定一个单独的日志文件在被旋转之前在易失性存储(在/run文件系统内)所能占用的空间量。