用 journalctl 看服务日志:只看报错的那几行

举报
yd_291459017 发表于 2026/11/11 09:40:08 2026/11/11
【摘要】 服务出问题,第一反应往往是翻日志。systemd 管的服务,日志都收在 journal 里,用 journalctl 就能看,比到处找日志文件省事,关键是它自带过滤,不用在一堆行里大海捞针。先看最常用的一条:journalctl -u nginx --since “1 hour ago”。-u 指定只看这一个服务的日志,–since 只看最近一小时的,两个一配,出来的就是最近这段时间这个服务...

服务出问题,第一反应往往是翻日志。systemd 管的服务,日志都收在 journal 里,用 journalctl 就能看,比到处找日志文件省事,关键是它自带过滤,不用在一堆行里大海捞针。

先看最常用的一条:journalctl -u nginx --since “1 hour ago”。-u 指定只看这一个服务的日志,–since 只看最近一小时的,两个一配,出来的就是最近这段时间这个服务干了什么,几十行就能看完。

想只看报错的,再加一个 -p err:journalctl -u nginx -p err --since today。-p 是按级别过滤,err 往上就是 error、crit、alert、emerg 这些真正要命的,info 和 debug 全被挡在外面。服务半夜挂了,早上起来一条命令就能看到它最后报了什么错。

日志太长还可以用 -f 跟着看:journalctl -u myapp -f。-f 是实时跟踪,新日志一行一行往下滚,相当于给服务接了个直播,改完配置重启服务后,盯着它看启动过程有没有报错,比重启完再回头翻日志直观得多。

新手最容易踩的三个坑:第一,忘了加 -u,结果把全系统的日志都翻出来了,几千行里根本找不到自己要的服务;第二,时间范围没加,默认从系统装好那天开始看,翻到手酸;第三,看到报错就慌,其实要先看时间戳——半个月前的报错和今天的故障可能完全没关系,先确认报错时间和故障时间对得上,再往下查。

把这几条练熟,服务出问题时你能先分清是配置错了、端口被占了、依赖没起来,还是磁盘满了,定位快一半,修起来也心里有数。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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