温馨提示×

怎么分析linux错误日志

小樊
35
2026-09-20 18:28:23
栏目: 智能运维

分析 Linux 错误日志是定位系统故障、服务异常和性能问题的关键技能。下面从日志位置、查看工具、常见错误类型、分析思路、实用技巧几个方面系统讲一下。


一、Linux 日志在哪里

1. 传统路径(syslog)

/var/log/messages      # 通用系统日志(CentOS/RHEL)
/var/log/syslog        # 通用系统日志(Debian/Ubuntu)
/var/log/dmesg         # 内核启动信息
/var/log/secure        # 认证、ssh、sudo(安全相关)
/var/log/boot.log      # 启动过程

2. 服务日志

/var/log/nginx/
/var/log/mysql/
/var/log/httpd/
/var/log/rabbitmq/

3. systemd 系统(主流)

journalctl
journalctl -u nginx
journalctl -p err

二、常用查看与分析命令

1. 实时查看

tail -f /var/log/messages
tail -n 100 /var/log/syslog

2. 过滤错误

grep -i error /var/log/messages
grep -i "failed" /var/log/secure

3. 时间范围分析

journalctl --since "2024-01-01 10:00" --until "11:00"

4. 统计高频错误

grep error /var/log/messages | sort | uniq -c | sort -nr

三、常见错误日志类型与含义

1. 内核相关

  • Out of memory(OOM)
  • segfault(程序崩溃)
  • device not found

2. 服务相关

  • Failed to start xxx.service
  • Permission denied
  • Address already in use

3. 网络相关

  • Connection refused
  • No route to host
  • timeout

4. 磁盘相关

  • No space left on device
  • I/O error

四、标准分析思路(非常实用)

✅ 第一步:确定“什么时候出问题”

journalctl --since "10 min ago"

✅ 第二步:看错误级别

journalctl -p err -b

(-b 表示本次启动)

✅ 第三步:定位具体服务

systemctl status nginx
journalctl -u nginx -xe

✅ 第四步:结合应用日志

系统日志 + 应用日志 对照看时间线

✅ 第五步:复现 + 验证

修改配置 → 重启 → 再看日志


五、高效分析技巧

1. 用 less 看大日志

less /var/log/messages
/error

2. 自动告警(简单)

grep error /var/log/messages | mail -s "error" admin@x.com

3. 日志集中化(进阶)

  • ELK
  • Grafana + Loki
  • Graylog

六、一个实战例子

现象:网站打不开
分析

journalctl -u nginx -xe

发现:

bind() to 0.0.0.0:80 failed (98: Address already in use)

解决

ss -lntp | grep :80
systemctl stop httpd

如果你愿意,可以把具体错误日志贴出来,我可以帮你逐行分析。

0