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