温馨提示×

ubuntu syslog如何排错

小樊
47
2026-09-17 06:02:37
栏目: 智能运维

在 Ubuntu 里,syslog 是系统日志的核心,排错通常分为「看日志 → 定位问题 → 分析来源 → 修复/验证」几个步骤。下面按实战方式给你一个清晰指南。


一、Ubuntu 中 syslog 的基本情况

Ubuntu 默认使用 rsyslog(老版本)或 systemd-journald + rsyslog(新版本)。

常见日志位置:

  • /var/log/syslog:系统总日志(最常用)
  • /var/log/messages:部分服务日志(有些版本没有)
  • /var/log/auth.log:认证相关(SSH、sudo)
  • journalctl:systemd 统一日志

二、最常用排错命令

1. 实时查看 syslog(强烈推荐)

sudo tail -f /var/log/syslog

适合:

  • 服务启动失败
  • 网络异常
  • 磁盘/硬件报错

2. 使用 journalctl(systemd 推荐)

journalctl -xe
  • -x:解释信息
  • -e:跳到最新日志

查看某个服务:

journalctl -u nginx.service
journalctl -u ssh.service --since "10 min ago"

3. 按关键字搜索

grep -i error /var/log/syslog
grep -i "failed" /var/log/syslog

三、典型排错流程(示例)

场景 1:某个服务起不来

sudo systemctl status nginx
journalctl -u nginx.service

看:

  • 配置文件错误
  • 端口被占用
  • 权限问题

场景 2:SSH 登录异常

sudo tail -f /var/log/auth.log

常见问题:

  • 密码错误
  • 公钥权限不对
  • 被 fail2ban 封 IP

场景 3:系统变慢 / 磁盘问题

dmesg | tail
grep -i "error" /var/log/syslog

关注:

  • I/O error
  • filesystem read-only
  • OOM killer

四、syslog 本身出问题的排错

1. syslog 没日志?

检查服务是否运行:

ps aux | grep rsyslog
sudo systemctl status rsyslog

启动/重启:

sudo systemctl restart rsyslog

2. 日志太多/磁盘满

df -h
du -sh /var/log/*

清理:

sudo journalctl --vacuum-size=200M

3. 日志级别太高/太低

编辑:

sudo nano /etc/rsyslog.conf

常见级别:

  • *.info
  • *.warn
  • *.err

修改后:

sudo systemctl restart rsyslog

五、实用排错技巧

  • 先看时间:确认问题发生时间点
  • 对比正常日志:看差异
  • 隔离问题:停服务 → 看日志是否还报错
  • 结合 dmesg + syslog:内核 + 用户态一起看

六、快速排错 checklist

uptime
df -h
free -h
systemctl --failed
journalctl -p err -xb

如果你有具体报错信息或场景(比如某个服务、网络、启动失败),可以把日志贴出来,我可以直接帮你分析。

0 踩