【 描述 】
Logwatch是使用 Perl 开发的一个日志分析工具
Logwatch能够对Linux 的日志文件进行分析,并自动发送mail给相关处理人员,可定制需求
Logwatch的mail功能是借助宿主系统自带的mail server 发邮件的,所以系统需安装mail server,如sendmail,postfix,Qmail等
本文yum安装配置
yum install -y logwatch
【 配置 】
a. 配置文件在 /etc/logwatch,相关配置模板在 /usr/share/logwatch
cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
如果不做这一步,/etc/logwatch/conf/logwatch.conf 是一个空文件
默认配置会使用 /usr/share/logwatch/default.conf/logwatch.conf
b. vim /etc/logwatch/conf/logwatch.conf
LogDir = /var/log????????????? logwatch 会去 /var/log 找你定义的 log 文件
TmpDir = /var/cache/logwatch
# Save = /tmp/logwatch???????? 开启此项,处理结果将保存在/tmp/logwatch,不邮寄或显示
MailTo = your@mail.com???????? 多个邮箱逗号隔开
MailFrom = Logwatch??????????? 当你收到邮件时,显示是谁发给你的
Range = All??????????????????? 处理什么时候的日志,可选项? All,Yesterday,Today,即所有,昨天的,今天的
Detail = High????????????????? 日志详细度,可选项 Low,Med,High,或是 0-10数字
Print = No???????????????????? 可选项,Yes 会被打印到系统标准输出,并且不会以邮件的形式发送到 MailTo 设定的邮箱里,No 选项则会发到邮箱中
Server = All?????????????????? 监控所有服务 all
Service = “-httpd”???????????? 不监控的服务前面加 “-”,如 -httpd,即不监控 httpd 服务,可以写多条
Service = “-sshd”
【 Logwatch 使用 】
a. 配置好以后,使用如下命令测试
/usr/bin/perl /usr/share/logwatch/scripts/logwatch.pl
你会发现没有 httpd,sshd 服务的日志报告,
去掉 Service = “-sshd” 配置,再执行上面命令,就可以看到 sshd 服务的 report 了
b. Logwatch 并不是以系统服务形式来跑的,而是靠在命令行上敲的,所以可以使用 crontab 来定时执行
在配置好 Logwatch 后,会生成一个软链 /etc/cron.daily/0logwatch,对应文件为 /usr/share/logwatch/scripts/logwatch.pl
你可以删除这个软链,并重写 crontab :
* 00 * * *? /usr/bin/perl /usr/share/logwatch/scripts/logwatch.pl >/dev/null 2>&1
【 Logwatch 命令行使用 】
Logwatch 也可以在命令行上使用,如下例子:
logwatch –detail High –Service All –range All –print??? # 显示所有日志,–detail,–Service,–range 开关可以在 logwatch.conf 中 找到
logwatch –service cron –detail High???????????????????? # 查看 sshd 日志
以下是 logwatch 的参数解释:
–detail <level>:??????????? 报告的详细度,可选项: High,Low,数字 0-10
–logfile <name>:??????????? 指日志文件名
–service <name>:??????????? 服务名,有对应的解析脚本,可以在 /usr/share/logwatch/scripts/services 中找到
–print:???????????????????? 打印打标准输出
–mailto <addr>:???????????? 收件人地址
–archives:????????????????? 使用压缩的文件,轮转的文件,例如 messages.1、messages.1.gz
–save <filename>:?????????? 保存到文件
–range <range>:???????????? 日期范围,All
–debug <level>:???????????? 调试级别: High,Low
–splithosts:??????????????? 为每个主机创建一份报告
–multiemail:??????????????? 将报告发送给多个邮件地址
【 故障排除 】
如果没有收到 Logwatch日志报告邮件,请检察本地 sendmail 服务是否正常
直接指定邮件发送
#logwatch --range today --print --mailto sina@sina.com? 当天
/usr/share/logwatch/scripts/logwatch.pl --mailto sina@sina.com