Logwatch日志分析工具

介绍:

Logwatch是使用 Perl 开发的一个日志分析工具。

Logwatch能够对Linux 的日志文件进行分析,并自动发送mail给相关处理人员,可定制需求。

Logwatch的mail功能是借助宿主系统自带的mail server 发邮件的,所以系统需安装mail server , 如sendmail,postfix,Qmail等

安装:

redhat,centOS: yum -y install logwatch
debian,ubuntu: apt-get install logwatch

目录结构:

/usr/share/logwatch
    default.conf/     # 配置目录
        logwatch.conf   # 主配置文件,收件人,级别等
        logfiles/       # 定义待分析服务的日志文件组路径,相对于/var/log(*.conf)
        services/       # 自定义需分析日志的Service目录(*.conf)
    scripts/          # 可执行脚本
        logwatch.pl     # 启动分析的perl脚本,/usr/sbin/logwatch的源链接
        logfiles/       # 可包含多个logwatch日志文件组的子目录,对应的日志服务运行的时候,子目录下的脚本会自动被调用
        services/       # logwatch日志服务的过滤脚本,一一对应
        shared/         # 可被多个logwatch日志服务引用的脚本
    dist.conf/
        logfiles/
        services/
    lib/

默认情况下使用的是/usr/share/logwatch/default.conf/logwatch.conf作为主配置文件,但在/etc/logwatch/conf/logwatch.conf中的存在配置选项会覆盖前一个(/usr/share/logwatch下的logwatch.conf还是会起作用,比如在/etc/logwatch的logwatch.conf中没有的选项)。但优先级最高的是在执行命令行中指定的选项。

在/etc/logwatch下也存在一个与/usr/share/logwatch类似的目录结构,可以在这里添加自定义的监控日志信息。

配置结构:

这三个目录的内容是/usr/share/logwatch/default.conf,/usr/share/logwatch/dist.conf和/etc/logwatch/conf,都有相同结构:

services:此子目录包含配置特定于每个服务的文件。Logwatch确定哪些服务可用检查此目录的内容。每个服务配置文件由其服务名称带有“.conf”后缀。
logfiles:此子目录包含日志文件组配置文件。每个日志文件组配置文件包含有关信息一个或多个具有相同格式的日志文件。几个服务可能使用相同的日志文件组配置文件。每一个配置文件由组命名名称与“.conf”后缀。许多的组名取自该名称的系统日志文件(如消息,邮件日志,安全等),但不总是。
logwatch.conf:此文件包含默认值整体执行Logwatch,并影响全部的服务。它的许多参数都可以当命令行开关被覆盖调用Logwatch可执行文件。

ignore.conf:该文件指定正则表达式,当与logwatch的输出匹配时,会抑制匹配线,无论哪一个正在执行服务。

/etc/logwatch/conf目录也可能包含文件‘override.conf‘

可执行结构:

两个目录的内容/usr/share/logwatch/scripts和/etc/logwatch/scripts具有相同的结构:
services:此子目录包含可执行文件为每项服务。除非另有规定在配置服务文件(见上文)中,可执行文件是用perl语言编写的。
shared:此子目录包含可执行文件由多个配置服务调用文件。

logfiles:此子目录可能包含子目录日志文件组名。每个可执行文件这些子目录自动被调用运行使用相应的服务日志文件组名。

编辑配置:

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf

vim /etc/logwatch/conf/logwatch.conf   #配置文件中不区分大小写
MailTo = root       #指定电子邮件地址,每日发送报告,多邮箱逗号隔开
LogDir = /var/log   #定义日志文件位置
TmpDir = /var/cache/logwatch    #缓存
MailFrom = Logwatch  #邮件发送来源
Print =            #选项yes会打印到系统输出,不会发送到设定邮箱,NO则会发送到邮箱
Range = yesterday  #接受范围,如yesterday昨天或today今天或all所有
#Range = all   #当配置所有日志时,必须配上archive = yes 将会处理所有的包括已存档的日志
#Archive = yes
Detail = High    #等级,低:Low=0,中:Med=5,高:High = 10  字母或数字都可以
Service = All    #所有服务,或指定某个服务
Service = "-zz-network"    #在前面加“-”表示不监控服务
Service = "-zz-sys"         #Service选项指定想要监控的一个或多个服务。在/usr/share/logwatch/scripts/services目录下列出的服务都能被监控
Service = "-eximstats"      
mailer = "sendmail -t"  #指定发送邮件的客户端
#DailyReport = No  #禁止每日执行任务
#Output = <mail,html,unformattted>  #指定输出格式
#Save = /tmp/logwatch   #将会把输出报错到文件中

使用:

检测命令

/usr/bin/perl /usr/share/logwatch/scripts/logwatch.p

选项:

--detail<报告详细程度>: 指定日志报告的详细程度;

--logfile<日志文件>: 仅处理指定的日志文件;

--service<服务名>: 仅处理指定服务的日志文件;

--print: 打印结果到标准输出;

--mailto<邮件地址>: 将结果发送到指定邮箱;

--range<日期范围>: 指定处理日志的日期范围;

--archives: 处理归档日志文件;

--debug<调试等级>: 调试模式;

--save<文件名>: 将结果保存到指定文件中,而不显示或者发送到指定邮箱;

--logdir<目录>: 指定查找日志文件的目录,而不使用默认的日志目录;

--hostname<主机名>: 指定在日志报告中使用的主机名,不使用系统默认的主机名;

--numeric: 在报告中显示ip地址而不是主机名;

--help: 显示指令的帮助信息。

实例:

logwatch --detail Low --mailto [email protected] --service http --range today   #将今天的http LOW日志发送到邮箱

logwatch --detail High --service all --range all --print    打印所有服务日志

logwatch --service sshd --detail high --print   打印SSHD错误日志

定制自己要监控的日志

首先创建logwatch日志文件组:

vim /etc/logwatch/conf/logfiles/test.conf
LogFile = /usr/local/nginx/logs/nginx.log

然后创建logwatch服务配置文件:

vim /etc/logwatch/conf/services/test.conf
Title = test title   #日志文件的标题
LogFile = test    #日志文件组的名字,即上面创建的日志文件组test.conf

创建logwatch服务过滤器脚本:

vim /etc/logwatch/scripts/services/test
cat /etc/logwatch/scripts/services/test 
#!/bin/sh
grep -i ERROR | wc -l

#此处实验只是简单的写了脚本,工作中可根据需要编写

给脚本文件可执行权限:

chmod +x /etc/logwatch/scripts/services/test

测试输出效果:

logwatch --service test --print    #test为服务名
 ################### Logwatch 7.3.6 (05/19/07) #################### 
        Processing Initiated: Mon May 22 14:09:22 2017
        Date Range Processed: yesterday
                              ( 2017-May-21 )
                              Period is day.
      Detail Level of Output: 10
              Type of Output: unformatted
           Logfiles for Host: zabbix
  ################################################################## 
 
 --------------------- test title Begin ------------------------ 
 1022
 
 ---------------------- test title End ------------------------- 
 
 ###################### Logwatch End #########################
时间: 2024-08-04 10:22:20

Logwatch日志分析工具的相关文章

mysql慢查询日志分析工具mysqlsla

一.介绍    mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比.执行时间.等待销的时间等. 公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla:使用方便,操作简单. 二.安装mysqlsla 系统环境 CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64 官网已经不能下载,所需要的文件已在百度云

AWStats日志分析工具

awstats官方网站:http://awstats.sourceforge.net/ perl官方网站:http://www.perl.com/ Awstats是一个非常简洁而且强大的统计工具.它可以统计您站点的如下信息: 一:访问量,访问次数,页面浏览量,点击数,数据流量等精确到每月.每日.每小时的数据二:访问者国家.访问者IP.操作系统.浏览器等三:Robots/Spiders的统计四:纺客持续时间五:对不同Files type 的统计信息六:Pages-URL的统计七:其它信息(搜索关键

project03日志分析工具AWStats

++++++++++++++++++++ 日志分析工具AWStats ++++++++++++++++++++ http://www.oschina.net/project http://www.oschina.net/project/tag/147/log-analyzer --统计日志分析工具 http://www.awstats.org/ --官方网站 http://www.nltechno.com/awstats/awstats.pl?config=destailleur.fr  --官

GoAccess日志分析工具使用文档

----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据,和繁杂的指令以及一大堆管道/正则表达式说byebye.据GoAccess官方的说法:使用AMD Sempron 2.31GHz的CPU+2GB内存,开启GoAccess所有功能,该软件每秒可以处理10万行日志.当然,如果使用的CPU更强劲,拥有更多的内存,GoAccess的表现

mysql慢查询日志分析工具使用

参考:  5种mysql日志分析工具比拼 http://blog.csdn.net/gzh0222/article/details/10384475 1.mysql-log-filter工具脚本使用说明: google code上找到的一个分析工具.提供了 python 和 php 两种可执行的脚本.http://code.google.com/p/mysql-log-filter/ (需要搬梯子爬墙),51cto下载链接: 使用方法:(这里只介绍python的使用方法) python mysq

慢查询日志分析工具mysqldumpslow

mysqldumpslow是mysql自带的一种慢查询日志分析工具,顾名思义,就是查询那些出那些查询慢的SQL语句,由此分析出SQL查询效率慢的原因. 通常来说,mysqldumpslow分组查询的结果是相似的,它在展示统计结果时,可以将数字和字符串分别抽象成"N"和"S".当然也可以用-a 和 -n选项可以用来修改这些抽象的行为. mysqldumpslow查询命令 mysqldumpslow [options] [log_file] mysqldumpslow可

linux下搭建HTTP网站服务器和网站日志分析工具AWStats的使用

服务器IP地址:192.168.4.5 服务器主机名:srv5.tarena.com 1.在服务器端安装httpd软件包 [[email protected] /]# yum -y install httpd [[email protected] /]# service httpd start [[email protected] /]# chkconfig httpd on 2.在客户机端验证 在浏览器中输入192.168.4.5 如果显示欢迎页面表示服务器搭建成功 3.部署网页文档 首先将欢

日志分析工具-ApexSQL介绍

原文:日志分析工具-ApexSQL介绍 使用场景:业务数据异常变化,通过代码分析不出来的时候,迫不得已需要通过日志来分析 下载地址:http://www.apexsql.com/Download.aspx?download=log 使用要点: 日志的原理导致他不能显示原始SQL,只能记录前后变化,这个是日志本身的机制 可以通过事务Id判断是否同一事务,但是要了解其修改过程还是需要业务上的经验. 记录事务发生的时间,不记录发起者的程序名称和客户端信息 样例代码: CREATE TABLE [dbo

基于SQL的日志分析工具myselect

基本介绍 程序开发人员经常要分析程序日志,包括自己打印的日志及使用的其它软件打印的日志,如php,nginx日志等,linux环境下分析日志有一些内置命令可以使用,如grep,sort,uniq,awk等,其中最强大的是awk,是作为一门小巧的文本处理语言存在的,但由于它是一门语言,功能强大,但在命令行下使用并不那么方便,因为awk是面向计算而不是面向统计的.awk可以定义变量,可以进行计算,命令行下就是一个包含隐式for循环的语言. awk如果很长时间不用,它的一些语法就忘了,要分析线上日志时