Linux操作系统和许多应用程序会创建特殊的文件来记录它们的运行风波,这种文件一般被叫做“日志”。当要了解操作系统或第三方应用程序的行为或进行故障排查时,这种系统日志或特定的应用程序日志文件是必不可少的的工具。并且,日志文件并没有您们所谓的“清晰”或“容易”这种程度的可读性。手工剖析原始的日志文件简直是浪费时间,而且单调无趣。出于这个缘由,对于系统管理员来说,发觉任何一款能把原始的日志文件转换成更人性化的记录摘要的工具linux日志文件系统,将会获益无穷。
logwatch是一款用Perl语言编撰的开源日志解析剖析器。它能对原始的日志文件进行解析并转换成结构化格式的文档,也能依照您的使用情况和需求来订制报告。logwatch的主要目的是生成更便于使用的日志摘要,并不是拿来对日志进行实时的处理和监控的。正由于这般,logwatch一般被设定好时间和频度的手动定时任务来调度运行或则是有须要日志处理的时侯从命令行里自动运行。一旦日志报告生成,logwatch可以通过电子电邮把这报告发送给您,您可以把它保存成文件或则直接显示在屏幕上。
Logwatch报告的详尽程度和报告覆盖范围是完全可多样化的。Logwatch的日志处理引擎也是可扩充的,从某种意义上来说,假若您想在一个新的应用程序中使用logwatch功能的话,只须要为这个应用程序的日志文件编撰一个日志处理脚本(使用Perl语言),之后挂接到logwatch上就行。
logwatch有一点不好的就是,在它生成的报告中没有详尽的时间戳信息,而原先的日志文件中是存在的。您只能晓得被记录出来的一段时间之内的特定风波,假如想要晓得精确的时间点的信息,就不得不去查看原日志文件了。
安装Logwatch
在Debian系统或其派生的系统上:
# aptitude install logwatch
在基于RedHat的发布系统上:
# yum install logwatch
配置Logwatch
安装时,主要的配置文件(logwatch.conf)被放在/etc/logwatch/conf目录中。此文件(默认是空的)定义的设置选项会覆盖掉定义在/usr/share/logwatch/default.conf/logwatch.conf文件中的系统级设置。
在命令行中,启动logwatch,倘若不带参数的话,将会使用/etc/logwatch/conf/logwatch.conf文件中定义的选项。但,只要一指定参数linux日志文件系统,它们都会覆盖/etc/logwatch/conf/logwatch.conf文件中的任意默认/自定义设置。
这篇文章里,我们会编辑/etc/logwatch/conf/logwatch.conf文件来对一些默认的设置项做些个性化设置。
Detail =
“Detail”配置指令控制着logwatch报告的详尽程度。它可以是个正整数,也可以是分别代表着10、5和0数字的High、Med、Low几个选项。
MailTo = youremailaddress@yourdomain.com
倘若您让把一份logwatch的报告电邮给您,就要使用“MailTo”这个配置指令。要把一份报告发送给多个用户,只须要把她们的电邮地址用空格格开,之后配置起来。并且,您须要在logwatch运行的服务器上配置好本地电邮传输代理(MTA)如linux操作系统教程,sendmail、Postfix等,这个配置指令项才会起作用。
Range =
"Range"配置指令定义了生成logwatch报告的时间段信息。这个指令一般可选的值是Yesterday、Today、All。当作用了“Rang=All”时,“Archive=yes”这个指令项也必须配置上,这么所有的已存档的日志文件(例如,/var/log/maillog、/var/log/maillog.X或/var/log/maillog.X.gz文件)就会被处理到。
不仅这种通用的range值,您也可以使用复杂点的选择值,如下所示:
要使用前面事例中自由方式的range,您须要从CPAN(注:ComprehensivePerlArchiveNetwork)上下载安装Perl的Date::Manip模块。关于CPAN模块的安装说明,请请参阅此帖。
Service = Service = . . .
“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 =
“Format”配置指令定义了一份logwatch报告的格式(例如text或则HTML)。
Output =
"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 --detail 10 --mailto youremailaddress@yourdomain.com --range today --service http --service postfix --service zz-disk_space --format html --output mail
电子短信发送的报告样子如图示:
这份电子电邮腹部包含指向导航到报告细节的链接,在每位选中的服务细节,也会有“返回底部”的链接。
接收人极少的情况下您可能会使用电子短信发送报告这个选项。其它情况下,您可能会把让其生成为HTML格式的报告linux deepin,这样每位想看这份报告的人都可以从网路共享里听到。只须要把里面事例中的配置做些更改就可以实现:
Detail = High Range = Today Service = http Service = postfix Service = zz-disk_space Format = html Output = file Filename = /var/www/html/logs/dev1.html
同样的,也可以在命令行中运行如下的命令。
# logwatch --detail 10 --range today --service http --service postfix --service zz-disk_space --format html --output file --filename /var/www/html/logs/dev1.html
最后,让我们使用cron来配置logwatch的定时执行任务。下边的事例中,将会在每位工作日的晚上12:15分运行logwatch调度任务。
# crontab -e
15 12 * * 1,2,3,4,5 /sbin/logwatch