logwatch配置笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

参考文章:

    https://segmentfault.com/a/1190000002537665

    http://hxl2009.blog.51cto.com/779549/703971


logwatchperl语言写的。能够对Linux 的日志文件进行分析,并自动发送mail给相关处理人员。

Logwatchmail功能是借助宿主系统自带的mail server 发邮件的,所以系统需安装mail server , sendmailpostfix,Qmail

 

环境:CentOS6.7

【说明:在CentOS7上测试时候,接收到的邮件内容自动变成了附件形式,按照网上的方法http://www.shangxueba.com/jingyan/1642876.html也没解决掉】

 

安装配置logwatch

yum install logwatch安装即可。

主要释放的文件如下:

wKiom1dmqPjCC6I3AAAo1SPK31E706.png


# cd /etc/logwatch/conf/

# cp /usr/share/logwatch/default.conf/logwatch.conflogwatch.conf

# vim logwatch.conf 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LogDir =  /var/log     # logwatch 会去 /var/log 找你定义的 log 文件
TmpDir =  /var/cache/logwatch
  
MailTo = xxx@126.com     # 多收件人直接用逗号隔开
MailFrom = sender@sina.com
  
Print = No         #可选项, Yes 会被打印到系统标准输出, 并且不会以邮件的形式发送到 MailTo设                   # 定的邮箱里 , No 选项则会发到邮箱中
Range = Yesterday          # 处理什么时候的日志,可选All、Yesterday、Today
Detail = Low          # 日志详细度, 可选项 Low , Med , High , 或是 0-10数字
  
Output = mail         #可以选择mail, html or unformatted
  
Service = All         # 监控所有服务 all
Service =  "-exim"          # 不监控的服务前面加-, 如 -exim, 即不监控exim 服务,可以写多条
  
mailer =  "mailx -t"   # 我服务器上用的是mailx,所有默认的sendmail -t 被我改掉了。
  
DailyReport = No


为了发送邮件,还得安装邮件发送客户端,如下

yum install mailx

vim /etc/mail.rc 在最后添加个能发送邮件的账号

1
2
3
set  from=xxxx@sina.com smtp=smtp.sina.com
setsmtp-auth-user=xxxx@sina.com smtp-auth-password=xxxx
set  smtp-auth=login

 

 

添加后,我们执行/usr/bin/perl/usr/share/logwatch/scripts/logwatch.pl 发送邮件测试。

 

邮件发送没问题的话,可以添加一条计划任务让系统自动发每天早上发邮件。

echo '30 6 * * * /usr/bin/perl/usr/share/logwatch/scripts/logwatch.pl > /dev/null 2>&1' >>/var/spool/cron/root

 

此外,默认在安装logwatch的时候,在/etc/cron.daily/会自动生成个0logwatch文件。

我们可以删掉这个/etc/cron.daily/0logwatch文件,反正上面操作中也配置了cron计划任务。

 


其它:

Logwatch 也可以在命令行上使用:

logwatch -h 即可列出全部的参数

Usage: /usr/sbin/logwatch [--detail<level>] [--logfile <name>]

  [--print] [--mailto <addr>] [--archives] [--range <range>][--debug <level>]

  [--save <filename>] [--help] [--version] [--service <name>]

  [--numeric] [--output <output_type>]

  [--splithosts] [--multiemail] [--no-oldfiles-log]

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
--detail <level>: 报告的详细度,可选项: High, Med, Low , 数字 0-10
--logfile <name>:    日志文件名
--logdir <name>:  日志路径
--service <name>:    服务名称
--print:             结果输出到屏幕
--mailto <addr>:  结果通过邮件发送
--archives:          以归档格式发送
--save <filename>:   结果保存到本地文件中
--range <range>:  搜集的日志时间,可以为: Yesterday,Today,All,接参数help还可以看到更详细的参数
--numeric:           不进行DNS反解析,只显示数字格式的IP
--debug <level>:  Debug级别,High, Med, Low or any  #.
--splithosts:        为每个主机创建一份报告
--multiemail:     将报告发送给多个邮件地址,没有使用--splithosts参数时,这个选项自动忽略
--output <output  type >: 报告的输出格式,可以是mail、html、unformatted #.
--encode:            使用base64编码 on output mail.
--no-oldfiles-log: Suppress the logwatch log, which  informs about the
                    old files  in  logwatchtmpdir.
--version: Displays current version.


 

例如:

1
2
logwatch --detail High --Service All --rangeAll --print     # 显示所有日志
logwatch --service  cron  --detail High              # 查看 sshd 日志


 

 

故障排除

 如果没有收到 Logwatch日志报告邮件 , 请检察本地 sendmail 服务是否正常

 

1
2
3
4
5
6
# logwatch --range today    直接将结果发送邮件
# logwatch --range today --print 当天不发送邮件
# logwatch --range today --print --mailto xxx@sina.com  当天并且发送邮件
  
# /usr/share/logwatch/scripts/logwatch.pl --print
# /usr/share/logwatch/scripts/logwatch.pl--mailto xxx@sina.com


 

 

 

摘录:定制自己要监控的日志

用一个简单的例子介绍自定义logwatch的配置方法。

 

首先创建logwatch日志文件组
/etc/logwatch/conf/logfiles/test.conf

LogFile = /path/to/your/logfile

LogFile = /path/to/your/second/logfile

 

然后创建logwatch服务配置文件
/etc/logwatch/conf/services/test.conf

Title = testtitle     日志文件里的标题

LogFile = test   # logwatch日志文件组的名字,通常是对应的配置文件的文件名部分

 

创建logwatch服务过滤器脚本
/etc/logwatch/scripts/services/test

#!/bin/bash

grep -i ERROR

 

上面的脚本会从日志文件里过滤出包含ERROR的行。最后,为新建的脚本添加执行权限:

全选复制放进笔记

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

 










本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1790880,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
监控 Perl Linux
|
Java Linux 开发工具
Vim 简单使用指南
Vim 简单使用指南
234 0
Vim 简单使用指南
|
缓存 前端开发 Unix
nginx.conf配置文件各项详解(建议收藏查阅)(上)
nginx.conf配置文件各项详解(建议收藏查阅)
254 0
nginx.conf配置文件各项详解(建议收藏查阅)(上)
|
应用服务中间件 Shell Apache
nginx.conf配置文件各项详解(建议收藏查阅)(下)
nginx.conf配置文件各项详解(建议收藏查阅)
193 0
|
Web App开发 缓存 负载均衡
nginx.conf配置文件各项详解(建议收藏查阅)(中)
nginx.conf配置文件各项详解(建议收藏查阅)
425 0
|
NoSQL 数据库 开发工具
vim+cscope使用指南
vim+cscope使用指南
10375 2
|
开发工具 数据安全/隐私保护 git
|
监控 NoSQL Java
RedisManager使用手册(二) -- 配置文件详解
RedisManager基于SpringBoot开发,目前主要的配置都写在了application.yml文件中,通过@Value注解在代码中直接注入使用。同时还有部分定时job的配置记录在了schedule.properties文件中。
3444 0