journalctl是systemd日志管理工具,可按服务、时间、优先级过滤日志,支持实时查看、用户日志查询、持久化存储及日志大小限制,并通过权限组管理访问控制,相比传统syslog具有性能和功能优势。

使用
journalctl
journalctl 命令是systemd 日志管理器的核心工具,熟练掌握它可以极大地提升你排查问题的效率。
journalctl 的基本用法与高级技巧
journalctl
比如,要查看特定服务的日志,可以使用
-u
nginx
journalctl -u nginx
如果想实时查看日志,类似
tail -f
-f
journalctl -u nginx -f
这样,任何
nginx
有时候,你可能只关心最近一段时间的日志。
journalctl
--since
--until
journalctl --since "2023-10-26 08:00:00" --until "2023-10-26 09:00:00"
或者更简洁地:
journalctl --since "yesterday" --until "now"
甚至可以使用相对时间:
journalctl --since "2 hours ago"
这些时间过滤选项可以组合使用,非常方便。
如何按优先级过滤 journalctl 日志?
日志信息通常会有不同的优先级,比如
debug
info
warning
error
critical
-p
error
journalctl -p err
这里
err
error
journalctl -p err,crit,alert,emerg
这些级别从高到低依次是
emerg
alert
crit
err
warning
notice
info
debug
error
journalctl 如何查看指定用户的日志?
有时候,你需要查看特定用户的日志。这可以通过
-u
_UID
id
id yourusername
假设你的UID是1000,那么可以使用以下命令来查看该用户的日志:
journalctl _UID=1000
这会显示所有属于该用户的进程产生的日志。注意,这需要系统配置了相应的权限,否则可能看不到其他用户的日志。
如何持久化 journalctl 日志?
默认情况下,
journalctl
systemd-journald
/etc/systemd/journald.conf
Storage
persistent
Storage=persistent
然后重启
systemd-journald
systemctl restart systemd-journald
这样,日志就会存储在
/var/log/journal/
journalctl 如何限制日志大小?
持久化日志后,如果不加以限制,日志文件可能会无限增长,最终耗尽磁盘空间。
systemd-journald
/etc/systemd/journald.conf
SystemMaxUse
SystemKeepFree
SystemMaxFileSize
MaxRetentionSec
例如,限制日志最多占用1GB磁盘空间,并保留至少100MB空闲空间:
SystemMaxUse=1G SystemKeepFree=100M
修改配置文件后,同样需要重启
systemd-journald
如何解决 journalctl 查看日志权限问题?
有时候,即使你是管理员,也可能无法查看所有日志。这通常是由于权限配置不当导致的。
journalctl
systemd-journal
sudo usermod -a -G systemd-journal yourusername
然后重新登录,或者重启
systemd-journald
/etc/systemd/journald.conf
ReadAccess
system
systemd-journal
all
journalctl 与传统的 syslog 有什么区别?
传统的
syslog
journalctl
journalctl
syslog
journalctl
journalctl
systemd
syslog
journalctl
以上就是Linux怎么使用journalctl查看服务日志的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号