【Linux】关于 Systemd/Journal
前言
工作中遇到了系统所在分区被撑爆的情况,经排查,系统日志占了绝大部分,现在对系统日志做一下总结,并列出一些常用处理手段
1.
systemd 提供了自己的日志系统(logging system),称为 journal。使用 systemd 日志,无需额外安装日志服务(syslog)。读取日志的命令:
root@ubuntu: journalctl
不过,一般大家更关心的不是本次启动后的日志,而是上次启动时的(例如,刚刚系统崩溃了)。可以使用 -b 参数:
journalctl -b -0 显示本次启动的信息
journalctl -b -1 显示上次启动的信息
journalctl -b -2 显示上上次启动的信息 journalctl -b -2
只显示错误、冲突和重要告警信息
# journalctl -p err..alert
也可以使用数字, journalctl -p 3..1。If single number/keyword used, journalctl -p 3 - all higher priority levels also included.
显示从某个日期 ( 或时间 ) 开始的消息:
# journalctl --since="2012-10-30 18:17:16"
显示从某个时间 ( 例如 20分钟前 ) 的消息:
# journalctl --since "20 min ago"
显示最新信息
# journalctl -f
显示特定程序的所有消息:
# journalctl /usr/lib/systemd/systemd
显示特定进程的所有消息:
# journalctl _PID=1
显示指定单元的所有消息:
# journalctl -u man-db.service
显示内核环缓存消息r:
# journalctl -k
Show auth.log equivalent by filtering on syslog facility:
# journalctl -f -l SYSLOG_FACILITY=10
If your journal directory (by default located under /var/log/journal) contains huge amount of log data then journalctl can take several minutes in filtering output. You can speed it up significantly by using --file option to force journalctl to look only into most recent journal:
# journalctl --file /var/log/journal/*/system.journal -f