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.规则
match_regex not_match_regex stop_regex not_stop_regex timeout [continue] action...
match_regex是一个规则的表达式定义,这个表达式定义与规则相匹配。
行为区域指定了当一个成功的匹配出现,应该如何去做。行为可以是以下中的一个:
ignore - 忽略掉这一行
exec - 执行一段程序
pipe - 跟exec相似,但是log行被发送到标准输入
open - 打开一个新的环境规则
delete - 删除一个已经打开的环境
report - 运行程序,用管道传输上下文数据
rule - 创建新的规则
我们通过下面这个例子来简单的看下规则如何工作:
'last message repeated' - - - 0
ignore
这个规则简单的忽略的所有的包含”last message repeated"的行.注意如果有很多log messages进入到文件中,这是一个很好的方法通过在logsurfer的配置文件中配置,从而忽略掉不想要的行。