在 Ubuntu 上,syslog(通常是 rsyslog 或 syslog-ng)为什么会“重启”,常见原因可以分为几类。下面以最常见的 rsyslog 为例说明。
查看方式:
last reboot
uptime
sudo systemctl restart rsyslog
或 cron / ansible / puppet 等自动化工具触发
查看历史:
journalctl -u rsyslog
/etc/rsyslog.conf/etc/rsyslog.d/*.conf很多管理工具会执行:
systemctl restart rsyslog
验证:
journalctl -u rsyslog | grep -i "config"
Ubuntu 默认 logrotate 会:
HUP 信号示例:
/var/log/syslog {
rotate 4
weekly
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
表现:
查看:
cat /var/lib/logrotate/status
查看:
journalctl -u rsyslog -p err
dmesg | grep -i kill
如果 rsyslog 异常退出,systemd 可能自动拉起:
[Service]
Restart=on-failure
查看:
systemctl show rsyslog | grep Restart
检查:
journalctl -u rsyslog --since "2024-01-01"
last
ausearch -m USER_LOGIN
# 1. 看服务日志
journalctl -u rsyslog
# 2. 看系统启动时间
uptime
last reboot
# 3. 看是否配置变更
ls -l /etc/rsyslog.conf
ls -l /etc/rsyslog.d/
# 4. 看 logrotate
cat /etc/logrotate.d/rsyslog
Ubuntu 的 syslog 重启,绝大多数情况是:系统重启、配置变更、logrotate 触发 reload,或异常崩溃后被 systemd 拉起。
如果你能提供:
journalctl -u rsyslog 的输出我可以帮你精准判断是哪一种原因。