温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Syslog为何重复记录日志

发布时间:2026-09-09 17:18:53 来源:亿速云 阅读:92 作者:小樊 栏目:系统运维

Syslog 出现重复记录日志是很常见的问题,通常不是“bug”,而是配置或架构导致的多条路径写入同一日志。下面按常见原因系统说明:


一、最常见原因:多个程序/模块写入同一日志

1. 应用直接写 + syslog 写

应用既:

  • 自己写文件(如 /var/log/app.log
  • 又通过 syslog() 发到 syslog

结果:同一事件出现在两个地方,看起来像“重复”。

✅ 解决:

  • 应用只走 syslog
  • 或 syslog 不再额外记录该日志

二、rsyslog / syslog-ng 规则重复

2. 多条规则匹配同一日志

例如在 rsyslog.conf 中:

*.* /var/log/messages
auth.* /var/log/messages

导致一条 auth 日志写两次。

✅ 解决:

  • 避免重复 action
  • stop 防止继续处理
auth.* /var/log/auth.log
& stop

三、系统服务重复转发

3. journald + rsyslog 同时记录

在 systemd 系统上:

  • systemd-journald 已记录
  • rsyslog 又从 journal 读取并写文件

✅ 检查:

systemctl status systemd-journald
systemctl status rsyslog

✅ 可选方案:

  • 只用 journald:journalctl
  • 或禁用 rsyslog 从 journal 读取

四、日志被转发多次

4. 本机 + 远程 syslog

配置中同时有:

*.* /var/log/messages
*.* @logserver:514

如果远程服务器又把日志发回来,就会循环/重复。

✅ 解决:

  • 检查转发环路
  • 远程服务器过滤来源

五、容器 / 虚拟化环境

5. 容器日志双重收集

  • 容器 stdout → docker logs
  • 容器内 syslog → 宿主机 syslog

✅ 解决:

  • 容器只输出 stdout
  • 或由宿主机统一收集

六、logrotate 或脚本问题

6. 日志未正确 rotate

  • 旧文件未截断
  • 新日志追加到旧文件

看起来像“重复历史日志”。

✅ 解决:

logrotate -d /etc/logrotate.conf

七、快速自查清单

# 看谁在写 syslog
ps aux | grep syslog

# 查配置重复
grep -R " /var/log/" /etc/rsyslog.conf /etc/rsyslog.d/

# 看是否有循环转发
netstat -anu | grep 514

总结一句话

Syslog 重复日志,99% 是因为“同一条日志被多个规则、多个服务、多条路径处理了一次以上”。

如果你愿意,可以贴出:

  • 使用的 syslog(rsyslog / syslog-ng / journald)
  • 相关配置文件
  • 重复日志示例

我可以帮你精准定位是哪一条配置导致的。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI