syslog 中的 local6(以及所有其他 local#)设施是什么?

syslog 中的 local6(以及所有其他 local#)设施是什么?

##我的理解

在 *nix 服务器上,我们使用 来配置发送日志facility.severity,其中facility是系统(我们称之为)“组件”的名称,例如内核、身份验证等;是severity设施记录的每个日志的“级别”,例如info(信息)日志、crit(关键)日志。

因此,如果我想发送内核关键日志,我将使用kern.crit.

设施和严重性的组合被称为优先级,例如......

  • 优先级 = kern.crit
  • 设施=紧缩
  • 严重程度=暴击

##问题

有称为 的“设施local0local7

这些设施到底是什么local#?我具体询问的是local6,因为它通常是我在搜索中找到的最常见的一个。

我的问题实际上是因为我正在配置 Snort(SourceFire 入侵传感器)来发送日志,所以我想知道facility使用哪个。不过,我的问题并不是 Snort 特有的,因为local#设施无处不在;例如,在 Cisco 和 IBM 的 WebSphere Application Server 上。

##研究

  • RFC3164,这是定义 syslog 协议的地方,仅表示:

      local6 - local use 6
    

这并没有真正描述它,而不是:

    auth   - security/authorization messages
  • 在 Ubuntu 中,man syslog显示:
       LOG_LOCAL0 到 LOG_LOCAL7
                      保留供本地使用

还有,模糊。

答案1

基本信息

这些设施local0local7syslog 为用户提供的“自定义”未使用的设施。如果开发人员创建应用程序并希望将其记录到 syslog,或者如果您希望将任何内容的输出重定向到 syslog(例如 Apache 日志),则可以选择将其发送到任何设施local#。然后,您可以使用/etc/syslog.conf(或/etc/rsyslog.conf) 将发送到该文件的日志保存local#到文件,或将其发送到远程服务器。

回答我的问题

我问这个问题是因为我想将日志发送到外部服务器,所以我想知道选择哪一个,而不是“将日志写入设施local#”。我必须返回 Snort 文档来了解他们正在向local#设施写入什么内容。

答案2

Local#设施专用于本地使用,并且没有任何标准定义(如 RFC)哪个设施由哪个应用程序使用。所以你可以选择任何你想要的。当然,某些应用程序及其开发人员同意使用特定的工具,但这不是官方标准(例如 sudo - LOCAL2、Snort - LOCAL5,...)。

相关内容