Logsurfer--Linux系统日志的管理利器

来源:互联网 发布:软件著作权抵税 编辑:程序博客网 时间:2024/05/16 01:48

1.简介

Logsurfer是一个实时监控系统log的进程,并且会在发生事件的时候按照配置文件中的相关配置上报消息或者执行操作。它跟我们熟知的Swatch相似,并且是基于Swatch的,但是它也提供了一系列swatch不支持的更高级的功能。

Logsurfer能够将相关的log分类管理--比如当一个系统自启动的时候会创建很多的log messages。在这种情况下,logsurfer可以将这些启动时候的messages放到一个分组里,并且将这些消息通过一个独立的Email消息发送给系统管理员管理的项目名为“主机xx已经重启“的分组。Swatch则不能完成这个需求。

Logsurfer是用C语言写的,这使得它非常的效率,一个重要的原因是是现场会产生大量的log traffic。我曾经使用logsurfer在一个log服务器每天记录超过50W条记录,logsurfer可以一直保持这个load运行,且没有任何问题。Swacth,在其他的方面,是基于perl实现的,而且即使是很小的log traffic也可能存在问题。

2. 下载和安装

下载最新的logsurfer版本地址:http://www.crypt.gen.nz/logsurfer 

  wget http://www.crypt.gen.nz/logsurfer/logsurfer+-1.6.tar.gz  tar xvfz logsurfer+-1.6.tar.gz
使用默认选项配置logsurfer+,并编译安装到/usr/local/bin:
  ./configure  make  make install
Logsurfer是一个很小的C程序,非常容易安装和管理。你可以根据你自己的系统设计启动和关闭脚本。对于Solaris来说,这里有一个例子:
  wget http://www.crypt.gen.nz/logsurfer/logsurfer_init_solaris  mv logsurfer_init_solaris /etc/init.d/logsurfer  chmod 755 /etc/init.d/logsurfer  ln -s /etc/rc3.d/S98logsurfer /etc/init.d/logsurfer
编辑/etc/init.d/logsurfer以及为log文件存储位置设置本地选项等等。 然后把它链接到/etc/rc*.d目录,当喜用启动和关闭的时候,它可以跟随系统被调用。

初始化脚本为Logsurfer定义了一些选项,包括监测哪个log文件,以及监测的配置文件。

3.规则

Logsurfer的规则是简单的去做一些事情当它看到特定的行在log messages的输入六中出现。规则如下所示:
  match_regex not_match_regex stop_regex not_stop_regex timeout [continue] action...
match_regex是一个规则的表达式定义,这个表达式定义与规则相匹配。
not_match_regex是一个规则的表达式定义,这个表达式定义与规则不匹配。
如果有一行匹配stop_regex,那么这个规则要从已激活的股则中的运行列表中被移除
not_stop_regex定义不会应用stop_regex的行 
timeout定义了这个规则真正生效的持续时间,指定为0则是不超时。
continue关键词,如果存在的话是告诉logsurfer继续执行这个规则,如果有匹配这个规则的行出现。(默认的话它会停止执行这个规则,一旦匹配的行出现)。

行为区域指定了当一个成功的匹配出现,应该如何去做。行为可以是以下中的一个:

     ignore - 忽略掉这一行
     exec - 执行一段程序
     pipe - 跟exec相似,但是log行被发送到标准输入

     open - 打开一个新的环境规则

     delete - 删除一个已经打开的环境
     report - 运行程序,用管道传输上下文数据
     rule - 创建新的规则

我们通过下面这个例子来简单的看下规则如何工作:

  'last message repeated' - - - 0    ignore
这个规则简单的忽略的所有的包含”last message repeated"的行.注意如果有很多log messages进入到文件中,这是一个很好的方法通过在logsurfer的配置文件中配置,从而忽略掉不想要的行。
0 0
原创粉丝点击