系统日志配置 - 重复警报?

系统日志配置 - 重复警报?

我正在使用 Solaris 10 并在中看到了这一行/etc/syslog.conf

*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice       /var/adm/messages

这是否意味着,如果我有一个授权错误/var/adm/message,由于以下原因,错误消息将出现在我的两次中:

*.err  
auth.debug 

如果假设我还有另一行:

*.emerg  *
*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice       /var/adm/messages

这是否意味着,如果我有一个内核.emerg,它将记录两次,/var/adm/messages因为

 *.emerg  *   and
kern.debug  /var/adm/messages

=======

添加于

auth.notice         ifdef(`LOGHOST', /var/log/authlog, @loghost) 
  • syslog 如何检查这台机器是否是日志主机?通过检查 /etc/hosts 中的“loghost”别名并查看它是否与机器的 IP 匹配?

  • 我的 syslog.conf 没有 ifdef,但它仍然有效,ifdef 是否必要?

答案1

这些规则主要定义在运行时应用于每条消息的过滤器,因此实际上,您不应该在同一目标/文件中存在重复的消息。

可以使用分号('';'')分隔符为单个操作指定多个选择器。请记住,选择器字段中的每个选择器都能够覆盖前面的选择器。

但是,您可以并且确实收到发送到不同文件(包括控制台)的相同消息。

如果是

*.emerg *

这是 syslog 中所有用户的简写,它适用于所有用户。

大家都登录了

紧急消息通常会发送给当前在线的所有用户,通知他们系统发生了异常情况。要指定此 wall(1) 功能,请使用星号 (''*'')。

因此,实际上,在 kernel.emerg 中,会将其发送给所有用户,并同时发送给 /var/adm/messages ;但是 /var/adm/messages 中只有一行。

原始 BSD syslogd 的行为是根据给定的操作记录指定优先级及更高优先级的所有消息。

引用自手册syslog.conf页:

syslog.conf(5) 手册页

至于ifdef,举个例子:

auth.notice         ifdef(`LOGHOST', /var/log/authlog, @loghost) 

如果定义了LOGHOST(即此syslog是一个LOGHOST,它将发送日志/消息到/var/log/authlog,否则将发送到@loghost。

至于ifdef则不是必需的,至于LOGHOST,根据这一页它是从文件 /etc/hosts 中获取的机器名称(或者可能是 DNS,仅测试)

编辑 /etc/hosts (./inet/hosts) 并添加一行或多行定义 loghost 的 IP 地址(名称是任意的,如果定义了多个远程主机,您可以使用您想要的任何名称)

相关内容