介绍
应用程序创建所谓的日志文件
,以跟踪任何时间发生的活动. 这些文件,远非简单的文本输出,可以非常复杂,特别是如果正在管理的服务器是一个繁忙的。
当时间到来时,参考日志文件(例如在失败,数据丢失等情况下),利用所有可用的帮助变得至关重要。
在我们之前关于 Linux 系统硬化、安全监控和电子邮件警报的文章中,在这个 DigitalOcean 文章中,我们将讨论 Logwatch :一个非常强大的日志分析器和分析器,在处理应用程序相关的任务和问题时可以让任何专门的系统管理员的生活变得稍微容易一点。
档案记录
就像Startrek的星舰的黑匣子一样,管理员即使在今天也依赖于日志,以保持系统(即服务器)的运行,这些应用程序生成的文件在追踪和理解过去发生的事情方面发挥着决定性作用,以便完全或部分地恢复数据(即从 交易日志,性能或策略相关的分析(例如从 服务器日志)或未来的更改(例如从访问日志)。
简单地说,日志文件将由在特定时间范围内发生的行动和事件组成。
一个好的日志文件应该尽可能详细,以帮助管理员,谁有维护系统的责任,找到一个特定目的所需的准确信息。
这就是Logwatch,一个为这项工作而设计的计算机应用程序,进入游戏的地方。
进入Logwatch
日志管理是一个主要由搜索、日志旋转/保留和报告构成的领域,Logwatch是一个帮助简单的日志管理的应用程序,通过每天分析和报告在您的机器上发生的活动的简短数据。
Logwatch 创建的报告被分类为 services (即应用程序) 运行在您的系统上,可通过修改其相对简单的配置文件来配置为您喜欢的或全部组成。
安装Logwatch
** 请注意: ** Logwatch 是一个无害的应用程序,不应该干扰您当前的服务或工作负荷. 但是,像往常一样,建议您先在新系统上尝试并确保备份。
关于CentOS / RHEL
Logwatch 安装在基于 RHEL 的系统(例如 CentOS)非常简单,因为它是由各种 Perl 脚本组成的应用程序,因此需要某些相关依赖性。由于我们将使用 yum 包管理器,这将自动处理。
** 要在 CentOS / RHEL 上安装 Logwatch,请执行以下操作:**
1$ yum install -y logwatch
关于 Ubuntu / Debian
对于基于 Debian 的系统(例如,Ubuntu)获取 Logwatch 非常类似于上面解释的过程,除了包管理器的差异(aptitude v. yum)。
** 要在 Ubuntu/Debian 上安装 Logwatch,请执行以下操作:**
1$ aptitude install -y logwatch
配置Logwatch
虽然其设置可以在每次运行时手动上调,但一般来说,您将希望 Logwatch 每天运行,使用常见配置。
设置Logwatch的常见配置
Logwatch 的默认配置文件位于:
1/usr/share/logwatch/default.conf/logwatch.conf
让我们使用纳米文本编辑器打开这个文件以修改其内容:
1$ nano /usr/share/logwatch/default.conf/logwatch.conf
在运行上述命令时,您将遇到应用程序每次运行时使用的变量长列表,无论是自动还是手动。
为了开始使用它,我们需要对这些默认值做出一些更改。
请记住,在未来,您可能想回来修改这里定义的某些设置。Logwatch分析的所有 服务 (应用程序)都列在此文件中,如上所述(配置 # 5)。
我们需要设置的重要选项:
** 请注意:** 您需要使用箭头键来上行或下行,当您正在对文档进行以下更改时。一旦您完成了通过更改(项目1 - 6),您将需要按 ** CTRL+X** ,然后用 ** Y** 确认保存和关闭。
1. 每日报告(报告)发送的电子邮件地址:
1MailTo = root
用你的电子邮件地址代替root
。
** 例子:** MailTo = [email protected]
2. 这些报告来源的电子邮件地址:
1MailFrom = Logwatch
您可能想用自己的Logwatch
更换。
例如:MailFrom = [email protected]
3. 为报告设置 range:
1Range = yesterday
您可以选择收到 All (从一开始就可用), ** Today** (今天)或 ** Yesterday** (昨天)的报告。
** 例子:** Range = 今天
4、设置报告的细节:
1Detail = Low
您可以在这里修改报告的详细信息. 选项是: Low , ** Medium** 和 ** High** 。
** 例子:** ‘细节 = 中等’
设置要分析的服务(应用程序):**
默认情况下,Logwatch涵盖了非常广泛的服务. 如果您想看到完整的列表,您可以查询位于
/usr/share/logwatch/
的文件内容scripts/services
.示例:
ls -l /usr/share/logwatch/scripts/services
1Service = All
您可以选择收到所有服务或某些特定服务的报告。
对于所有服务,请将行保持为: 服务 = 所有
如果您想收到特定服务的报告,请修改类似于下面的示例,在新行中列出每个服务(例如 服务 = [名称]
)。
** 例子:**
1Service = sendmail
2Service = http
3Service = identd
4Service = sshd2
5Service = sudo
6..
(二)日期报告的禁用:
1# DailyReport = No
如果你不希望每天重复生成,你应该放弃这个行。
例子: DailyReport = No
而不是# DailyReport = No
完成这些更改后,您将从您的服务器自动收到基于日志文件的每日报告。
要了解更多关于Logwatch的信息,并创建定制服务以接收报告,您可以通过点击此处(http://www.stellarcore.net/logwatch/tabs/docs/HOWTO-Customize-LogWatch.html)访问其完整文档。
手动运行Logwatch
应该提到,您可以随时通过命令行手动运行Logwatch。
以下是可用的选项(从文档中):
1logwatch [--detail level ] [--logfile log-file-group ] [--service service-name ] [--print]
2 [--mailto address ] [--archives] [--range range ] [--debug level ] [--save file-name ]
3 [--logdir directory ] [--hostname hostname ] [--splithosts] [--multiemail] [--output output-
4 type ] [--numeric] [--no-oldfiles-log] [--version] [--help|--usage]
除非您指定一个选项,否则它将从配置文件中读取。
** 例子:**
1$ logwatch --detail Low --mailto email@address --service http --range today
** 以下是Logwatch报告的样子:**
1################### Logwatch 7.3.6 (05/19/07) ####################
2 Processing Initiated: Wed Nov 15 15:07:00 2013
3 Date Range Processed: today
4 ( 2013-Nov-15 )
5 Period is day.
6 Detail Level of Output: 0
7 Type of Output: unformatted
8 Logfiles for Host: host_name
9 ##################################################################
10
11 --------------------- Postfix Begin ------------------------
12
13 3.453K Bytes accepted 3,536
14 3.453K Bytes delivered 3,536
15 ======== ================================================
16
17 3 Accepted 100.00%
18 -------- ------------------------------------------------
19 3 Total 100.00%
20 ======== ================================================
21
22 3 Removed from queue
23 2 Delivered
24 1 Sent via SMTP
25
26 1 Connection failure (outbound)
27
28 1 Postfix start
29
30 ---------------------- Postfix End -------------------------
31
32 --------------------- Connections (secure-log) Begin ------------------------
33
34 New Users:
35 apache (48)
36
37 New Groups:
38 apache (48)
39
40 **Unmatched Entries**
41 groupadd: group added to /etc/group: name=apache, GID=48: 1 Time(s)
42 groupadd: group added to /etc/gshadow: name=apache: 1 Time(s)
43
44 ---------------------- Connections (secure-log) End -------------------------
45
46 --------------------- SSHD Begin ------------------------
47
48 SSHD Started: 2 Time(s)
49
50 Users logging in through sshd:
51 root:
52 ip_addr (ip_addr): 1 time
53
54 ---------------------- SSHD End -------------------------
55
56 --------------------- yum Begin ------------------------
57
58 Packages Installed:
59 apr-1.3.9-5.el6_2.x86_64
60 apr-util-1.3.9-3.el6_0.1.x86_64
61 perl-YAML-Syck-1.07-4.el6.x86_64
62 4:perl-5.10.1-131.el6_4.x86_64
63 mailx-12.4-6.el6.x86_64
64 1:perl-Pod-Simple-3.13-131.el6_4.x86_64
65 1:perl-Pod-Escapes-1.04-131.el6_4.x86_64
66 3:perl-version-0.77-131.el6_4.x86_64
67 httpd-2.2.15-29.el6.centos.x86_64
68 4:perl-libs-5.10.1-131.el6_4.x86_64
69 mailcap-2.1.31-2.el6.noarch
70 perl-Date-Manip-6.24-1.el6.noarch
71 1:perl-Module-Pluggable-3.90-131.el6_4.x86_64
72 httpd-tools-2.2.15-29.el6.centos.x86_64
73 apr-util-ldap-1.3.9-3.el6_0.1.x86_64
74 logwatch-7.3.6-49.el6.noarch
75
76 ---------------------- yum End -------------------------