Filter Conditions 过滤条件
<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 过滤条件的更多相关文章
- 怎么给SharePoint得视图设置多个过滤条件? How to set multiple complex filter conditions to the SharePoint list view ?
平时会很容易遇到需要给视图设置复杂得过滤条件,如果是一两个条件还好多,如果条件超过四个,会比较麻烦,很容易会出现逻辑不清,或者没有按照你得意愿来过滤数据得问题. 解决方案: 设置计算列,calcula ...
- Informatica 常用组件Filter之二 过滤条件
过滤条件可以使用转换语言输入.过滤条件是返回 TRUE 或 FALSE 的表达式.例如,如果您要过滤出员工薪水低于 $30,000 的行,可输入以下条件: SALARY > 30000 可以使用 ...
- .NET深入实战系列--EF到底怎么写过滤条件
本文唯一访问地址:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: ...
- WireShark系列: 使用WireShark过滤条件抓取特定数据流(zz)
应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...
- .NET深入实战系列--EF到底怎么写过滤条件(转)
原文来自:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: /// ...
- 在sphinx中应用复杂过滤条件
一.问题的引入 在sphinx应用中,需要对数据进行复杂的条件过滤,刷选出我们需要的数据.这个过程,等同于mysql查询中的where条件. 但sphinx本身的filter并不能支持复杂的逻 ...
- Filter的过滤链理解
一.Filter过滤链 web.xml配置了filter过滤器,在容器启动的时候执行了init()方法进行了初始化,然后在容器关闭的时候执行了destroy()方法销毁过滤器,在每次服务器接受请求的时 ...
- django-admin 仿写stark组件action,filter筛选过滤,search查询
写在StandLi里面的方法都是通过ModelSubject这个类里面的stand_li方法,在它里面用StandLi这个类实例化出来一个对象,这个实例化出来的对象把数据传给前端HTML模板进行渲染, ...
- 一站式学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流
应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...
随机推荐
- 鼠标事件之鼠标滑过事件MOUSEOVER
来源地址:http://www.g2room.com/jquery/index.php?p=example%2Fevent%2Fmouseover.html&n=%E9%BC%A0%E6%A0 ...
- struts2中修改Action后刷新浏览器后不能及时更新
在学习strut2的时候,发现如果修改配置文件中Action的时候,刷新浏览器并不能加载修改后的Action,只能关闭服务,重新开启server才能获取到,上网找了许多资料后发现只要在配置文件中加上下 ...
- Spring MVC之LocaleResolver(解析用户区域)
为了让web应用程序支持国际化,必须识别每个用户的首选区域,并根据这个区域显示内容. 在Spring MVC应用程序中,用户的区域是通过区域解析器来识别的,它必须实现LocaleResolver接口. ...
- get client machine name
System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;
- Android 物理按键
import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view. ...
- Android 布局 ViewGroup
布局 res/layout 命名规则(全部小写) activity_ fragment_ item_ 基础组件 com.android.widget包下 父类View view:屏幕上一块矩阵区域 能 ...
- [Javascript] Intro to Recursion
Recursion is a technique well suited to certain types of tasks. In this first lesson we’ll look at s ...
- 将activity设置成dialog样式如何设置窗口大小
具体做法和dialog窗口的设置类似,只需要在onCreate方法中,加入下列代码,既可以控制大小! // 设置窗体大小 ScreenUtil.getScreenWidth(LoadActivity ...
- [转] Linux写时拷贝技术(copy-on-write)
PS:http://blog.csdn.net/zxh821112/article/details/8969541 进程间是相互独立的,其实完全可以看成A.B两个进程各自有一份单独的liba.so和l ...
- python面对对象编程----2:__init__
面对对象编程估计我们最早接触到的就是__init__了,也就是实例的初始化处理过程: 1:来看看最基础的__init__ class Card(object): #抽象类Card,并不用于实例化 de ...