<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. jquery动态添加元素无法触发绑定事件的解决方案。

    jquery动态添加元素无法触发绑定的事件的解决方案. ╭(●`∀´●)╯二狗最近在工作中遇到一个问题,即当用jquery动态添加元素后,发现给动态添加的元素却无法触发事件(╯#-_-)╯╧═╧ ( ...

  2. web端及时通讯原理

    前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...

  3. django 执行原始SQL

    二.知识点总结 When the model query APIs don’t go far enough, you can fall back to writing raw SQL. go far ...

  4. 【基础练习】【vector】codevs3393 序列倒置

    版权信息 转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看 题目非常easy,本质还是练习一下vector 题目描写叙述 Descriptio ...

  5. Debian编译内核

    转自 yuzibo博客 http://yuzibo.github.io/DebianBuildKernel.html 最终成功一次了 之前又一次编译了好多次.可惜没有一次成功的,说实话.借助Debia ...

  6. apache在windows上开启gzip的方法

    环境搭建好之后,默认并没有开启gzip功能.需要修改apache的httpd.conf配置文件进行开启.开启方法如下:1. httpd.conf中打开deflate_Module和headers_Mo ...

  7. RHEL7使用ssm命令管理LVM

    1.安装ssm [root@localhost ~]# yum -y install system-storage-manager.noarch  2.检查硬盘和LVM信息 [root@localho ...

  8. oracle手动删除数据库

    有时候,无法使用图形界面时,我们需要手动删除数据库,具体操作步骤如下:一.手动删除文件系统数据库   1.停止监听,防止有新的连接产生,同时,在数据库配置了em的,也需要停止 $ lsnrctl st ...

  9. 属性动画详解 Interpolator TypeEvaluator

    概述 产生原因         3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:prope ...

  10. Linux中命令行编译java接口总是提示找不到符号的疑难杂症的解决

    今天学习java的接口,在linux的命令行下写代码练练手吧,啪啪啪一顿猛敲,写了一个接口UsbInserface,UDisk继承UsbInterface,写完了那就编译到bin目录呗. 当时写程序的 ...