如何丢弃 Rsyslog 服务器中的特定严重性

如何丢弃 Rsyslog 服务器中的特定严重性

我有一个 rsyslog 服务器,它具有来自多个远程客户端的数据;现在我想丢弃特定的严重性类型,例如warninfodebug以及我希望接受的其余消息。

我有下面的配置,部分显示templateRules进行检查。

在下面的配置中,我注释了所有内容,Custom conditional Forwarding因为我有其他主机名以不同的名称开头。所以,我在想,如果我只能放弃warninfo休息debug一下,该怎么办呢?

$template wcc-logs, "/data/SYSTEMS/%HOSTNAME%/messages.log"
#### RULES ############################################
# Log anything (except mail) of level info or higher.#
# Don't log private authentication messages!        #
####################################################
mail.none,authpriv.none,cron.none,news.none,uucp.none,kern.none  ?wcc-logs
*.*              ?wcc-logs
#####################################################################
# Custom conditional Forwarding of messages to the syslog Directory #
###################################################################
#if $fromhost startswith "wc" then {
#  *.crit,*.err,*.emerg,*.alert,*.panic,mail.none,authpriv.none,cron.none,news.none,uucp.none,kern.none  ?wcc-logs
#  & stop
#}

#if $fromhost startswith "sj" then      -?wcc-logs
#& stop

#if $fromhost startswith "vlsj-" then   -?wcc-logs
#& stop

在上面的配置中,您可能会看到我在规则部分中使用了以下规则,假设除了第一行之外的所有内容都应该被记录:

 mail.none,authpriv.none,cron.none,news.none,uucp.none,kern.none  ?wcc-logs
*.*              ?wcc-logs

rsyslogd 8.24.0

答案1

您可以使用以下语法删除warninfodebug级别的所有消息以及要使用“wcc-logs”模板记录的其他所有内容:

*.=warn,*.=info,*.=debug                                                stop
*.*,mail.none,authpriv.none,cron.none,news.none,uucp.none,kern.none     ?wcc-logs

丢弃的消息将无法用于对rsyslog.conf文件中的以下任何规则进行进一步处理。

如果您想忽略这些级别的消息,但仍可将它们用于其他规则的进一步处理,则可以扩展单个规则以忽略这些特定级别:

*.*,mail.none,authpriv.none,cron.none,news.none,uucp.none,kern.none,*.!=warn,*.!=info,*.!=debug     ?wcc-logs

相关内容