查看服务日志使用 journalctl -u 服务名,如 journalctl -u nginx.service;2. 实时查看日志加 -f 参数,如 journalctl -u nginx.service -f;3. 查看最近 n 条日志使用 -n 参数,如 journalctl -u nginx.service -n 20;4. 按时间筛选使用 --since 和 --until,如 journalctl -u nginx.service --since "yesterday 09:00" --until "today 17:00";5. 按优先级筛选使用 -p,如 journalctl -u nginx.service -p err;6. 结合 grep 或 -g 参数搜索关键词,如 journalctl -u nginx.service | grep -i "failed\|error" 或 journalctl -u nginx.service -g "failed|error";7. 使用 less 分页查看大量日志,如 journalctl -u nginx.service | less;8. 确保日志持久化需配置 storage=persistent 或 auto 并确保 /var/log/journal 存在;9. 配置日志空间限制通过修改 /etc/systemd/journald.conf 中的 systemmaxuse 和 systemkeepfree,如 systemmaxuse=10g systemkeepfree=2g;10. 清理旧日志使用 vacuum 命令,如 sudo journalctl --vacuum-time="1 week ago" 或 sudo journalctl --vacuum-size=2g;11. 修改配置后重启 systemd-journald 服务使配置生效,即 sudo systemctl restart systemd-journald。

在Linux系统上,如果你想查看由
systemd
journalctl
/var/log
要查看服务日志信息,最直接的方法就是使用
journalctl
通常,你可能只想看某个特定服务的日志。比如,要查看Nginx服务的日志,你可以这样:
journalctl -u nginx.service
这个命令会列出
nginx.service
tail -f
-f
journalctl -u nginx.service -f
这在我日常排查问题时非常常用,特别是当服务出现异常启动或反复重启时,盯着实时日志能很快发现端倪。
有时候,你可能不需要看全部历史,只想看最近的几条,
-n
journalctl -u nginx.service -n 20
这会显示
nginx.service
journalctl
在处理日志时,时间范围和日志优先级是两个非常强大的筛选维度。我个人觉得,掌握这两个,能让你在茫茫日志海中迅速锁定目标。
要按时间范围筛选,你可以使用
--since
--until
比如,查看从昨天早上9点到今天下午5点的Nginx日志:
journalctl -u nginx.service --since "yesterday 09:00" --until "today 17:00"
你也可以使用相对时间,这在排查最近发生的问题时特别方便。比如,查看过去1小时内的Docker服务日志:
journalctl -u docker.service --since "1 hour ago"
或者,查看从上次系统启动以来的所有日志,这对于定位启动阶段的问题非常有帮助:
journalctl -b
日志优先级(priority)则能让你专注于特定严重程度的信息。
journalctl
emerg
alert
crit
err
warning
notice
info
debug
如果你只想看Nginx服务中所有错误(
err
journalctl -u nginx.service -p err
这会过滤掉那些不那么重要的
info
debug
journalctl --since "30 minutes ago" -p warning
这种组合拳,能极大地提高日志分析的效率。
当服务运行时间长、日志输出又非常频繁时,
journalctl
journalctl
一个最常见且有效的方法是结合
grep
grep
journalctl
例如,你想在Nginx日志中查找所有包含“failed”或“error”的行:
journalctl -u nginx.service | grep -i "failed\|error"
这里的
-i
\|
grep
journalctl
grep
-g
--grep
journalctl -u nginx.service -g "failed|error"
这通常比管道连接
grep
journalctl
另外,对于那些需要逐行仔细检查的巨大日志文件,将
journalctl
less
journalctl -u nginx.service | less
在
less
/
n
n
如果你的服务在某个特定时间点开始出现问题,而你又怀疑是某个特定的组件或功能导致的,尝试缩小范围。比如,如果问题发生在某个新部署的版本之后,你可以尝试查看从那个版本部署时间点开始的日志,并结合关键词搜索。这不仅仅是命令技巧,更是一种排查问题的逻辑思维。
默认情况下,
journalctl
要让
journalctl
/var/log/journal
systemd-journald
/etc/systemd/journald.conf
在这个配置文件中,有几个关键参数值得关注,它们决定了日志的存储策略和空间占用:
Storage
volatile
persistent
/var/log/journal
auto
/var/log/journal
none
persistent
auto
SystemMaxUse
SystemKeepFree
RuntimeMaxUse
RuntimeKeepFree
例如,如果你想限制日志最大占用10GB,并且至少保留2GB的空闲空间,你可以在
/etc/systemd/journald.conf
[Journal] SystemMaxUse=10G SystemKeepFree=2G
修改配置后,记得重启
systemd-journald
sudo systemctl restart systemd-journald
此外,你也可以手动清理旧日志来释放空间。比如,删除所有早于一周前的日志:
sudo journalctl --vacuum-time="1 week ago"
或者,将日志大小限制在2GB:
sudo journalctl --vacuum-size=2G
这些管理策略对于服务器的长期稳定运行至关重要。日志文件如果无限增长,最终会耗尽磁盘空间,导致服务崩溃。合理配置日志保留策略,既能保证我们有足够的历史数据可查,又能避免不必要的空间浪费。毕竟,维护一个健康的系统,日志管理是不可或缺的一环。
以上就是如何查看服务日志信息 journalctl日志查询过滤的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号