除了常见的系统设施(、、、、等)之外,mail
syslog还提供了一系列“本地”设施,编号从 0 到 7:、、…… 、。news
daemon
cron
LOCAL0
LOCAL1
LOCAL7
哪些是常用应用程序的程序默认设置?
我想了解哪些设施“传统上”用于知名服务。我将在许多服务器上部署应用程序,并安装各种软件,并想看看是否有一个“免费”设施可以轻松用于我自己的日志。
需要注意的是,我意识到除了使用 syslog 工具之外还有其他方法可以做到这一点。只是好奇而已!
这里有一些,(开始回答我自己的问题)以及对 voretaq7 的一些感谢:
LOCAL0
由 postgresql 使用LOCAL2
由 sudo 使用LOCAL3
被某些版本的 SpamAssassin 使用LOCAL4
slapd(OpenLDAP 服务器)默认使用LOCAL5
有时被 Snort IDS 使用LOCAL7
用于 Fedora 12 上的启动消息
答案1
这些LOCALn
设施可供任何当地使用,并且不同地点的设施差异很大。
我保证这 8 个可用资源中的每一个都有用,所以如果您想避免冲突,我最好的建议是将所有 7 个资源记录到单独的日志中,然后选择其他资源似乎没有使用的那个。
您错过的一些内容(程序默认值 - 可能会在本地更改,因此请仔细检查):
LOCAL0
由 postgresql 使用(如果配置为记录到 syslog)LOCAL2
由 sudo 使用(如果配置为记录到 syslog)LOCAL3
被某些版本的 SpamAssassin 使用- 本地管理员通常会将其更改为
mail
登录
- 本地管理员通常会将其更改为
LOCAL5
有时被 Snort IDS 使用- 我不知道这是默认设置还是巧合,但我在多个 Snort 安装中都看到过这种情况
答案2
LOCAL0-LOCAL7 Syslog 设施没有标准。根据设计,您无法指望它们是否会被任何东西使用。特定发行版或组织可能有自己的惯例,但这取决于发行版或组织的政策,而不是任何更广泛的标准。
作为替代方案,您是否考虑过使用 Syslog“标签”?标签是自由格式的字符串,添加到日志消息前面以识别特定应用程序或日志通道。默认情况下,标签通常由生成日志数据的进程名称和 ID(例如“httpd[2839]”)组成。“logger”命令行实用程序和大多数 Syslog API 支持指定您想要用于应用程序的任何标签。
例如,我个人喜欢对我的 Apache Web 服务器访问日志使用“http-access”,我通过将 Apache 的日志输出传送到命令“logger -p local7.info -t 'http-access'”将其发送到 Syslog。
答案3
大多数 syslog.conf 文件都为消息文件 (*.info) 设置了通配符功能。如果这只是一个普通的应用程序,而不是某个完全成熟的日志占用大容量的程序,那么您可能应该只记录消息,而不是独立文件。
选择记录到您自己的文件意味着在您的软件安装包中添加一个安装后步骤,该步骤会在 syslog.conf 中添加一个适当的条目。这也意味着,如果您愿意,您可以添加一个安装后步骤来创建适当的 logrotate 文件。
答案4
我也在寻找一个像 syslog.conf 这样的配置文件,以便将 local0-7 设施与向其写入数据的程序进行交叉引用。看来这样的配置文件并不存在。要找出哪个程序正在向日志写入数据,您必须打开日志文件并找到冒号旁边的列旁边的程序名称,例如... sendmail[22950]: 代表 sendmail 程序。方括号内的数字代表程序执行期间使用的端口号。