分析 Linux 错误日志是定位系统故障、服务异常和性能问题的关键技能。下面从日志位置、查看工具、常见错误类型、分析思路、实用技巧几个方面系统讲一下。
/var/log/messages # 通用系统日志(CentOS/RHEL)
/var/log/syslog # 通用系统日志(Debian/Ubuntu)
/var/log/dmesg # 内核启动信息
/var/log/secure # 认证、ssh、sudo(安全相关)
/var/log/boot.log # 启动过程
/var/log/nginx/
/var/log/mysql/
/var/log/httpd/
/var/log/rabbitmq/
journalctl
journalctl -u nginx
journalctl -p err
tail -f /var/log/messages
tail -n 100 /var/log/syslog
grep -i error /var/log/messages
grep -i "failed" /var/log/secure
journalctl --since "2024-01-01 10:00" --until "11:00"
grep error /var/log/messages | sort | uniq -c | sort -nr
Out of memory(OOM)segfault(程序崩溃)device not foundFailed to start xxx.servicePermission deniedAddress already in useConnection refusedNo route to hosttimeoutNo space left on deviceI/O errorjournalctl --since "10 min ago"
journalctl -p err -b
(-b 表示本次启动)
systemctl status nginx
journalctl -u nginx -xe
系统日志 + 应用日志 对照看时间线
修改配置 → 重启 → 再看日志
less 看大日志less /var/log/messages
/error
grep error /var/log/messages | mail -s "error" admin@x.com
现象:网站打不开
分析:
journalctl -u nginx -xe
发现:
bind() to 0.0.0.0:80 failed (98: Address already in use)
解决:
ss -lntp | grep :80
systemctl stop httpd
如果你愿意,可以把具体错误日志贴出来,我可以帮你逐行分析。