如何在VPS安装和使用Logwatch日志分析器和记者

继我们以前在Linux系统加固,安全监控和电子邮件警报文章的脚步,这DigitalOcean本文中,我们将谈论Logwatch:一个非常强大的日志分析器和分析仪,它可以使任何专用的系统管理员的生活稍微容易解决的时候应用程序相关的任务和问题。

介绍


应用程序创建所谓的“日志文件”以跟踪在任何给定时间发生的活动。 这些文件远不是简单的文本输出,可能非常复杂,特别是如果被管理的服务器是繁忙的。

当时间来参考日志文件(例如,在失败,数据丢失等),使用所有可用的帮助变得至关重要。 能够快速理解(解析),他们可以告诉有关过去的事件, 分析究竟是什么发生了然后成为想出一个解决方案异常重要。

继我们以前在Linux系统加固,安全监控和电子邮件警报文章的脚步,这DigitalOcean本文中,我们将谈论Logwatch:一个非常强大的日志分析器和分析仪,它可以使任何专用的系统管理员的生活稍微容易解决的时候应用相关任务和问题。

日志文件


就像来自Startrek的黑盒飞船一样,为了保持系统(即服务器)运行,管理员甚至今天依赖于日志。 笑话之外,这些应用程序生成的文件回溯并了解过去发生的事情[在给定时间对于全部/部分数据恢复(即由而言起着决定性的作用事务日志 ),性能或战略相关分析(例如,从服务器日志内容)或修订对未来的(例如,从访问日志)。

简单地说,日志文件将包括在给定时间范围内发生的动作和事件。

良好的日志文件应尽可能详细,以帮助负责维护系统的管理员找到某种用途所需的确切信息。 因为这个原因,日志文件通常不是简洁的,它们包含重复和负载的(大多数)冗余条目的负载,需要彻底的分析和过滤以对人类有意义。

这就是Logwatch,一个专为这项工作设计的计算机应用程序的地方。

输入Logwatch


日志管理是一个主要由搜索,日志轮换/保留和报告组成的区域。 Logwatch是一个应用程序,通过每天分析和报告您机器上发生的活动的简短摘要,帮助简单的日志管理。

由Logwatch创建的报表是由你的系统,它可以一起通过修改其相对简单的配置文件被配置为包括你喜欢的或全部的上运行的服务 (如应用程序)进行分类。 此外,Logwatch允许为特定需求创建自定义分析脚本。

安装Logwatch


请注意:Logwatch是不应该与当前服务或工作负载干扰无害应用程序。 但是,和往常一样,建议您先在新系统上尝试,并确保进行备份。

在CentOS / RHEL


在基于RHEL的系统(例如CentOS)上安装Logwatch非常简单。 由于它是由各种Perl脚本组成的应用程序,因此需要某些相关的依赖关系。 因为我们将要使用yum包管理器,这将是自动的照顾。 除非您已经安装了mailx,Logwatch还会在此过程中为您下载。

要在CentOS / RHEL上安装Logwatch,请运行以下命令:

$ yum install -y logwatch

在Ubuntu / Debian


除了包管理器(aptitude v。yum)的区别之外,基于Debian的系统(例如Ubuntu)的Logwatch非常类似于上面解释的过程。

要在Ubuntu / Debian上安装Logwatch,请运行以下命令:

$ aptitude install -y logwatch

配置Logwatch


虽然它的设置可以在每次手动运行期间覆盖,一般来说,您将希望让Logwatch每天运行,使用通用配置。

设置Logwatch的常用配置


Logwatch的默认配置文件位于:

/usr/share/logwatch/default.conf/logwatch.conf

让我们使用nano文本编辑器打开此文件,以修改其内容:

$ nano /usr/share/logwatch/default.conf/logwatch.conf

运行上述命令后,无论是自动还是手动,应用程序每次运行时都会遇到一个长列表。

为了开始使用它,我们将需要对这些默认值进行一些更改。

请记住,在将来,您可能希望返回修改此处定义的某些设置。 由Logwatch分析的所有服务 (应用)都被列在该文件中,如以上所解释(配置#5)。 当你安装或从虚拟服务器中删除应用程序,您可以继续在这里更改设置来接收所有的人或他们中的一些报告(见下文*)。

我们需要设置的重要选项:

请注意:您需要使用您的箭头键去向上或向下的线,当你将作出对文件进行以下更改。 一旦你完成通过改变(项目1 - 6)去,你将需要按CTRL + X,然后确认Y保存并关闭。 下一次的更改将进入自动生效logwatch运行。

1.发送每日摘要(报告)的电子邮件地址:

MailTo = root

替换root您的电子邮件地址。

例如: MailTo = sysadmin@mydomain.com

2.电子邮件地址这些报告来源:

MailFrom = Logwatch

你可能要更换Logwatch用自己的一次。

例如: MailFrom = sysadmin@mydomain.com

3.设置为报告的范围

Range = yesterday

你收到的所有报告(所有可用的分内), 今天 (就在今天)或昨日 (就在昨天)的选项。

例如: Range = Today

4.设置报告的详细信息:

Detail = Low

您可以在此处修改报表的详细信息。 选项包括:

例如: Detail = Medium

5.设置要分析的服务(应用程序):

默认情况下,Logwatch涵盖了非常广泛的服务。 如果你想看到的完整列表,就可以查询该文件的内容scripts/services位于/usr/share/logwatch/

例如: ls -l /usr/share/logwatch/scripts/services

Service = All

您可以选择接收所有服务或特定服务的报告。

对于所有的服务,保持行: Service = All

如果您希望收到针对特定的人报告,修改它类似于下面的示例中,列出了新线的每个服务(如Service = [name] )。

例:

Service = sendmail
Service = http
Service = identd
Service = sshd2
Service = sudo
..

6.停用每日报表:

# DailyRepoty = No

如果你希望有日常repots产生的,应该取消注释此行。

例如: DailyReport = No代替# DailyReport = No

就这样! 做了这些改变后,您会收到自动根据日志文件从服务器每日报告。

要了解更多关于Logwatch,并创建自定义的服务,收到报告,您可以通过点击访问它的完整文档在这里

手动运行Logwatch


应该提到,您可以选择在需要时通过命令行手动运行Logwatch。

这里是可用的选项[从文档]:

logwatch  [--detail  level  ] [--logfile log-file-group ] [--service service-name ] [--print]
   [--mailto address ] [--archives] [--range range  ]  [--debug  level  ]  [--save  file-name  ]
   [--logdir  directory ] [--hostname hostname ] [--splithosts] [--multiemail] [--output output-
   type ] [--numeric] [--no-oldfiles-log] [--version] [--help|--usage]

除非指定了一个选项,否则它将从配置文件中读取。

例:

$ logwatch --detail Low --mailto email@address --service http --range today

以下是Logwatch报告的外观:

################### Logwatch 7.3.6 (05/19/07) ####################
        Processing Initiated: Wed Nov 15 15:07:00 2013
        Date Range Processed: today
                              ( 2013-Nov-15 )
                              Period is day.
      Detail Level of Output: 0
              Type of Output: unformatted
           Logfiles for Host: host_name
                 ##################################################################

 --------------------- Postfix Begin ------------------------

    3.453K  Bytes accepted                             3,536
    3.453K  Bytes delivered                            3,536
 ========   ================================================

        3   Accepted                                 100.00%
 --------   ------------------------------------------------
        3   Total                                    100.00%
 ========   ================================================

        3   Removed from queue
        2   Delivered
        1   Sent via SMTP

        1   Connection failure (outbound)

        1   Postfix start


 ---------------------- Postfix End -------------------------


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

 New Users:
    apache (48)

 New Groups:
    apache (48)


 **Unmatched Entries**
    groupadd: group added to /etc/group: name=apache, GID=48: 1 Time(s)
    groupadd: group added to /etc/gshadow: name=apache: 1 Time(s)

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

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


 SSHD Started: 2 Time(s)

 Users logging in through sshd:
    root:
       ip_addr (ip_addr): 1 time

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

 --------------------- yum Begin ------------------------


 Packages Installed:
    apr-1.3.9-5.el6_2.x86_64
    apr-util-1.3.9-3.el6_0.1.x86_64
    perl-YAML-Syck-1.07-4.el6.x86_64
    4:perl-5.10.1-131.el6_4.x86_64
    mailx-12.4-6.el6.x86_64
    1:perl-Pod-Simple-3.13-131.el6_4.x86_64
    1:perl-Pod-Escapes-1.04-131.el6_4.x86_64
    3:perl-version-0.77-131.el6_4.x86_64
    httpd-2.2.15-29.el6.centos.x86_64
    4:perl-libs-5.10.1-131.el6_4.x86_64
    mailcap-2.1.31-2.el6.noarch
    perl-Date-Manip-6.24-1.el6.noarch
    1:perl-Module-Pluggable-3.90-131.el6_4.x86_64
    httpd-tools-2.2.15-29.el6.centos.x86_64
    apr-util-ldap-1.3.9-3.el6_0.1.x86_64
    logwatch-7.3.6-49.el6.noarch

 ---------------------- yum End -------------------------
:提交OS Tezer