云服务器上排查 Linux 服务故障的 journalctl 实用方法

举报
yd_286293205 发表于 2026/11/11 10:59:41 2026/11/11
【摘要】 Linux 服务异常时不必先重启。本文整理了用 systemctl 和 journalctl 按状态、时间窗口和优先级排查问题的常用方法,以及日志为空、时区不准、磁盘写满等常见坑。

云服务器上跑着的 Linux 服务突然没响应时,很多人第一反应是重启。重启有时能恢复,但也会把现场清掉,下次还是不知道原因。更稳妥的做法是先用 journalctl 把日志看清楚。

先确认服务还在不在

如果服务是 systemd 管理的,先看状态:

systemctl status 服务名

重点看 Active 一行是 active、inactive 还是 failed,以及最后几行日志。如果是 failed,通常已经有退出码或错误原因。

看最近一段时间的日志

journalctl -u 服务名 -n 100 --no-pager
  • -u 指定服务
  • -n 100 只看最近 100 行,避免一次翻出太多
  • --no-pager 直接打到终端,方便复制

如果只想看今天或最近一小时:

journalctl -u 服务名 --since "1 hour ago" --no-pager
journalctl -u 服务名 --since today --no-pager

也可以按时间范围查:

journalctl -u 服务名 --since "2026-11-11 09:00:00" --until "2026-11-11 10:00:00"

先过滤错误,再回头看上下文

日志很多时,先看错误和告警:

journalctl -u 服务名 -p err..alert --since today --no-pager

-p 是优先级。找到可疑时间点后,再把该时间前后的全部日志调出来,往往比一直盯着 error 更能发现真正触发点,比如配置重载失败、磁盘只读、依赖的端口没起来。

需要观察现场时再跟踪

如果问题还在发生,可以跟踪实时日志:

journalctl -u 服务名 -f

复现一次操作,看同一时刻出现了什么。查完用 Ctrl+C 结束,不要长时间占着会话不管。

几个常见坑

  • 日志为空:有的服务没把日志交给 journald,还在写自己的文件,比如 /var/log/ 下的应用日志,两边都要看。
  • 时间不对:云服务器时区或 NTP 没校准,会对齐错时间窗口。先确认 timedatectl。
  • 权限不够:普通用户可能看不到全部系统日志,必要时用有权限的账号查询。
  • 磁盘满了:journald 或应用写不进日志时,服务表现会很奇怪。先看 df -h 和 journalctl --disk-usage。

把一次故障的时间、命令和关键日志片段留下,比单纯重启更有价值。下次再出现同类问题,也可以先从同一类错误关键字查起。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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