首页 > 编程知识 正文

daemon.log日志(python实时监控log日志)

时间:2023-05-04 12:25:32 阅读:82562 作者:1352

Linux操作系统和许多APP系统会创建专门的文件来记录执行事件。 这些文件通常称为“日志”。 这些系统日志和特定的APP日志文件是了解操作系统、第三方APP的行为和进行故障诊断的不可缺少的工具。 但是,日志文件没有你们“清楚”或“简单”那样的可读性。 手工分析原始日志文件是浪费时间,单调乏味。 因此,对于系统管理员来说,找到能够将原始日志文件转换为更人性化的记录摘要的工具是非常有用的。

logwatch是一个用Perl语言编写的开源日志分析程序。 可以分析原始日志文件并将其转换为结构化格式的文档,也可以根据使用情况和需要定制报告。 logwatch的主要目的是生成更易于使用的日志摘要,而不是实时处理和监视日志。 因此,logwatch通常设置时间和频率的自动定时任务来调度执行,或者在需要日志记录时从命令行手动执行。 生成日志报告后,logwatch可以通过电子邮件发送此报告,并将其另存为文件或直接显示在屏幕上。

Logwatch报告的详细程度和报告范围完全可以自定义。 Logwatch的日志处理引擎也可以扩展。 从某种意义上说,如果希望在新的APP应用程序中使用Logwatch功能,只需要为该APP应用程序的日志文件编写日志处理脚本(使用Perl语言),然后连接到Logwatch。

logwatch的缺点是,生成的报告没有详细的时间戳信息,而是存在于原始日志文件中。 如果只能知道记录的特定时间段内的特定事件,并且想知道准确的时间点信息,则必须显示原始的日志文件。

安装 Logwatch

在debian系统或其派生系统中为:

# #应用程序安装日志

基于Red Hat的发布系统中的:

# # yum安装日志

安装

配置 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文件来自定义缺省设置。

详细信息=低、Med、高或数字

“详细信息”配置命令控制日志报告的详细级别。 可以指定几个High、Med和Low选项,分别表示正整数或数字10、5和0。

mailto=your电子邮件地址@ your域.com

如果要通过电子邮件发送logwatch报告,请使用名为“MailTo”的设置命令。 要向多个用户发送单个报告,只需将电子邮件地址放置为空。 但是,如果不在运行logwatch的服务器上设置本地消息代理(MTA ) (如sendmail和Postfix ),则无法正常工作。

范围=年|每天|全部

“范围”配置命令定义要生成logwatch报告的期间信息。 此命令的选项值通常为Yesterday、Today和All。 如果使用“Rang=All”,则还必须放置名为“Archive=yes”的命令项,将显示所有已存档的日志文件(

除了这些常规范围值外,还可以按如下方式使用复杂点的选择值:

range='2hoursagoforthathour ' range='-5天' range=' between-7天- 3天' range=' since September 15, 2014 ' range=' Firstfridayinoctober ' range=' 2014/10/1512336050336015 forthatsecond '要使用上述示例中的自由形式的range,请使用CPAN

服务=服务

ce-name-1> Service = <service-name-2> . . .

“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 = <text|html>

“Format” 配置指令定义了一份 logwatch 报告的格式(比如 text 或者 HTML)。

Output = <file|mail|stdout>

"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 格式的报告,这样每个想看这份报告的人都可以从网络共享里看到。只需要把上面例子中的配置做些修改就可以实现:

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

希望这会有所帮助。欢迎到社区发表评论或分享自己的心得和体会!

本文由 LCTT原创翻译,Linux中国荣誉推出

本文是原创投递或翻译投递,Linux中国首发。也想加入译者行列,为开源做一些自己的贡献么?欢迎加入LCTT!

欢迎转载,敬请在正文中标注并保留原文/译文链接和作者/译者等信息。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。