在 Linux 里,syslog 是系统日志的核心机制(常见实现有 rsyslog、syslog-ng、以及较新的 systemd-journald)。排查错误通常分“找日志 → 读日志 → 定位来源 → 验证”几个步骤。下面按实战角度说明。
ps -ef | grep -E 'rsyslog|syslog-ng|systemd-journal'
常见情况:
传统 syslog 文件(rsyslog):
| 文件 | 内容 |
|---|---|
/var/log/messages |
通用系统日志(CentOS) |
/var/log/syslog |
通用系统日志(Ubuntu) |
/var/log/secure |
认证、SSH、sudo(CentOS) |
/var/log/auth.log |
认证日志(Ubuntu) |
/var/log/cron |
定时任务 |
/var/log/kern.log |
内核日志 |
/var/log/dmesg |
开机内核信息 |
如果是 systemd 系统:
# 查看全部日志(实时)
journalctl -f
# 按时间
journalctl --since "2024-01-01 10:00" --until "2024-01-01 12:00"
# 只看错误
journalctl -p err
# 看某个服务
journalctl -u nginx
journalctl -u sshd -f
# 内核日志
journalctl -k
journalctl -u 服务名 -xe
重点看:
FailedPermission deniedAddress already in usetail -f /var/log/secure # CentOS
tail -f /var/log/auth.log # Ubuntu
常见错误:
Failed passwordConnection closedrefusedtail -f /var/log/messages
dmesg | tail
关键字:
I/O errorread-only filesystemNo space left on devicedmesg | grep -i error
journalctl -k | grep -i error
systemctl status rsyslog
systemctl restart rsyslog
/etc/rsyslog.conf/etc/rsyslog.d/*.conf示例(调试用):
*.debug /var/log/debug.log
# 实时监控
tail -f /var/log/syslog
# 搜关键字
grep -i error /var/log/messages
# 按时间排序最新
ls -lt /var/log/
# 看日志是否写满
df -h
du -sh /var/log/*
journalctl -u xxx/var/log/messages如果你有具体报错信息或某个服务,可以直接贴出来,我可以帮你逐行分析。