Linux syslog频繁报错的高频原因与处置
一、常见根因概览
二、快速定位步骤
三、典型场景与修复要点
| 场景 | 典型错误信息 | 快速修复 |
|---|---|---|
| 服务未运行/配置错误 | “rsyslogd: configuration error…”, 服务反复重启 | 启动服务:systemctl start rsyslog;校验语法:rsyslogd -N1;核对 /etc/rsyslog.conf 与 /etc/rsyslog.d/*.conf 关键规则未被注释(如 . /var/log/syslog) |
| 磁盘满或 inode 耗尽 | “No space left on device”, “disk full” | 清理旧日志/归档;扩容磁盘或迁移 /var/log;检查并释放 inode |
| Unix 套接字投递失败 | “Unix syslog delivery error”, “connect to /dev/log: Permission denied” | 确认套接字存在与权限正确;必要时修正应用日志配置指向正确套接字;容器需挂载 /dev/log |
| SELinux 限制 | “Permission denied” 伴随 SELinux 拒绝日志 | 临时 setenforce 0 验证;分析 audit.log 并调整 SELinux 策略或布尔值 |
| 远程日志不通 | “Network is unreachable”, “Connection refused” | 校验目标 IP/端口、协议(UDP/TCP/TLS)、路由与防火墙;确保远端 syslog 监听正常 |
| 容器无法访问宿主机日志 | 容器内应用无法写入 /dev/log | 运行容器时挂载 -v /dev/log:/dev/log;或改为 stdout + 宿主机采集(推荐) |
四、预防与优化建议