温馨提示×

怎么定位linux日志异常

小樊
48
2026-09-26 16:04:33
栏目: 智能运维

在 Linux 上“定位日志异常”通常有一套比较固定的思路和方法,可以按下面步骤来做。


一、先确定去哪里看日志

1. 传统日志路径

/var/log/messages      # 系统通用日志(CentOS/RHEL)
/var/log/syslog        # 系统通用日志(Ubuntu/Debian)
/var/log/dmesg         # 内核启动和硬件信息
/var/log/secure        # 安全、登录、sudo(RHEL系)
/var/log/auth.log      # 登录认证(Debian系)

2. systemd 系统(主流)

journalctl                  # 查看全部日志
journalctl -xe             # 查看最近错误并展开
journalctl -u nginx        # 某个服务
journalctl --since "10 min ago"

3. 应用自身日志

/var/log/nginx/
/var/log/mysql/
/var/log/app/  # 自定义路径

二、快速定位“异常”的常用命令

1. 搜索关键字(最常用)

grep -i error /var/log/syslog
grep -i "failed\|denied\|exception" /var/log/messages

2. 看最近变化

tail -n 100 /var/log/syslog
tail -f /var/log/nginx/error.log

3. 按时间定位

journalctl --since "2026-01-21 10:00" --until "2026-01-21 10:30"

4. 看错误级别

journalctl -p err
dmesg -T | grep -i error

三、系统化排查思路

1. 先看系统层面

  • 是否 OOM(内存不足)
    dmesg | grep -i oom
    
  • 磁盘是否满
    df -h
    
  • CPU / IO 异常
    top / htop / iostat
    

2. 再看服务层面

systemctl status xxx
journalctl -u xxx -xe

3. 最后看应用日志

  • ERROR / Exception
  • 超时、断连、权限拒绝
  • 重复出现的堆栈

四、进阶工具(可选)

  • logwatch:日志汇总
  • fail2ban:安全异常
  • ELK / Grafana Loki:大规模日志
  • awk / sed:批量分析

五、一个实战示例

现象:网站访问慢

# 1. 看系统
dmesg -T | tail
df -h

# 2. 看服务
systemctl status nginx
journalctl -u nginx -xe

# 3. 看错误日志
tail -f /var/log/nginx/error.log
grep -i "timeout\|502" /var/log/nginx/access.log

如果你愿意,可以告诉我:

  • 用的是 CentOS / Ubuntu / 容器?
  • 是 系统异常、服务挂了、还是应用报错?

我可以直接给你“针对性的命令”。

0 踩