systemd

Table of Contents

systemd 拥有强大的处理与系统日志记录功能,不像其他工具,日志被分散在整套系统中。 systemd 尝试提供一套集中化管理系统,统一处理内核及用户级的日志信息。 而这一功能是有 systemd 的组件 journal 的守护进程 journald。 我们使用 journalctl 命令来查看守护进程收集到的日志。

单独执行 journalctl 可以查看系统中的所有日志,如果系统运行时间较长,systemd 的日志会变得很大。

日志文件位置,基本配置: /etc/systemd/journald.conf ,调整文件: /etc/logrotate.conf

1 常规操作

  • -n: 显示最后几行;
  • -f: 显示最新信息,类似( tail -f );
  • -b: 显示本次启动之后的所有日志,在加上数字可以显示上次启动的所有日志( -1 ),以此类推: journalctl -b -2 表示上上次启动的日志;
  • _PID=1: 显示指定进程;
  • --disk-usage: 查看日志所占磁盘空间;
  • -r: 逆序显示日志(排查问题时比较方便);

2 过滤条件

  • 按照 unit 过滤: journalctl -u nginx.service ,可以指定多个 unit 合并查看日志
  • 按照时间过滤: --since--until ,用来设置时间段,时间格式支持多种,比如: YYYY-MM-DD HH:MM:SS

3 输出格式

可使用 -o 指定输出格式(只列出常用的),

  • cat: 只显示信息字段本身,也就是应用日志;
  • json: 标准 JSON 格式,一行一个条目;
  • json-pretty: 适合人类阅读习惯;
  • short: 默认 syslog 类输出格式;
  • verbose: 显示所有的字段;

更多的 journalctl 用法,可以通过 man 命令获取。

4 参考

Date: 2018-06-01 15:50:40

Author: JerryZhang