温馨提示×

ubuntu syslog怎样排查故障

小樊
53
2026-09-11 00:29:38
栏目: 智能运维

在 Ubuntu 里,syslog(系统日志) 是排查故障最重要的入口之一。下面按「从哪里看 → 看什么 → 怎么分析 → 常见故障示例」来说明。


一、Ubuntu 中 syslog 在哪里

Ubuntu 默认使用 rsyslog / systemd-journald

1. 传统 syslog 文件

/var/log/syslog        # 最常用
/var/log/messages      # 某些版本有
/var/log/auth.log      # 登录、sudo、SSH
/var/log/kern.log      # 内核日志

2. systemd 日志(推荐)

journalctl

二、基础排查命令

1. 实时查看 syslog

tail -f /var/log/syslog

或

journalctl -f

2. 查看本次启动后的日志

journalctl -b

3. 查看某个服务的日志

journalctl -u nginx
journalctl -u ssh
journalctl -u docker

4. 按时间查看

journalctl --since "2025-01-01 10:00" --until "2025-01-01 12:00"

5. 按优先级(错误级别)

journalctl -p err

优先级:

  • err:错误
  • crit:严重
  • alert / emerg:非常严重

三、syslog 日志结构说明

一条典型 syslog:

Jan 10 10:22:13 ubuntu sshd[1234]: Failed password for root from 1.2.3.4 port 22 ssh2

含义:

  • 时间
  • 主机名
  • 服务名
  • PID
  • 具体信息

四、常见故障排查流程

场景 1:系统启动异常

journalctl -b -p err

看是否有:

  • failed to start
  • timeout
  • dependency failed

场景 2:服务起不来

systemctl status nginx
journalctl -u nginx -xe

重点看:

  • permission denied
  • address already in use
  • config error

场景 3:网络问题

grep -i "eth0\|network" /var/log/syslog

或

journalctl -u NetworkManager

场景 4:SSH 登录失败

tail -f /var/log/auth.log

常见:

  • Failed password
  • Connection closed
  • POSSIBLE BREAK-IN ATTEMPT

场景 5:磁盘 / 文件系统

grep -i "error\|I/O" /var/log/syslog
dmesg | grep error

五、高级技巧

1. 过滤关键字

grep -i "error" /var/log/syslog
journalctl | grep -i "oom"

2. 查看内核日志

dmesg
dmesg -T

3. 日志过大 / 磁盘满

du -sh /var/log/*
journalctl --disk-usage

清理:

journalctl --vacuum-time=7d

六、排查思路总结(通用)

  1. 先确定现象(起不来?慢?报错?)
  2. 看对应日志
    • 服务 → journalctl -u
    • 系统 → /var/log/syslog
  3. 找关键字
    • error / fail / denied / timeout
  4. 结合 dmesg / auth.log
  5. 逐步缩小范围

如果你有具体故障现象(比如“SSH 连不上”“Ubuntu 开机卡住”“某个服务报错”),可以把日志贴出来,我可以帮你直接分析。

0 踩