读书频道 > 网站 > 网页设计 > 网站运维技术与实践
3.2.1.2.3 过滤器 filter
14-04-12    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > 网站运维技术与实践

网站运维工作,一向以内容繁杂、覆盖面广著称。《网站运维技术与实践》选取日常工作涉及的监测调优、日志分析、集群规划、自动化部署、存储和数据库等方面,力图深入阐述各项工作的技术要点及协议原理,并介绍相立即去当当网订购

Rsyslog提供了三种不同类型的过滤器。

a.基于 RainerScript的过滤器

RainerScript是一个专门设计用来处理网络事件的脚本语言,2008年起 Rsyslog开始支持 RainerScript。它主要通过逻辑、算术和字符串操作等表达式来过滤,最常用的关键字就是 if,示例如下。

if $programname == 'prog1' then {    action(type="omfile" file="/var/log/prog1.log") if $msg contains 'test' then

     action(type="omfile" file="/var/log/prog1test.log")

else

if $syslogfacility-text == 'local0' and $msg startswith 'DEVNAME' and not ($msg contains_i 'error1' or $msg contains_i 'error0') then /var/log/ somelog

     *.err /var/log/errlog }

如上所示,在 RainerScript类型的过滤器中,也可以写其他类型的过滤器。

b.基于程序位和严重性的选择器

selector是传统的 Syslog过滤方法,只能针对 PRI做出是非与的判断。参见上例中最后一条。

*.err /var/log/errlog

c.基于属性的过滤器属性过滤器是 Rsyslogd独有的,可以对各种属性进行过滤。属性过滤器的每行都以“:”(冒号)开头,然后紧跟属性名称和逗号,接着是比较操

作符和逗号,最后是用引号包裹的内容。注意属性是对大小写敏感的,示例如下。

*.* /var/log/allmsgs-including-informational.log :msg, contains, "informational" ~ *.* /var/log/allmsgs-but-informational.log

这里用“:msg”来过滤 msg中包含 informational字样的信息,后面的“~”则是 action操作,稍后讲述。

比较操作符包括有 contains、isempty、isequal、startswith、regex、ereregex,如果不区分大小写,则在操作符后加“_i”。

注意:这里的 regex,是指 POSIX BRE正则表达式,也即是 grep和 sed支持的正则表达式;而 ereregex是指 POSIX ERE正则表达式,是 egrep和 awk支持的正则表达式。

另,由于 CentOS上 grep、sed、vi和 awk等命令都是 GNU改版过的,在正则上更为丰富,比如“ +”、“?”以及“\1”(反引用)的支持等。所以习惯了 GNU命令的人可能会认为 Rsyslog中 regex的使用依然比较局限。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站