我有一个 rsyslog 服务器,它具有来自多个远程客户端的数据;现在我想丢弃特定的严重性类型,例如warn
、info
和debug
以及我希望接受的其余消息。
我有下面的配置,部分显示template
并Rules
进行检查。
在下面的配置中,我注释了所有内容,Custom conditional Forwarding
因为我有其他主机名以不同的名称开头。所以,我在想,如果我只能放弃warn
,info
休息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
您可以使用以下语法删除warn
、info
和debug
级别的所有消息以及要使用“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