Linux 系统日志查看 📅 发布时间:2026/8/31 9:50:05 👁 浏览次数: 文章目录1. 核心日志目录 /var/log 解析2. 文本日志查看命令排查四剑客3. systemd 日志管理journalctl3.1 高频使用指令集4. 生产环境高频实战案例案例 1排查 SSH 暴力破解与非法登录案例 2排查程序莫名“被杀”OOM Killer 内存爆满5. 日志清理与轮转机制logrotate清理 journalctl 二进制日志6. 总结在 Linux 系统维护与软件开发中日志Logs是排查错误、分析系统性能和审计安全事件最直接的依据。现代 Linux 系统如 Ubuntu, Debian, CentOS 7, Rocky Linux采用了双轨日志体系传统文件日志由rsyslog守护进程管理以明文文本存放在/var/log目录下。systemd 结构化日志由systemd-journald守护进程管理以二进制格式高效存储通过journalctl工具统一查询。1. 核心日志目录/var/log解析在/var/log目录中存放着各类系统核心服务的明文日志文件。日志文件路径记录内容与用途/var/log/syslog或/var/log/messages最核心的系统全局日志。包含系统启动、内核消息、各类后台服务运行与报错信息。Ubuntu/Debian 常用syslogCentOS/RHEL 常用messages/var/log/auth.log或/var/log/secure安全与身份验证日志。记录用户登录、sudo提权、SSH 远程连接尝试及失败记录。/var/log/kern.log内核日志。记录内核产生的警告与错误如硬件故障、OOM 内存溢出。/var/log/dmesg开机启动环形缓冲区日志。记录硬件检测与驱动加载过程。/var/log/nginx///var/log/mysql/各种应用软件服务的专用日志目录。2. 文本日志查看命令排查四剑客对于/var/log下的明文日志结合 Linux 文本处理工具可以实现高效定位# 1. tail -f实时追踪日志末尾最新动态排查线上实时问题的神器sudotail-fn100/var/log/syslog# 2. less分页阅读大日志文件支持 / 键向下搜索? 键向上搜索G 到文件底部q 退出sudoless/var/log/auth.log# 3. grep过滤特定关键字如筛选 SSH 登录失败记录sudogrepFailed password/var/log/auth.log# 4. zgrep / zless直接查看被 logrotate 压缩过的历史日志文件.gz 结尾sudozgrepERROR/var/log/syslog.2.gz3. systemd 日志管理journalctljournalctl是与systemd-journald交互的命令行工具。它打破了传统按文件存储日志的限制支持按服务名、时间段、日志级别进行多维度的结构化查询。3.1 高频使用指令集# 1. 查看指定服务的日志最常用sudojournalctl-unginx# 2. 实时追踪某个服务的最新输出相当于 tail -fsudojournalctl-funginx# 3. 按时间范围精准筛选sudojournalctl--since2026-08-29 08:00:00--until2026-08-29 09:30:00# 4. 只查看某种错误级别以上的日志# 日志级别: 0:emerg, 1:alert, 2:crit, 3:err, 4:warning, 5:notice, 6:info, 7:debugsudojournalctl-perr-unginx# 5. 查看本次系统开机以来的所有日志sudojournalctl-b# 6. 查看内核日志相当于 dmesgsudojournalctl-k4. 生产环境高频实战案例案例 1排查 SSH 暴力破解与非法登录通过检查认证日志分析是否有异常 IP 在尝试爆破密码# 查看所有 SSH 登录失败的记录及来源 IPsudogrepFailed password for/var/log/auth.log|awk{print $(NF-3)}|sort|uniq-c|sort-nr# 使用 journalctl 排查 sshd 服务日志sudojournalctl-ussh-n50--no-pager案例 2排查程序莫名“被杀”OOM Killer 内存爆满当 Java、Node.js 或 Python 应用在后台无故退出且应用自身日志没有报错时通常是被系统的 OOM (Out Of Memory) 机制强制斩杀# 在内核日志中搜索 Out of memory 关键字sudodmesg-T|grep-iout of memory# 或者使用 journalctl 查询sudojournalctl-k|grep-ioom5. 日志清理与轮转机制logrotate为了防止日志文件无限膨胀挤爆磁盘Linux 内置了logrotate机制。工作原理定时对日志进行切分、压缩.gz、备份与过期删除。配置文件路径/etc/logrotate.conf以及/etc/logrotate.d/目录。清理journalctl二进制日志如果journalctl占用磁盘空间过大可以使用内置命令限制或清理# 查看当前 journal 日志占用的磁盘空间journalctl --disk-usage# 限制日志只保留最近 2 天sudojournalctl --vacuum-time2d# 限制日志总量不超过 500Msudojournalctl --vacuum-size500M6. 总结查服务看journalctl管理由systemd托管的服务时优先使用journalctl -fu service。查安全看auth.log/secure排查登录、权限、提权相关事件。查系统异常看dmesg/syslog遇到应用崩溃或硬件报错优先在内核与系统日志中寻找 OOM 或硬件错误标记。 感谢阅读想了解更多 我的博客网站 | 记录思考分享干货 我的个人主页 | 关于我、开源项目