最核心的工具是 journalctl,它通过结构化、二进制格式收集系统日志,支持按服务、时间、优先级等条件高效过滤,替代了传统的 /var/log/messages 文本日志,提供更强大的查询与维护功能,如日志清理、导出及启动问题排查。

在Linux系统上,如果你想查看systemd管理的日志信息,最核心、最直接的工具就是
journalctl
要说最直接的办法,那肯定就是打开终端,敲下
journalctl
比如,如果你想实时跟踪日志,就像
tail -f
-f
journalctl -f
要查看某个特定服务的日志,比如Nginx,你可以这样:
journalctl -u nginx.service
如果想看最近一次启动以来的日志,这个特别有用,因为很多时候我们关心的是重启后发生了什么:
journalctl -b
当然,你也可以组合这些参数,比如查看Nginx服务在当前启动周期内的日志:
journalctl -b -u nginx.service
时间过滤也是个常用功能。想看昨天下午两点到三点之间的日志?
journalctl --since "yesterday 14:00" --until "yesterday 15:00"
或者更具体的时间点:
journalctl --since "2023-10-27 10:00:00"
你还可以按优先级筛选,比如只看错误(error)及以上级别的日志:
journalctl -p err
emerg
alert
crit
err
warning
notice
info
debug
这些都是
journalctl
说实话,刚接触
systemd
/var/log/messages
/var/log/syslog
/var/log
grep
tail
journalctl
核心原因在于
systemd-journald
syslog
journald
journalctl
这种二进制、结构化的日志有几个显著优点:
journalctl
grep
dmesg
journald
journald
/var/log
当然,二进制格式也意味着你不能直接用
cat
less
journalctl
journalctl
journald
rsyslog
syslog-ng
journalctl
最直接的一个维护点就是日志文件大小的管理。
journald
/var/log/journal/
journalctl --disk-usage
如果发现日志占用了太多空间,你可以设置一个上限来自动清理旧日志。比如,将日志文件总大小限制在1GB:
journalctl --vacuum-size=1G
journalctl --vacuum-time=2weeks
这些清理操作非常实用,尤其是在磁盘空间紧张或者需要长期运行的服务器上。我通常会在系统部署时就配置好日志的保留策略,避免日后出现磁盘空间不足的尴尬。
另外,
journalctl
journalctl --since "yesterday" -o json > yesterday_logs.json
journalctl --since "2 hours ago" -o short-iso
这对于将日志集成到ELK栈(Elasticsearch, Logstash, Kibana)或者其他日志分析平台时非常有用。虽然
journald
最后,你还可以利用
journalctl
journalctl -b -p err..warning
在实际的故障排查中,
journalctl
从最近的启动开始看起: 当系统出现问题时,我通常会先用
journalctl -b
journalctl -b -1
journalctl -b -2
聚焦错误和警告: 接下来,我会结合优先级筛选。
journalctl -b -p err..warning
锁定特定服务或组件: 如果我已经知道问题可能与某个特定服务(比如
nginx
php-fpm
docker
network
storage
-u
journalctl -b -u nginx.service -p err..warning
_EXE
journalctl _EXE=/usr/bin/docker
时间是关键: 很多时候,我们知道问题大概在什么时候发生。这时,
--since
--until
journalctl --since "5 minutes ago" -u myapp.service
journalctl -f
上下文很重要: 找到一条错误信息后,不要急于下结论。我通常会向上或向下滚动几屏,看看这条错误发生前系统在做什么,发生后又有什么反应。有时候,一个看似无关的
info
journalctl
less
善用 grep
journalctl
journalctl
|
grep
journalctl -p err..warning | grep "failed"
grep
journalctl
理解日志条目的含义: 最后,也是最重要的一点,是理解日志条目本身的含义。有些错误信息可能很晦涩,这时就需要结合官方文档、搜索引擎,甚至源代码来理解它到底在说什么。这才是真正的“深思熟虑的分析”。
通过这些步骤,我通常能比较高效地在
journalctl
以上就是Linux如何查看systemd日志信息的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号