<pre name="code" class="html">Filter Conditions 过滤条件:

Rsyslog 提供4种不同类型的"filter 条件"

"传统的" severity and facility 基于selectors:

基于属性的过滤器

基于表达式的过滤

Selectors 选择器

选择器是过滤消息传统的方式, 它们被保存在 rsyslog 使用原来的语法,

因为它是众所周知的,高效和用于兼容 stock syslogd 配置文件。

如果你只要过滤基于priority and facility, 你应该使用selector lines.

selector 字段 本身有两部分组成,一个设备和一个优先级 通过点号分隔。

这两部分是不区分大小的,也可以通过十进制数指定, 但是不要这么做,

你会被警告。 facilities and priorities 都在syslog(3)都有描述,

facility 是下面其中一个关键字:auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (same as auth), 

syslog, user, uucp and local0 through local7. 

关键字
security 不应该被使用 标记为只能内部使用,因此不能被用于应用。 priority 是下面的关键字, debug, info, notice, warning, warn (same as warning), err, error (same as err), crit, alert, emerg, panic (same as emerg). 关键字error,warn 和panic 是过时的,不能在被使用,优先级定义消息的严重性 原来的BSD syslogd 行为是所有的指定的优先级或者更多的是被记录根据给定的action. rsyslogd 表现类似,但是有一些扩展 除了以上提到的名字rsyslogd(8) 了解下面的扩展:一个*代表所有的facilities 或者所有的priorities 依赖它被使用在哪里(点号的之前或者之后) 关键字none 代表没有给定facility的优先级,你可以指定多个facilities 使用相同的优先级模式 在一行使用逗号(,)隔开。 你可以指定你想要的facilities 记住 只有facility部分从这样的语句是接收,一个优先级部分是被跳过 多个选择器可以通过一个单独的action 使用分号隔开。 记住每个选择器 在selector 字段是可以覆盖之前那个的,使用这个行为你可以执行相同的优先级从模式里 Rsyslogd 有一个语法扩展到原来的BSD 源, 让它的使用更加的直观。 你可以在每个优先级之前 使用一个等号来指定只有这个单个的邮件及和不是上面的任何一个。 你也可以是两者都是在优先级之前使用一个!来忽略使用所有的优先级 基于属性的过滤器: 基于属性的过滤是唯一的对于rsyslogd, 它们允许过滤任何属性, 像HOSTNAME,syslogtag 和msg 一个所有当前支持的属性的列表可以找到在属性替换文档( 但是记住只有属性) 使用这个过滤,每个属性可以被检查通过一个指定的值,使用一个指定的比较操作 基于属性的过滤器必须开始以一个冒号在列0, 这个高速rsyslogd 它是新的filter 类型。 冒号必须跟着一个属性名字,一个逗号,比较操作名字来进行,另外逗号和值进行比较。 这个值必须被引号引起来。 有空格和tabs键在逗号之间,属性名字和区分大小写的,因此 "msg" 工作, 当"MSG" 是一个争取的属性名称,简单的说,语法如下: :property, [!]compare-operation, "value" 比较操作符: 当前支持以下操作符: contains: 检查值如果字符串提供值是包含在属性内,这里必须有一个精确的匹配,通配符是不支持的 isequal 提供的值和属性内容比较,那两个值 必须完全等价匹配。 不同于contains 是contans 搜索值在整个属性值的任何地方, 反之 所有的字符串必须是相等的对于 isequal. 因此,isequal 是很有用的对于字段像syslogtag 或者FROMHOST ,在这些情况你知道确切的内容 startswith 检查值是准确找到在属性值的开头,举个例子, 如果你搜索"var" :msg, startswith, "val" 这个会匹配如果msg 包含"values" 是在这个消息里,但是它不会匹配如果msg 包含 “There are values in this message”
(这种情况“contain”会匹配) 值部分 值是一个引用的字符串,它支持一些转义字符 转义字符总是以一个/开始, 二外的转义字符可能被增加在未来。 反斜杠字符必须是转义的,任何其他序列 然后那些概述是无效的 会导致一个不可预知的结果 可能,"msg" 是最突出的基于属性过滤器的使用例子,它是 实际消息的文本 如果你想要过滤一些消息内容(例如,指定代码的存在)的基础上,这可以很容易的实现: :msg, contains, "ID-4711" 次过滤器会匹配当消息包含 字符串 “ID-4711”. 请注意 比较是区分大小写的,如果是“id-4711”将不会匹配 :msg, regex, "fatal .* error" 这个过滤器使用POSIX 正则表达式,如果匹配当字符串包含字符"words" fatal和“error” 获得基于 属性过滤可以有一些挑战,为了帮助你,rsyslogd 吐出所有的debug 信息对于 所有基于属性的过滤器在它们评估期间。为了启动这个,运行rsyslog在后台指定-d选项 表达式基于过滤器: 基于表达式的过滤器允许过滤任意的复杂表达式, 可以包含博而至,运算和字符串操作。 基于表达式是通过关键字if表明 在第一列,格式如下: if expr then action-part-of-selector-line if和then 是固定的关键字 必须是存在的 BSD 风格的blocks: 注意 rsyslog v7+不在支持BSD-style blocks 由于技术原因,因此强列不推荐使用它们
												

Filter Conditions 过滤条件的更多相关文章

  1. 怎么给SharePoint得视图设置多个过滤条件? How to set multiple complex filter conditions to the SharePoint list view ?

    平时会很容易遇到需要给视图设置复杂得过滤条件,如果是一两个条件还好多,如果条件超过四个,会比较麻烦,很容易会出现逻辑不清,或者没有按照你得意愿来过滤数据得问题. 解决方案: 设置计算列,calcula ...

  2. Informatica 常用组件Filter之二 过滤条件

    过滤条件可以使用转换语言输入.过滤条件是返回 TRUE 或 FALSE 的表达式.例如,如果您要过滤出员工薪水低于 $30,000 的行,可输入以下条件: SALARY > 30000 可以使用 ...

  3. .NET深入实战系列--EF到底怎么写过滤条件

    本文唯一访问地址:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: ...

  4. WireShark系列: 使用WireShark过滤条件抓取特定数据流(zz)

    应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...

  5. .NET深入实战系列--EF到底怎么写过滤条件(转)

    原文来自:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: /// ...

  6. 在sphinx中应用复杂过滤条件

    一.问题的引入   在sphinx应用中,需要对数据进行复杂的条件过滤,刷选出我们需要的数据.这个过程,等同于mysql查询中的where条件.   但sphinx本身的filter并不能支持复杂的逻 ...

  7. Filter的过滤链理解

    一.Filter过滤链 web.xml配置了filter过滤器,在容器启动的时候执行了init()方法进行了初始化,然后在容器关闭的时候执行了destroy()方法销毁过滤器,在每次服务器接受请求的时 ...

  8. django-admin 仿写stark组件action,filter筛选过滤,search查询

    写在StandLi里面的方法都是通过ModelSubject这个类里面的stand_li方法,在它里面用StandLi这个类实例化出来一个对象,这个实例化出来的对象把数据传给前端HTML模板进行渲染, ...

  9. 一站式学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流

    应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...

随机推荐

  1. 合泰 HT66F30 定时器初始化

    #define TM0_RUN (0<<7) //TM0运行 #define TM0_PAUST (1<<7) //TM0暂停 #define TM0_DIV4 (0<& ...

  2. C++中的构造函数和析构函数

    构造函数: 在类实例化对象时自动执行,对类中的数据进行初始化.构造函数可以从载,可以有多个,但是只能有一个缺省构造函数. 析构函数: 在撤销对象占用的内存之前,进行一些操作的函数.析构函数不能被重载, ...

  3. App发布AppStore【苹果开发者中心需要做的事】

    请准许我的这句抱怨,也说明发布app到AppStore理清这些东西的重要性:起初打包出现各种 ApplicationVerificationFailed,不是这里没有搞对就是那个证书没有搞对,整个人签 ...

  4. 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三

       手把手叫你玩转网络编程系列之三    完毕port(Completion Port)具体解释                                                    ...

  5. STL之auto_ptr

    What's auto_ptr? The auto_ptr type is provided by the C++ standard library as a kind of a smart poin ...

  6. Myeclipse中点(.)不出来方法或者属性?

  7. css的clip裁剪

    clip 属性是用来设置元素的形状.用来剪裁绝对定位元素(absolute or fixed). clip有三种取值:auto |inherit|rect.inherit是继承,ie不支持这个属性, ...

  8. HTML5文件加载进度管理

    /** * 文件加载进度管理 */ DownloadUtils = function(options){ options = options || {}; this.init(options); }; ...

  9. expr的简单应用

    expr命令 是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. –格式为: expr expression_r(命令读入Expression 参数 ...

  10. 保障MySQL安全的14个最佳方法

    MySQL数据库一贯以高性能.高可性和易用性著称,它已经成为世界上最流行的开源数据库.大量的个人.WEB开发者.大型公司等都在其网站.关键系统.软件包中广泛使用MySQL数据库.        通常, ...