当前位置: 首页 > 科技观察

在Linux系统中使用logwatch监控日志文件_0

时间:2023-03-14 14:32:58 科技观察

Linux操作系统和很多应用程序都会创建专门的文件来记录它们的运行事件,这些文件通常被称为“日志”。在了解操作系统或第三方应用程序的行为或进行故障排除时,这些系统日志或特定应用程序日志文件是必不可少的工具。但是,日志文件的可读性不如您所说的“清晰”或“简单”。手动分析原始日志文件既浪费时间又乏味。出于这个原因,系统管理员将从发现任何将原始日志文件转换为更人性化的日志摘要的工具中受益匪浅。logwatch是一个用Perl语言编写的开源日志分析分析器。它可以解析原始日志文件并将其转换为结构化文档,还可以根据您的使用情况和需要定制报告。logwatch的主要目的是为了生成更容易使用的日志摘要,而不是为了对日志进行实时处理和监控。正因为如此,logwatch通常被安排为一个自动计划任务,以设定的时间和频率运行,或者在需要日志处理时从命令行手动运行。生成日志报告后,logwatch可以将报告通过电子邮件发送给您,将其保存到文件或直接在屏幕上显示。Logwatch报告的详细程度和报告覆盖范围是完全可定制的。Logwatch的日志处理引擎也是可扩展的。从某种意义上说,如果你想在一个新的应用中使用logwatch功能,只需要写一个日志处理脚本(使用Perl语言),然后挂接到logwatch上就行了。logwatch的一个缺点是它生成的报告中没有详细的时间戳信息,但它存在于原始日志文件中。您只能知道记录的一段时间内的特定事件。如果想知道准确时间点的信息,就得查看原始日志文件。在Debian系统或衍生系统上安装Logwatch:#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=“Detail”配置指令控制logwatch报告的详细程度。可以是正整数,也可以是High、Med、Low,分别代表数字10、5、0。MailTo=youremailaddress@yourdomain.com如果您希望将logwatch报告通过电子邮件发送给您,请使用“MailTo”配置指令。要向多个用户发送报告,只需将他们的电子邮件地址用空格分隔并进行配置即可。但是需要在运行logwatch的服务器上配置sendmail、Postfix等本地邮件传输代理(MTA),这个配置命令才能生效。Range=“Range”配置指令定义了生成logwatch报告的时间段信息。该指令通常的可选值是Yesterday、Today、All。当使用“Rang=All”时,还必须配置命令“Archive=yes”,然后所有归档的日志文件(例如,/var/log/maillog、/var/log/maillog.X或/var/log/maillog.X.gz文件)将被处理。除了这些通用范围值之外,您还可以使用复杂点的选择值,如下所示:Range="2hoursagoforthathour"Range="-5days"Range="between-7daysand-3days"Range="sinceSeptember15,2014"Range="FirstFridayinOctober"Range="2014/10/1512:50:15forthesecond"要在上面的例子中使用自由格式的范围,你需要从CPAN获取范围(注:Comprehensive Perl Archive Network)下载并安装Perl的Date::Manip模块。有关CPAN模块的安装说明,请参阅这篇文章。服务=<服务名称-1>服务=<服务名称-2>。..“服务”选项指定您要监视的一项或多项服务。/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报告的格式(例如文本或HTML)。Output=“Output”配置指令定义生成的logwatch报告发送到哪里。它可以保存为文件(file),生成为电子邮件(mail)或直接显示在屏幕上(stdout)。使用Logwatch分析日志文件要了解如何使用logwatch分析日志文件,可以参考以下logwatch.conf文件示例:=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=HighRange=TodayService=httpService=postfixService=zz-disk_spaceFormat=htmlOutput=fileFilename=/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的定时执行任务。在下面的示例中,logwatch调度程序任务将在每个工作日的中午12:15运行。#crontab-e1512**1,2,3,4,5/sbin/logwatch希望这有帮助。欢迎来到社区发表评论或分享您的想法和经验!via:http://xmodulo.com/monitor-log-file-linux-logwatch.html作者:GabrielCánepa译者:runningwater校对:wxy