阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Logwatch日志分析工具

173次阅读
没有评论

共计 4280 个字符,预计需要花费 11 分钟才能阅读完成。

介绍:
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@address –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 #########################

 

Linux 系统中使用 logwatch 监控日志文件  http://www.linuxidc.com/Linux/2014-12/110703.htm

Ubuntu 15.04 中安装 Logwatch 定制专属日志推送  http://www.linuxidc.com/Linux/2015-08/122506.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/144336.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4280字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中