分析 Linux 错误日志是系统运维和故障排查的核心技能。在 Linux 系统中,日志是诊断问题的“黑匣子”,记录了系统、应用程序和服务的运行状态。
以下是分析 Linux 错误日志的系统化指南,从基础命令到高级排查思路。
大多数日志集中在 /var/log 目录中:
| 日志文件 | 说明 |
|---|---|
/var/log/messages |
通用系统日志(RHEL/CentOS) |
/var/log/syslog |
通用系统日志(Debian/Ubuntu) |
/var/log/dmesg |
内核启动日志 |
/var/log/secure |
认证、SSH、登录相关 |
/var/log/cron |
定时任务 |
/var/log/boot.log |
启动过程 |
/var/log/maillog |
邮件服务 |
/var/log/yum.log |
软件包安装 |
现代 Linux 使用 systemd,日志由 journald 管理:
journalctl
journalctl -xe
journalctl -u nginx
journalctl --since "2025-01-01" --until "2025-01-02"
tail -f /var/log/syslog
journalctl -f
grep -i error /var/log/syslog
grep -i fail /var/log/syslog
grep -i crash /var/log/syslog
grep -i error /var/log/syslog | wc -l
tail -n 100 /var/log/syslog
journalctl -n 100
dmesg | less
journalctl -k
重点关键词:
OOMsegfaultkernel panichardware errorgrep "Failed password" /var/log/secure
grep "Invalid user" /var/log/secure
常见攻击特征:
Failed passwordsystemctl status nginx
journalctl -u nginx
日志中常见:
Permission deniedAddress already in useFile not founddmesg | grep -i "error\|read-only\|I/O"
journalctl | grep -i "filesystem"
关键字:
Read-only file systemI/O errorEXT4-fs errordmesg | grep -i oom
journalctl | grep -i "Out of memory"
journalctl --since "10 minutes ago"
dmesgjournalctl -u/var/log/syslogps aux
ss -lntp
df -h
free -h
ls -lt /var/log
journalctl -u docker --since today
journalctl > system.log
awk '/error/ {print $1, $2, $3, $NF}' /var/log/syslog
logwatchrsyslogfluentdELK(Elasticsearch + Logstash + Kibana)logwatch --detail high --mailto admin@example.com
journalctl -u nginx
journalctl -u php-fpm
ss -lntp
可能原因:
先看时间 → 再找错误 → 定位服务 → 结合系统状态 → 复现验证
如果你愿意,可以把具体报错日志贴出来,我可以帮你逐行分析。