首页/系统/信创系统运维速查/journalctl 输出格式与字段检索
服务与运维65 条

journalctl 输出格式与字段检索

journalctl 可切换输出格式:short-iso 带时区时间便于对账,verbose/json-pretty 展示每条日志的结构化字段(_PID、_COMM、SYSLOG_IDENTIFIER 等),-F 列出字段取值。

信创系统运维速查系统更新于 2026-10-13

输出格式与字段检索

journalctl 的日志带结构化字段,不只是文本行。输出格式可以按用途切换:带时区的短格式便于时间对账,详细格式与 JSON 格式会完整展示每条日志的字段,包括进程号、可执行文件名与标识符。脚本消费日志时用机器可解析的格式更稳妥。

基本信息

可读时间-o short-iso 带时区偏移
结构化输出-o json 与 -o json-pretty
字段明细-o verbose
只看消息-o cat 去掉前缀
列出字段取值-F <字段名>

典型使用场景

  • 把日志喂给分析脚本或日志平台做结构化处理
  • 排查进程重启:用字段区分是哪个进程实例
  • 按标识符筛选某类应用日志
  • 导出指定时间段日志做离线分析
  • 确认日志里可用的字段有哪些

格式切换

格式切换
journalctl -u nginx --since '1 hour ago' -o short-iso --no-pager   # 带时区时间
journalctl -u nginx -o json-pretty -n 1 | head -60      # 单条日志的完整字段
journalctl -u nginx -o verbose -n 1 | head -40          # 字段明细视图
journalctl -o cat -u nginx -n 20                        # 只保留消息正文
journalctl -F SYSLOG_IDENTIFIER | head -20              # 列出标识符取值
journalctl -u nginx -o json -n 100 > /tmp/nginx.jsonl   # 导出为逐行 JSON

常用字段

字段含义用途
MESSAGE日志正文内容是主体信息
_PID进程号区分同服务不同实例
_COMM可执行文件名确认是哪个程序产生
SYSLOG_IDENTIFIER日志标识符按应用类别筛选
_HOSTNAME主机名集中收集时区分来源
PRIORITY日志级别数值按级别精确过滤

实践建议

  • 导出给脚本时使用逐行 JSON 格式
  • 先用条数限制再逐步扩大范围
  • 字段名区分大小写,注意下划线前缀
  • 应用自定义字段要避免与系统字段同名
  • 与日志平台对接时先确认字段映射
结构化输出的单条日志内容较长,先加条数限制再逐步扩大;把带颜色的终端格式直接送去解析,往往会因为前缀宽度变化而出错。

易错点

  • 不限条数直接导出结构化日志:单条内容大、总量增长快,先加条数或时间范围限制
  • 用终端彩色格式做解析:输出会随终端宽度变化,脚本应使用 JSON 或纯消息格式
  • 字段名大小写写错:下划线前缀字段是系统字段,大小写敏感导致筛选结果为空
  • 应用自定义字段与系统字段同名:会覆盖语义,日志分析结论出错
  • 忘记取消分页:自动化流程要加不分页参数,否则命令会一直等待交互

数据来源与参考

  • man 1 journalctl(-o/--output)
  • man 7 systemd.journal-fields
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌