linux学习记录
分类:
2010-11-22 16:39:45
日志是使系统顺利运行的重要保障,它会告诉我们系统发生了什么和什么没有发生。然而,由于日志记录增加得太快了,铺天盖地的日志使系统管理员茫然无措,最终使日志成为浪费大量磁盘空间的垃圾。日志具有无可替代的价值,但不幸的是它们经常被忽略,因为系统管理员在并不充裕的时间里难以查看大量的信息。标准的日志功能不能自动过滤和检查日志记录,并提供系统管理员所需要的信息。因此,我们必须使用日志检查工具节省时间和避免漏掉重要信息。
现在有一些专门用于分析日志的工具,如swatch。swatch(The Simple WATCHer and filer)是Todd Atkins开发的用于实时监视日志的PERL程序。用户可以在swatch配置文件中设置关注的日志文件关键字,还可以设置在这些关键字出现在日志文件中时执行哪些命令,如向管理员发送电子邮件。Swatch利用指定的触发器监视日志记录,当日志记录符合触发器条件时,会按预先定义好的方式通知系统管理员。
Swatch的下载网址。
Swatch非常容易安装,它是一个PERL程序,无需编译。Swatch有一个很有用的安装脚本,将所有的库文件、手册页和PERL文件复制到相应目录下。安装完成后,只要创建一个配置文件,就可以运行程序了。
swatch的安装需要一些perl库的支持,安装前确信您的系统已经可以支持perl。另外,安装swatch时需要很多类如Time::HiRes, Date::Calc, Date::Format, File::Tail, Date::Parse之类的东东,这些都是Perl的可选模块,请用以下方法安装(有些模块在yum里面找不到)
#
perl -MCPAN -e "shell" |
之后安装swatch,进入解压后的swatch目录,运行如下命令:
# perl Makefile.PL # make # make test # make install # make realclean |
配置文件是swatch软件的重点。该配置文件告诉swatch需要监视什么日志,需要寻找什么触发器,和当触发时所要执行的动作。针对每个服务例如ftp,sendmail等等,你必须为每个您所关心的服务配置一个配置文件。
Swatch程序使用正向表达式(Regular Expressions)来发现感兴趣的目标行。一旦Swatch发现某一行匹配预设定的模式,就采取相应措施,包括响铃通知、终端显示通知、执行外部程序、发送电子邮件、管道通知、写消息给登录用户等。
watchfor
/[dD]enied│/DEN.*ED/ |
上面的脚本是Swatch配置文件一个部分的例子。首先Swatch在指定的日志文件中寻找包含设定单词"denied, Denied,或者其它以DEN开始或者以ED结束的单词的行。一旦搜索到某行包含三个搜索单词中的任何一个。Swatch程序立即向终端显示粗体行和响铃三下,然后发送电子邮件给运行swatch程序的用户(通常是root用户)警报所在行和执行/etc/call_paper程序,忽略sendmail, fax, unimportant stuff。在这个例子当中,搜索字符串sendmail,fax和unimportant stuff将被忽略,甚至他们符合预定搜索字符串中的一个。
缺省情况下,swatch认为swatchrc文件为~/.swatchrc,可以通过运行时指定参数来改变,如果未找到swatchrc文件,则使用缺省的配置
watchfor
= /.*/ |
swatch检测日志文件有两种方法:
从日志文件文件开头扫描,这样会扫描到日志文件中所有的关键字发生的异常,使用方法如下:
swatch -c /etc/swatch.conf -f /var/log/messages
从日志文件尾部开始扫描,适用于从日志监控工具运行之后开始监控日志文件,作为一直运行的服务来监视日志。使用方法如下:
swatch -c /etc/swatch.conf -t /var/log/messages
-c参数用于指定配置文件,-f指定要检测的文件,-t参数指定实时监视的日志文件,-r指定重起的时间。