应用程序创建所谓的“日志文件”来跟踪在任何给定时间发生的活动。这些文件远非简单的文本输出,浏览起来可能非常复杂,特别是当所管理的服务器很繁忙时。
当需要参考日志文件时(例如,在发生故障、数据丢失等情况下),利用所有可用的帮助变得至关重要。能够快速理解(解析)他们可以讲述的关于过去的事件和分析那么究竟发生了什么对于提出解决方案变得异常重要。
沿着我们之前关于 Linux 系统强化、安全监控和电子邮件警报的文章的脚步,在这篇 DigitalOcean 文章中,我们将讨论Logwatch:一个非常强大的日志解析器和分析器,可以使任何专门的系统管理员在处理应用程序相关的任务和问题时变得更加轻松。
就像《星际迷航》中的星舰黑匣子一样,为了保持系统(即服务器)运行,即使在今天,管理员仍然依赖日志。抛开笑话不谈,这些应用程序生成的文件在跟踪和理解过去[在给定时间]发生的事情方面发挥着决定性作用,以实现完整/部分数据恢复(即从交易日志)、绩效或策略相关分析(例如来自服务器日志)或未来的修正(例如来自访问日志)。
简而言之,日志文件将包含给定时间范围内发生的操作和事件。
一个好的日志文件应该尽可能详细,以帮助负责维护系统的管理员找到特定目的所需的确切信息。正是由于这个原因,日志文件通常并不简洁,它们包含大量的重复项和大量(大部分)冗余条目,这些条目需要彻底的分析和过滤才能对人类有意义。
这就是 Logwatch(专为这项工作设计的计算机应用程序)发挥作用的地方。
日志管理是一个主要由搜索、日志轮换/保留和报告组成的领域。 Logwatch 是一款应用程序,可通过每日分析和报告计算机上发生的活动的简短摘要来帮助进行简单的日志管理。
Logwatch 创建的报告按以下分类services(即应用程序)在您的系统上运行,可以通过修改其相对简单的配置文件将其配置为由您喜欢的应用程序或所有应用程序组成。此外,Logwatch 允许创建满足特定需求的自定义分析脚本。
请注意:Logwatch 是一个无害的应用程序,不会干扰您当前的服务或工作负载。但是,与往常一样,建议您首先在新系统上尝试并确保进行备份。
在基于 RHEL 的系统(例如 CentOS)上安装 Logwatch 非常简单。由于它是一个由各种Perl脚本组成的应用程序,因此需要一定的相关依赖。由于我们将要使用yum包管理器,这将被自动处理。除非您已经安装了 mailx,否则 Logwatch 也会在此过程中为您下载它。
要在 CentOS / RHEL 上安装 Logwatch,请运行以下命令:
$ yum install -y logwatch
除了包管理器的差异(aptitude 与 yum)之外,为基于 Debian 的系统(例如 Ubuntu)获取 Logwatch 与上面解释的过程非常相似。
要在 Ubuntu / Debian 上安装 Logwatch,请运行以下命令:
$ aptitude install -y logwatch
尽管可以在每次运行期间手动覆盖其设置,但一般来说,您会希望使用通用配置每天运行 Logwatch。
Logwatch 的默认配置文件位于:
/usr/share/logwatch/default.conf/logwatch.conf
让我们使用 nano 文本编辑器打开该文件以修改其内容:
$ nano /usr/share/logwatch/default.conf/logwatch.conf
运行上面的命令后,您将看到应用程序每次运行时使用的一长串变量,无论是自动还是手动。
为了开始使用它,我们需要对这些默认值进行一些更改。
请记住,将来您可能想回来修改此处定义的某些设置。全部servicesLogwatch 分析的(应用程序)列在此文件中,如上所述(配置 #5)。当您从虚拟服务器安装或删除应用程序时,您可以继续收到有关以下方面的报告:all其中或some通过更改此处的设置(见下文*)。
我们需要设置的重要选项:
请注意:当您对文档进行以下更改时,您将需要使用箭头键向上或向下移动行。完成更改(第 1 - 6 项)后,您需要按CTRL+X然后确认Y保存并关闭。更改将在下次自动生效logwatch
runs.
1. 每日摘要(报告)发送至的电子邮件地址:
MailTo = root
Replace root
与您的电子邮件地址。
Example: MailTo = sysadmin@mydomain.com
2. 电子邮件地址from这些报告的来源:
MailFrom = Logwatch
您可能希望更换Logwatch
再次与你自己的。
Example: MailFrom = sysadmin@mydomain.com
3. 设置range对于报告:
Range = yesterday
您可以选择接收以下报告:All(从一开始就全部可用),Today(就在今天)或昨天(就在昨天)。
Example: Range = Today
4. 设置报告的详细信息:
Detail = Low
您可以在此处修改报告的详细信息。选项有:Low, Medium and High.
Example: Detail = Medium
5. 设置要分析的服务(应用程序):
默认情况下,Logwatch 涵盖非常广泛的服务。如果您想查看完整列表,可以查询文件内容scripts/services
位于/usr/share/logwatch/
.
Example: ls -l /usr/share/logwatch/scripts/services
Service = All
您可以选择接收所有服务或某些特定服务的报告。
对于所有服务,请将该行保留为: Service = All
如果您希望接收特定服务的报告,请对其进行类似于以下示例的修改,在新行中列出每个服务(例如Service = [name]
).
Example:
Service = sendmail
Service = http
Service = identd
Service = sshd2
Service = sudo
..
6. 禁用每日报告:
# DailyReport = No
如果你这样做not如果希望生成每日报告,您应该取消注释此行。
Example: DailyReport = No
代替# DailyReport = No
就是这样!进行这些更改后,您将收到基于服务器日志文件的每日报告自动地.
要了解有关 Logwatch 以及创建自定义服务以接收报告的更多信息,您可以通过单击访问其完整文档here.
应该提到的是,您可以选择在需要时通过命令行手动运行 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]
除非您指定选项,否则将从配置文件中读取该选项。
Example:
$ 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 -------------------------
提交者:https://twitter.com/ostezer”>操作系统特泽尔