乐于分享
好东西不私藏

Linux 这个日志分析神器,好用到上瘾!

Linux 这个日志分析神器,好用到上瘾!

在传统的Linux系统中,日志分散在/var/log目录下的各个文件中(如messages、secure等),查找问题时经常需要在多个文件之间切换。而systemd的journald服务将所有日志集中管理,通过journalctl命令可以统一查看、过滤和分析日志,让日志管理变得简单高效。

一、基础查看命令

命令
说明
journalctl
查看所有日志
journalctl -n 10
查看最后10行日志
journalctl -f
实时滚动查看最新日志
journalctl -b
查看本次启动的日志
journalctl -b -1
查看上次启动的日志

二、按条件筛选日志

2.1 按时间筛选

命令
说明
journalctl --since "1 hour ago"
查看最近1小时的日志
journalctl --since "2024-01-01 00:00:00" --until "2024-01-01 23:59:59"
查看指定时间段的日志
journalctl --since yesterday
查看昨天的日志
journalctl --since today
查看今天的日志

2.2 按服务筛选

命令
说明
journalctl -u nginx
查看 nginx 服务的日志
journalctl -u sshd
查看 sshd 服务的日志
journalctl -u docker
查看 docker 服务的日志
journalctl -u sshd -u nginx
查看多个服务(如 sshd 和 nginx)的日志

2.3 按优先级筛选

命令
说明
journalctl -p err
只显示错误级别以上的日志
journalctl -p warning..err
显示错误和警告级别的日志

2.4 按进程或用户筛选

命令
说明
journalctl _PID=1234
查看特定进程(PID=1234)的日志
journalctl _UID=1000
查看特定用户(UID=1000)的日志

三、实用组合技巧

命令
说明
journalctl -u nginx -p err -n 20
查看 nginx 服务最近的错误日志
journalctl -u nginx -f
实时监控 nginx 服务的日志
journalctl -u nginx -b
查看 nginx 服务从上次启动到现在的日志
journalctl -u nginx -o json-pretty
输出 nginx 服务的日志为 JSON 格式

四、日志维护管理

命令
说明
journalctl --disk-usage
查看日志占用的磁盘空间
journalctl --vacuum-size=100M
清理日志到指定大小以下(如 100M)
journalctl --vacuum-time=2weeks
清理指定时间之前的日志(如2周前)
journalctl --vacuum-files=5
清理到指定文件数(如保留5个文件)

五、日志配置管理

配置项
说明
SystemMaxUse=500M
限制日志最大占用空间(如500M)
SystemMaxFileSize=50M
限制单个日志文件大小(如50M)
MaxRetentionSec=1month
保留日志的时间(如1个月)

六、高级技巧

命令
说明
journalctl -u nginx > nginx.log
导出 nginx 服务的日志为文本文件
journalctl -o export > nginx.journal
导出 nginx 服务的日志为二进制文件
journalctl -o verbose -n 1
显示详细的日志元数据
journalctl -r
反向显示日志(最新的在最上面)

小结

journalctl是Linux系统管理中不可或缺的工具,掌握它可以让你:

  • 快速定位服务故障

  • 高效分析日志信息

  • 合理管理日志空间

希望这篇文章能帮助大家更好地使用journalctl。如果你有更多实用技巧,欢迎在评论区分享~

往期推荐

点亮,服务器三年不宕机

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Linux 这个日志分析神器,好用到上瘾!

猜你喜欢

  • 暂无文章