Linux查看系统日志journalctl排查服务错误 Linux

前言

systemd 管理的服务报错,传统 /var/log/messages 信息不全,journalctl 能查询 systemd 统一收集的日志,按服务、时间、级别过滤,是排查服务起不来的主力命令。本文讲解查看全部日志、按服务过滤、看错误级别、实时跟踪和持久化。

操作步骤

1. 查看全部近期日志

sudo journalctl

2. 只看某个服务的日志

sudo journalctl -u nginx

3. 实时跟踪(类似 tail -f)

sudo journalctl -u nginx -f

4. 看本次启动以来的日志

sudo journalctl -b

5. 只看错误及以上级别

sudo journalctl -u nginx -p err

6. 按时间范围

sudo journalctl --since "09:00" --until "11:00"

7. 查看服务退出原因

sudo journalctl -u mysqld -b --no-pager

常见坑

  1. 系统重启后旧日志消失,journal 默认不落盘,需要持久化配置。
  2. 加 -u 指定服务名,别用进程名,服务名以 systemctl list-units 为准。
  3. -f 跟踪时按 q 退出,不是 Ctrl+C 直接关。
  4. 权限不足,普通用户看不全,加 sudo。
  5. -b 只看本次启动,历史问题要去掉 -b。
  6. 日志量巨大,配合 --since 和级别过滤。
  7. 容器内 journalctl 看不到宿主机 systemd 日志。

总结

journalctl -u 看单服务、-f 实时、-b 本次启动、-p err 筛错误、--since 按时间。排查服务失败先 journalctl -u 服务名 -b。需要跨重启保留日志再配置持久化,日常排查足够用。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-11-15 07:11 
'); })();