用Logwatch分析中央日志主机的日志

| 暂无评论 | 暂无引用通告

-->   logwatch是一个日志总结工具,在Redhat Linux的平台上,它被默认安装。在/etc/cron.daily目录下有一个指向logwatch的链接。每天系统都会执行一次脚本,分析日志文件,对前一天的系统状况进行统计,并将统计报告以邮件形式发送给root。以下就是一封来自logwatch的日志报告。

From root@localhost.localdomain  Fri Feb  1 04:02:06 2008
Date: Fri, 1 Feb 2008 04:02:05 +0800
From: root <root@localhost.localdomain>
To: root@localhost.localdomain
Subject: LogWatch for supersun


 ################### LogWatch 5.2.2 (06/23/04) ####################
       Processing Initiated: Fri Feb  1 04:02:03 2008
       Date Range Processed: yesterday
     Detail Level of Output: 0
          Logfiles for Host: supersun
 ################################################################

 --------------------- ftpd-xferlog Begin ------------------------

TOTAL KB IN: 3771419KB (3771MB)

Incoming Anonymous FTP Transfers:
   192.168.0.17 -> /pub/????????@yourenergy/????14_PIANO CONCERTO NO.21.mp3
 ---------------------- ftpd-xferlog End -------------------------


 --------------------- pam_unix Begin ------------------------

crond:
   Unknown Entries:
      session closed for user root: 26 Time(s)
      session opened for user root by (uid=0): 26 Time(s)

su:
   Sessions Opened:
      (uid=0) -> oracle: 1 Time(s)


 ---------------------- pam_unix End -------------------------


 --------------------- sendmail Begin ------------------------



Bytes Transferred: 25147
Messages Sent:     4
Total recipients:  4
 ---------------------- sendmail End -------------------------


 --------------------- SSHD Begin ------------------------


Users logging in through sshd:
   root:
      sun (192.168.0.17): 10 times
      192.168.0.7: 1 time

 ---------------------- SSHD End -------------------------



------------------ Disk Space --------------------

/dev/hda5              15G  7.4G  6.4G  54% /
/dev/hda2             190M   11M  170M   7% /boot
/dev/hda6              35G  9.7G   23G  30% /home
/dev/hda1              20G   16G  3.1G  84% /opt


 ###################### LogWatch End #########################


  如果不带任何参数运行logwatch,logwatch会以配置文件中的信息运行程序。我们也可以通过在命令中设置参数来覆盖配置文件中的参数。

  常用的选项有:

--detail <level>: 报告的详细程序,可用的值为:High, Med, Low or 0-10;
--logfile <name>: 日志文件文件名,如:messages、auth.log等;
--service <name>: 服务名,各个服务有对应的解析脚本,这些脚本位与以下目录中(/usr/share/logwatch/scripts/services/或/etc/log.d/scripts/services);
--print: 打印打标准输出;
--mailto <addr>: 收件人地址;
--archives: 使用压缩的文件或轮转的文件,如:messages.1、messages.1.gz;
--save <filename>: 保存到文件 <filename>.
--range <range>: 日期范围:Yesterday、Today、All;
--debug <level>: 试调级别: High、Med、Low ;
--splithosts: 为每个主机创建一份报告;
--multiemail: 将报告发送给多个邮件地址;

  在新版本的logwatch中有一个选项--splithosts可以为每台主机生成一份报告,这一点对于分析中央日志主机的日志很方便。
  因此,我首先配置中央日志主机,然后更改logwatch的配置文件logwatch.conf,将LogDir的值定到日志文件目录(这改变了日志的存放路径),并在/etc/cron.daily目录下创建一脚本logparse.sh,内容如下:

#!/bin/sh
DATE=`date --date=yesterday`
SUBJECT=${DATE}"日志"
/usr/sbin/logwatch --print --splithosts |/usr/local/bin/notify_via_smtp -s "$SUBJECT" -t logparse@supersun.biz

  这里的notify_via_smtp是一个发送邮件的脚本(注意下划线部分是根据实际情况变动的):

#!/usr/bin/perl -w
use strict;
use Email::Send;
use Getopt::Std;



my %opts;
getopt('ts',\%opts);
my $subject=$opts{s};
my $receiver=$opts{t};
my $sender='logwatch@supersun.biz';
my $string=join '',<>;

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime;

$year+=1900;
my @month=qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
my @week=qw(Sun Mon Tue Wed Thu Fri Sat);


my $time=$week[$wday].",".$mday.' '.$month[$mon].' '.$year.' '.$hour.':'.$min.':'.$sec.' +0800';
my $msg=<< "__MESSAGE__";
To: $receiver
From: $sender
Subject: $subject
Date: $time

  $string
__MESSAGE__
my $sendit= Email::Send->new({mailer => 'SMTP'});
$sendit->mailer_args([Host => 'mail.supersun.biz']);
$sendit->send($msg);



暂无引用通告

发送引用通告网址: http://supersun.info/mt/mt-tb.cgi/850
如果您想引用这篇日记到您的Blog,请复制上面的链接,放置到您发表文章时的相应界面中。

发表评论

最新资源

  • IMG_1437.JPG
  • line.png
  • bar.png
  • perl_calander.jpg

关于此日记

此日记由 supersun 发表于 2008年3月 5日 09:49

此Blog上的上一篇日记HP-UX系统的目录结构

此Blog上的下一篇日记简单的iptables定制脚本

首页归档页可以看到最新的日记和所有日记。