用 journalctl 排查 Linux 服务故障

举报
yd_221913887 发表于 2026/10/30 00:39:10 2026/10/30
【摘要】 介绍如何用 journalctl 按服务、时间和日志级别快速排查 Linux systemd 服务故障。

线上或云主机上服务挂了,很多人第一反应是去 /var/log 里翻文件。其实在 systemd 管理的系统里,用 journalctl 往往更快、更准。

先看某个服务最近的输出

假设服务名是 nginx:

journalctl -u nginx -n 100 --no-pager
  • -u 指定单元名
  • -n 100 只看最近 100 行
  • --no-pager 直接打到终端,方便复制

如果要跟着实时看:

journalctl -u nginx -f

按时间过滤

排查「刚上线那几分钟」特别有用:

journalctl -u nginx --since "2026-10-30 10:00:00" --until "2026-10-30 10:30:00"

也可以写相对时间:

journalctl -u nginx --since "1 hour ago"

只看错误级别

journalctl -u nginx -p err..alert --since today

-p 按优先级过滤,能少看大量无关 info。

开机以来的系统级问题

不确定是不是某个服务时,可以先看本机启动后的异常:

journalctl -b -p warning

-b 表示当前这次开机。

小提示

  1. 权限不够时加 sudo。
  2. 日志很多时先缩小时间窗口,再查关键字:journalctl -u nginx | grep -i timeout。
  3. 容器或云主机若磁盘紧张,可配合 journalctl --disk-usage 和清理策略,避免 journal 占满盘。

掌握这几条,日常排障基本够用:定位服务、锁时间、滤级别,比盲目打开一堆 log 文件高效得多。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。