用 journalctl 查系统日志:按服务、时间和优先级过滤

举报
yd_240997615 发表于 2026/11/05 08:55:09 2026/11/05
【摘要】 journalctl 是 systemd 自带的日志查看工具,系统服务、内核和启动过程的日志都集中存在 journal 里,不用再去 /var/log 下面一个个翻文件。最基础的用法是直接运行 journalctl,从较早的日志开始分页显示,按 q 退出;加 -f 是实时跟踪新日志,相当于 tail -f。实际排查最常用的是按服务过滤:journalctl -u nginx 只看某个服务的日...

journalctl 是 systemd 自带的日志查看工具,系统服务、内核和启动过程的日志都集中存在 journal 里,不用再去 /var/log 下面一个个翻文件。最基础的用法是直接运行 journalctl,从较早的日志开始分页显示,按 q 退出;加 -f 是实时跟踪新日志,相当于 tail -f。


实际排查最常用的是按服务过滤:journalctl -u nginx 只看某个服务的日志,服务名就是 systemd 的 unit 名,不确定时先用 systemctl list-units 确认。想把结果直接打到终端方便复制或重定向,加 --no-pager。


按时间过滤能把范围缩到出事的那一段:--since "2026-11-05 09:00" 看某个时间点之后,--until 指定结束时间,两者可以组合;也支持相对写法,如 --since "1 hour ago" 或 --since today。线上排障先用时间窗把日志量降下来,比全量翻要快得多。


按优先级过滤适合快速找错误:-p err 只看 error 及以上级别,级别从高到低依次是 emerg、alert、crit、err、warning、notice、info、debug。组合起来就是 journalctl -u 服务名 -p err --since today,一条命令定位今天的报错。


还有两个高频场景:看本次启动以来的日志用 -b,上一次启动用 -b -1,排查重启相关的问题很有用;只看内核日志用 -k。另外 journal 占用的磁盘空间可以在 /etc/systemd/journald.conf 里用 SystemMaxUse 限制,避免老机器被日志撑满。


小结:-u 按服务、--since 与 --until 按时间、-p 按级别、-f 实时跟踪,这四个维度组合起来,绝大多数日常排障都够用了。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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