用 journalctl 排查 Linux 服务故障
【摘要】 介绍如何用 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 表示当前这次开机。
小提示
- 权限不够时加 sudo。
- 日志很多时先缩小时间窗口,再查关键字:
journalctl -u nginx | grep -i timeout。 - 容器或云主机若磁盘紧张,可配合
journalctl --disk-usage和清理策略,避免 journal 占满盘。
掌握这几条,日常排障基本够用:定位服务、锁时间、滤级别,比盲目打开一堆 log 文件高效得多。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)