件里的每一行与一些规则表达式进行匹配,每找到一个匹配就相应地执行某个动作,而那些动作被表达为“规则”.logsurfer工具在某些方面比swatch工具做得还要好.
,logsurfer工具使用两组规则表达式匹配文本行;日志文件中的文本行匹配第一组表达式,但不需要匹配可选的第二组表达式.这种安排在某些场合非常有用,它可以让人们方便地排除异常情况.logsurfer工具的另外一个突出优点是它可以结合上下文进行检查而不是只检查单个的文本行.这很方便,日志文件里的单独一行文本往往不足以包含做出某个决定所需要的信息.
要说不足,不少人认为logsurfer工具比较难以配置,对它进行配置精通规则表达式,它本身提供的配置示例不够多.如果想了解更多关于logsurfer工具的信息,它的man文档是最好的地方.列在表1里的细节都可以在这个工具的man文档里查到.logsurfer配置文件里的每
一行可以是以下三种情况之一:如果第一个字符是“#”,它是一个注释行;如果第一个字符是空格,它是上一行的继续;如果第一个字符既不是“#”也不是空格,它是一条新规则的开始.每条新规则由六个必要字段(第1、2、3、4、5、7字段)和一个可选字段(第6字段)组成,对这七个字段的详细解释见表1.
表1 logsurfer配置行上的各个字段
字段编号 |
是否是可选 |
字段名 |
字段解释 |
1 |
必要 |
match_regex |
“字段1”被解释为一个规则表达式.如果文本行匹配“字段1”(match_regex),按后续各项定义依次处理;如果不匹配,logsurfer将用下一条规则匹配这个文本行,本规则后续各项定义不起作用 |
2 |
必要或- |
not_match_regex |
这个字段将被解释为一个规则表达式.用“字段1”(match_regex)匹配到的文本行只有在不匹配“字段2”(not_match_regex)的情况下才继续按后续各项定义依次处理 |
3 |
必要或- |
stop_regex |
如果不是减号(-)字符,本字段将被解释为一个规则表达式.如果这个表达式得到匹配,本规则将从活跃规则表里被删除 |
4 |
必要或- |
not_stop_regex |
如果不是减号(-)字符,本字段将被解释为一个规则表达式.只有在“字段3”(stop_regex)存在且已得到匹配和“字段4”(not_stop_regex)不匹配的情况下才删除这个规则 |
5 |
必要或0 |
timeout |
以秒计算logsurfer规则的寿命,把“字段5”设置为0表示规则永远有效 |
6 |
可选 |
Continue |
如果这个字段被设置为“continue”,logsurfer将继续使用下一条规则来匹配文本行;如果没有“continue”,后续的规则将全部被跳过 |
7 |
必要 |
Action |
以下几种动作之一:ignore、exec、pipe、open、delete、report、rule |
表2 logsurfer动作解释
动作名称 |
解释 |
Ignore |
什么都不做,忽略被匹配到的文本行.有时候,虽然用logsurfer工具找到了一些日志文本行,但如果知道它们并不重要,可以用这个动作不让logsurfer发出警报 |
exec |
这个动作的参数被解释为一个程序,规则得到匹配时logsurfer将调用该程序 |
pipe |
类似于exec动作,但被调用的程序将从stdin设备读入一个日志文本行 |
open |
增加(打开)一个新的上下文,但在匹配match_regex(“字段1”)时已经存在的上下文就不必再次打开了 |
Delete |
如果一个现已存在的match_regex被用做这个动作的参数,指定的上下文将被关闭并删除,不采取“default_action”选项定义的默认动作 |
report |
这个动作的第1个参数是一个将被调用执行的程序(及其命令行选项).随后的参数是一些将被用做该程序的标准输入的上下文定义 |
Rule |
这个动作将创建一条新规则.关键字“rule”的后面有一个告诉logsurfer按什么顺序使用新规则的指示符:before(在本规则之前使用)、behind(在本规则之后使用)、top(在本配置文件所有规则之前使用)、bottom(在本配置文件所有规则之后使用) |
|