一,介绍:

如果要想迅速的得到 Linux 环境中的日志报告信息, Logwatch 是一个很好的工具。一般的 Linux 系统中可能都默认安装了这个工具.几乎不需要额外的配置就可以简单的用起来。

# logwatch --print

这条命令将会把昨天的日志信息简要的打印出来. 比如用户登录失败信息、SSH 登录信息、磁盘空间使用等。

单独查看某个服务,比如 SSH 登录信息:

# logwatch --service sshd --print

这条命令可以查看使用说明:

# logwatch --help

最新版本的 LogWatch 默认有 70 多种 Log 的配置信息. 如果要对自己的特殊 Log 做监控, 定制也是比较容易的。简单记录一下:

基本的做法:

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

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

3) 创建一个过滤脚本。

整个原理就是,LogWatch 首先要知道针对哪一个服务, 从这个服务中得到需要处理的 Log 文件信息, 然后这个文件送给过滤脚本处理, 之后把处理后格式化的信息展现出来。出于时间关系,例子就不给了。

但是每天ssh到服务器上使用太不方便,还好logwatch提供了mail功能:

#nano /etc/logwatch/conf/logwatch.conf

修改下面的root为你自己的邮件地址:

MailTo = root(其实可以加自己的邮箱,中间逗号隔开)

同时,因为我们需要了解服务器的详细信息,所以,修改下面的:

Detail = 是细节度,推荐 10 ,即最高

安全:

LogWatch 旧版本 2.11 有个著名的漏洞:临时目录建立处理中存在竞争条件漏洞。这里有溢出代码:Root Compromise through LogWatch

其他: LogWatch 报告的是 Log 信息的历史数据,如果要实时监控 Log,可以考虑用 Swatch。

二,安装配置

Logwatch能够对Linux 环境系统Log报告进行分析,自动发送电子邮件给系统管理员,而且能够根据用户的需求进行定制。
1、下载最新版
Logwatch的官方网站地址:http://www.logwatch.org/
下载地址:wget ftp://ftp.kaybee.org/pub/redhat/RPMS/noarch/logwatch-6.0.2-2.noarch.rpm

2、查看是否安装软件包
# rpm -q logwatch
logwatch-4.3.1-2
# rpm -q perl
perl-5.8.0-88
3、设置
logwatch日志分析软件需要借助系统自带的MTA发邮件,所以系统需要安装比如sendmail,postfix等邮件程序,只要安装完sendmail,使用默认设置就可以发邮件了。
4、配置文件:
/etc/log.d/logwatch.conf
修改以下内容为这样:
MailTo = root@a.com 管理员的邮箱地址
Detail = High 是细节度,推荐 10(或high) ,即日志详细程度为高

5、重启sendmail
# /etc/init.d/sendmail start

6、执行logwatch:
自动执行:
logwatch默认为每天执行一次(cron.daily)。
手动执行:
# perl /usr/sbin/logwatch

#perl /etc/log.d/scripts/logwatch.pl

7、查看邮件日志
/var/log/mail/log