logwatch的主要目的是生成更易于使用的日志摘要,并不是用来对日志进行实时的处理和监控的。正因为如此,logwatch通常被设定好时间和频率的自动定时任务来调度运行或者是有需要日志处理的时候从命令行里手动运行。一旦日志报告生成,logwatch可以通过电子邮件把这报告发送给您,您可以把它保存成文件或者直接显示在屏幕上。
Logwatch报告的详细程度和报告覆盖范围是完全可定制化的。Logwatch的日志处理引擎也是可扩展的,从某种意义上来说,如果您想在一个新的应用程序中使用logwatch功能的话,只需要为这个应用程序的日志文件编写一个日志处理脚本(使用Perl语言),然后挂接到logwatch上就行。
logwatch有一点不好的就是,在它生成的报告中没有详细的时间戳信息,而原来的日志文件中是存在的。您只能知道被记录下来的一段时间之内的特定事件,如果想要知道精确的时间点的信息,就不得不去查看原日志文件了。
安装Logwatch
在Debian系统或其派生的系统上:
#aptitudeinstalllogwatch
在基于RedHat的发布系统上:
#yuminstalllogwatch
配置Logwatch
安装时,主要的配置文件(logwatch.conf)被放到/etc/logwatch/conf目录中。此文件(默认是空的)定义的设置选项会覆盖掉定义在/usr/share/logwatch/default.conf/logwatch.conf文件中的系统级设置。
在命令行中,启动logwatch,如果不带参数的话,将会使用/etc/logwatch/conf/logwatch.conf文件中定义的选项。但,只要一指定参数,它们就会覆盖/etc/logwatch/conf/logwatch.conf文件中的任意默认/自定义设置。
这篇文章里,我们会编辑/etc/logwatch/conf/logwatch.conf文件来对一些默认的设置项做些个性化设置。
Detail=《Low,Med,High,或数字》
Detail配置指令控制着logwatch报告的详细程度。它可以是个正整数,也可以是分别代表着10、5和0数字的High、Med、Low几个选项。
MailTo=youremailaddress@yourdomain.com
如果您让把一份logwatch的报告邮件给您,就要使用MailTo这个配置指令。要把一份报告发送给多个用户,只需要把他们的邮件地址用空格格开,然后配置上去。但是,您需要在logwatch运行的服务器上配置好本地邮件传输代理(MTA)如,sendmail、Postfix等,这个配置指令项才能起作用。
Range=《Yesterday|Today|All》
Range配置指令定义了生成logwatch报告的时间段信息。这个指令通常可选的值是Yesterday、Today、All。当作用了Rang=All时,Archive=yes这个指令项也必须配置上,那么所有的已存档的日志文件(比如,/var/log/maillog、/var/log/maillog.X或/var/log/maillog.X.gz文件)都会被处理到。
除了这些通用的range值,您也可以使用复杂点的选择值,如下所示:
Range=2hoursagoforthathour
Range=-5days
Range=between-7daysand-3days
Range=sinceSeptember15,2014
Range=firstFridayinOctober
Range=2014/10/1512:50:15forthatsecond
要使用上面例子中自由形式的range,您需要从CPAN(注:Comprehensive Perl Archive Network)上下载安装Perl的Date::Manip模块。关于CPAN模块的安装说明,请请参阅此文http://www.linuxidc.com/Linux/2014-12/110704.htm。
Service=《service-name-1》
Service=《service-name-2》
。。。
Service选项指定想要监控的一个或多个服务。在/usr/share/logwatch/scripts/services目录下列出的服务都能被监控,它们已经涵盖了重要的系统服务(例如:pam,secure,iptables,syslogd等),也涵盖了一些像sudo、sshd、http、fail2ban、samba等主流的应用服务。如果您想添加新的服务到列表中,得编写一个相应的日志处理Perl脚本,并把它放在这个目录中。
如果这个选项要用来选择特定的服务话,您需要把/usr/share/logwatch/default.conf/logwatch.conf文件中的Service=All这一行注释掉。
Format=《text|html》
Format配置指令定义了一份logwatch报告的格式(比如text或者HTML)。
Output=《file|mail|stdout》
Output配置指令定义生成的logwatch报告要发送的目的地。它能被保存成文件(file),生成电子邮件(mail)或者是直接在屏幕上显示(stdout)。
用Logwatch来分析日志文件
要弄明白怎么使用logwatch来分析日志文件,可以参考下面的logwatch.conf文件例子:
Detail=High
MailTo=youremailaddress@yourdomain.com
Range=Today
Service=http
Service=postfix
Service=zz-disk_space
Format=html
Output=mail
使用这些设置,logwatch将会处理三个应用服务(http、postfix和zz-disk_space)当天产生的日志,生成一份非常详细的HTML格式报告,然后邮件给您。
如果您不想个性化/etc/logwatch/conf/logwatch.conf,您可以不修改此文件让其默认,然后在命令行里运行如下所示的命令。也会得到同样的输出。
#logwatch--detail10--mailtoyouremailaddress@yourdomain.com--rangetoday--servicehttp--servicepostfix--servicezz-disk_space--formathtml--outputmail
电子邮件发送的报告样子如图示:
这份电子邮件头部包含指向导航到报告细节的链接,在每个选中的服务细节,也会有返回顶部的链接。
接收人很少的情况下您可能会使用电子邮件发送报告这个选项。其它情况下,您可能会把让其生成为HTML格式的报告,这样每个想看这份报告的人都可以从网络共享里看到。只需要把上面例子中的配置做些修改就可以实现:
Detail=High
Range=Today
Service=http
Service=postfix
Service=zz-disk_space
Format=html
Output=file
Filename=/var/www/html/logs/dev1.html
同样的,也可以在命令行中运行如下的命令。
#logwatch--detail10--rangetoday--servicehttp--servicepostfix--servicezz-disk_space--formathtml--outputfile--filename/var/www/html/logs/dev1.html
最后,让我们使用cron来配置logwatch的定时执行任务。下面的例子中,将会在每个工作日的下午12:15分运行logwatch调度任务。
#crontab-e
1512**1,2,3,4,5/sbin/logwatch
上面就是Linux安装使用logwatch的方法介绍了,本文还介绍了Linux运用logwatch查看日志的实例,已经logwatch的详细配置,希望对你有所帮助。