Filter Conditions 过滤条件Rsyslog 提供4种不同类型的"过滤条件"1."传统" severity and facility 基于选择器2.基于属性的过滤器3.表达式过滤器4.BSD-style blocks (not upward compatible) 不向上兼容Selectors 选择器Selectors 是传统的方式过滤syslog 消息,他们被保存在rsyslog的原始的语法里,因为那是众所周知的,高效的 也兼容stock syslogd配置文件。如果你只是需要基于 PRiority and facility进行过滤, 你需要使用selector linesselector 本身有2部分组成,a facility and a priority,通过一个句号(".")隔开这两部分都是不区分大小写的,也可以指定为十进制数字,但不要这样做facility 是下面关键字中一个: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (same as auth), syslog, user, uucp and local0 through local7. 关键字安全不应该被使用 标记只用于内部使用,因此不应该在应用中使用priority 是下面关键词之一,ebug, info, notice, warning, warn (same as warning), err, error (same as err), crit, alert, emerg, panic (same as emerg).关键词 error,warn和panic 是过时的 不能再被使用原始的BSD syslogd 的行为是所有指定的priority 和更高的消息是被记录根据给定的action.除了以上提到的rsyslogd(8) 了解下面的扩展名一个星号("*") 代表所有的facilities 或者所有的priorities取决于它是用在哪里(之前还是之后).关键词none 表示对于给定的facility 没有优先级。你可以指定多个设备使用相同的优先级模式在一个语句使用逗号分隔多重选择器 可能被指定用于一个单独的action 使用;分隔。记住每个selector 在selector 字段你是可以重写前面那个。Compare-Operations 比较操作:下面的compare-operations 是当前被支持的;contains检查如果 字符串提供值是包含在属性中,这必须是一个精确匹配,通配符是不支持的isequal比较提供的值和属性内容, 那两个值必须是准备的匹配。不同于包含是 包含搜索 值任何地方在属性值里,比如:isequal 是很有用的对于字段 像syslogtag 或者FROMHOST,你知道确切的内容startwith:检查如果值是准备找到的在属性值得部分,比如,如果你搜索val:msg, startswith, "val"它会匹配如果消息包含"“values are in this message”但是不会匹配 如果消息包含"“There are values in this message” (这种情况 "contains"会匹配)请注意 "startwith"是比正则快regex 比较属性通过提佛那个的POSIX BRE 正则表达式你可以使用 ! 在一个比较操作符前面 这样操作的结果是相反的。比如,如果 msg 包含"This is an informative message”, 下面的例子不会匹配::msg, contains, "error"但是这个会匹配::msg, !contains, "error"使用 !可以有用的 如果你想要做一些特定的处理 但是排除一些特定的事件。你可以使用discard action *.* /var/log/allmsgs-including-informational.log:msg, contains, "informational" ~*.* /var/log/allmsgs-but-informational.log值部分:值是引用字符串,它支持一些转义序列"/” - the quote character (e.g. “String with /”Quotes/””) // - the backslash character (e.g. “C://tmp”) 转义字符总是以一个/开始, 额外的转移序列可能在未来增加。可能,"msg" 是最突出的使用例子 基于过滤器。它实际上是消息文本,它可以过滤基于一些消息内容的:msg, contains, "ID-4711"这个过滤器 匹配当消息包含字符串"ID-4711"注意 comparison 是区分大小写的,因此他不会匹配如果 “id-4711” :msg, regex, "fatal .* error"这个过滤器使用一个POSIX 正则表达式,它匹配当字符串包含 字符"fatal" 和 “error” 和任何其他在两者之间比如( “fatal net error” and “fatal lib error” but not “fatal error” 基于表达式的过滤器:
新闻热点
疑难解答