在 Ubuntu 上 syslog(通常是 rsyslog 或 syslog-ng)启动慢,通常不是 syslog 本身的问题,而是它依赖的服务、资源或配置导致。下面按常见原因和排查方法说明。
syslog 若配置为:
*.* @logserver)systemd 会等 network-online.target
现象
systemd[1]: rsyslog.service: Unit is starting
# 卡在 network-online 很久
检查
systemctl status rsyslog
systemctl cat rsyslog | grep network
解决
/etc/rsyslog.conf 中的远程配置sudo systemctl disable systemd-networkd-wait-online
syslog 启动时会解析主机名或日志服务器
现象
/etc/resolv.conf 配置异常检查
getent hosts $(hostname)
nslookup logserver
解决
/etc/hosts 加:127.0.0.1 your-hostname
127.0.0.1syslog 启动时要:
/var/log若磁盘慢、损坏或刚做过 fsck,会拖慢
检查
dmesg | grep -i error
systemctl status systemd-fsck*
/var/log 日志过多,rsyslog 启动扫描慢
检查
du -sh /var/log
ls /var/log | wc -l
解决
journalctl --vacuum-size=200M
logrotate -f /etc/logrotate.conf
rsyslog 默认依赖:
After=network.target
After=syslog.socket
但某些第三方配置会加:
After=mysql.service
After=remote-fs.target
检查
systemctl cat rsyslog
systemd-analyze blame | grep rsyslog
systemd-analyze critical-chain rsyslog.service
journalctl -b -u rsyslog
✅ 不需要远程日志 → 去掉 @host
✅ 加 /etc/hosts 解析本机
✅ 禁用 networkd-wait-online(如非服务器)
✅ 清理 /var/log
✅ 不依赖远程挂载文件系统
如果你愿意,可以贴:
systemctl status rsyslogsystemd-analyze blame/etc/rsyslog.conf 关键部分我可以帮你精确判断是哪一步慢。