温馨提示×

linux syslog为何启动失败

小樊
41
2026-09-23 00:27:07
栏目: 智能运维

Linux 中 syslog 启动失败 的原因很多,通常不是“syslog 本身坏了”,而是环境、配置或权限出了问题。下面按最常见原因 → 排查方法来说明。


一、先确认你用的是哪种 syslog

不同发行版用的“syslog”不一样:

系统 使用的日志服务
CentOS 6 / 老系统 rsyslog / syslogd
CentOS 7+ / RHEL 7+ rsyslog + systemd-journald
Ubuntu 16.04+ rsyslog
新 Ubuntu systemd-journald(可无 rsyslog)

查看方式:

ps -ef | grep syslog
systemctl status rsyslog

二、最常见的启动失败原因

1️⃣ 配置文件语法错误(最常见)

rsyslogd -N1

如果有报错,说明 /etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf 有问题。

✅ 解决:

  • 修正报错行
  • 注释掉可疑配置再试

2️⃣ 端口被占用(远程日志)

如果你配置了:

*.* @remote:514

或:

module(load="imtcp")
input(type="imtcp" port="514")

检查:

ss -lntp | grep 514

✅ 解决:

  • 换端口
  • 杀掉占用进程

3️⃣ 日志目录或文件权限错误

常见错误:

Permission denied

检查:

ls -ld /var/log
ls -l /var/log/messages

✅ 解决:

chown syslog:syslog /var/log
chmod 755 /var/log

(用户可能是 syslog 或 root)


4️⃣ /var 满了(磁盘 100%)

df -h

✅ 解决:

  • 清理旧日志
  • 重启 syslog

5️⃣ SELinux 阻止(CentOS / RHEL)

ausearch -m avc -ts recent

✅ 临时测试:

setenforce 0

✅ 永久解决:

semanage port -a -t syslogd_port_t -p tcp 514

6️⃣ systemd 服务未启用或异常

systemctl status rsyslog
journalctl -xe

常见问题:

  • 服务被 mask
  • 启动超时

✅ 解决:

systemctl unmask rsyslog
systemctl enable --now rsyslog

7️⃣ 容器 / 云主机限制

  • Docker 容器默认没有 systemd
  • 很多云镜像禁用了 syslog

✅ 解决:

  • 在宿主机看日志
  • 或容器内手动运行:
rsyslogd -n

三、快速排查顺序(推荐)

systemctl status rsyslog
journalctl -xe
rsyslogd -N1
df -h
ss -lntp

四、如果你愿意,我可以更精确地帮你

你可以把以下信息发我:

  1. 系统版本(cat /etc/os-release)
  2. 报错信息(完整)
  3. systemctl status rsyslog 输出
  4. 是否用了远程日志 / Docker

我可以直接告诉你具体是哪一行导致的失败。

0 踩