将系统的所有日志发送到一个特定的 syslog 本地设施(local1-7)

将系统的所有日志发送到一个特定的 syslog 本地设施(local1-7)

我想将 syslog 本地设施分配给特定的操作系统,这样我就可以在日志服务器上对传入的日志进行排序(例如,local1 用于 Windows 日志,local2 用于 RedHat 日志等)。它在 Windows 上运行良好,但我只能使用 RedHat 系统。

我可以在 RHEL 中的 rsyslog 中指定应将日志发送到哪个本地(1-7)设施吗?(例如,将特定系统的所有日志发送到 .local2)

答案1

通常,您无法使用“普通” syslogd 执行此操作,因为这违反了 syslog 设施的设计。Windows 日志转发器以这种方式工作,因为 Windows 日志事件没有类似 Unix 的设施,而为整个服务器分配一个设施是最简单的解决方案。

在 Unix 上,每条日志消息都有自己的设施属性,以区分同一主机上的不同服务。后来,即使是中央日志服务器也可以使用主机和设施组合的过滤器来识别守护进程。

您的计划将需要一个 syslog 转发器来重写该功能。这当然是可能的,例如 syslog-ng 有重写规则,而像 logstash 这样的大型工具也应该支持它——但我不建议这样做。您最终会得到自己的站点本地设计,与常见做法背道而驰,使日志系统的未来每次更改都变得更加困难。

相关内容