Logwatch是一款专门监测Linux log文件(日志文件)的软件。安装以后稍微配置,就能每天将主机的log分析文件发送至指定的邮箱。能节省一个个手动查看日志的繁琐,为管理员节省时 间,节省精力。并且每天(甚至更频繁)都能准确地接收到日志。从而对服务器的安全情况有所掌握。

[root@localhost ~]# vi /usr/share/logwatch/default.conf/logwatch.conf

查找 MailTo =root ,将root修改为自己的Email地址,如 MailTo = user@domain.com

Detail = low细节度,将low修改为high或 10即最高(推荐)。

logwatch默认为每天执行一次(cron.daily)。

[root@localhost ~]# cd /etc/cron.daily/

[root@localhost cron.daily]#ls –l

总计 72

………………………………………………………………

lrwxrwxrwx 1 root root 39 09-10 14:29 0logwatch -> /usr/share/logwatch/scripts/logwatch.pl

………………………………………………………………

手动执行:# perl /usr/sbin/logwatch

也可以把上述路径放入crontab里面在特定时间里自动执行

手动执行logwatch的命令为:

#logwatch –print将昨天的日志信息简要的打印出来。如用户登录失败信息、SSH 登录信息、磁盘空间使用等

[root@localhost cron.daily]# logwatch --print

################### Logwatch 7.3 (03/24/06) ####################

Processing Initiated: Wed Sep 15 15:27:38 2010

Date Range Processed: yesterday( 2010-Sep-14 )Period is day.

Detail Level of Output: 0

Type of Output: unformatted

Logfiles for Host: localhost.localdomain

##################################################################

-------------------- Selinux Audit Begin ------------------------

Number of audit daemon stops: 1

---------------------- Selinux Audit End -------------------------

--------------------- Automount Begin ------------------------

**Unmatched Entries**

lookup_read_master: lookup(nisplus): couldn't locate nis+ table auto.master: 2 Time(s)

---------------------- Automount End -------------------------

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

login:

Authentication Failures:

root (): 1 Time(s)

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

--------------------- Connections (secure-log) Begin ------------------------

Failed logins:

User root:

(null): 1 Time(s)

Root logins on tty's: 2 Time(s).

---------------------- Connections (secure-log) End -------------------------

--------------------- Smartd Begin -----------------------

**Unmatched Entries**

Device: /dev/hdc, packet devices [this device CD/DVD] not SMART capable

Device /dev/sda: using '-d sat' for ATA disk behind SAT layer.

Device: /dev/sda, lacks SMART capability

Device: /dev/sda, to proceed anyway, use '-T permissive' Directive.

Device: /dev/hdc, packet devices [this device CD/DVD] not SMART capable

Device /dev/sda: using '-d sat' for ATA disk behind SAT layer.

Device: /dev/sda, lacks SMART capability

Device: /dev/sda, to proceed anyway, use '-

Device: /dev/sda, to proceed anyway, use '-T permissive' Directive.

---------------------- Smartd End -------------------------

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

SSHD Killed: 1 Time(s)

SSHD Started: 2 Time(s)

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

--------------------- Disk Space Begin ------------------------

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 5.7G 3.3G 2.2G 60% /

/dev/sda1 99M 17M 78M 18% /boot

/dev/hdc 3.8G 3.8G 0 100% /media/CentOS_5.4_Final

---------------------- Disk Space End -------------------------

###################### Logwatch End #########################

这样查看似乎很长,可以单独查看某个服务的日志记录情况;

[root@localhost ~]# logwatch --service sshd --print

################### Logwatch 7.3 (03/24/06) ####################

Processing Initiated: Wed Sep 15 15:36:15 2010

Date Range Processed: yesterday

( 2010-Sep-14 )

Period is day.

Detail Level of Output: 0

Type of Output: unformatted

Logfiles for Host: localhost.localdomain

##################################################################

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

SSHD Killed: 1 Time(s)

SSHD Started: 2 Time(s)

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

###################### Logwatch End #########################

# logwatch –help查看logwatch的帮助信息,可以对配置文件进行设置。

 

默认有 70 多种 Log 的配置信息. 如果要对特殊 Log 做监控,基本的做法:

1) 创建一个日志文件组。指定自己的 Log 文件,可以是一个,可以是多个

2) 创建一个新的服务。指明这个服务的名字, 指明 Log 文件来源(来自上一步的定义)

3) 创建一个过滤脚本

原理:LogWatch 需要知道针对哪一个服务, 从这个服务中得到需要处理的 Log 文件信息,将此文件送给过滤脚本处理,处理后把处理后格式化的信息展现出来

让系统定时给指定邮箱发送邮件:
# vi /usr/local/sbin/logwatch.sh
#!/usr/bin/perl
perl /usr/share/logwatch/scripts/logwatch.pl
#chmod u+x /usr/local/sbin/logwatch.sh
#crontab -e
加入:0 0 * * * /usr/local/sbin/logwatch.sh > /dev/null 2>&1
这样系统每天的0点就会给指定邮箱系统发送系统日志……

LogWatch 报告的是 Log 信息的历史数据,如果要实时监控 Log,可以考虑用 Swatch。不过需要对正则表达式有很好的了解。