Logwatch的配置与使用

来源:互联网 发布:美国经济发展历程数据 编辑:程序博客网 时间:2024/05/19 08:41

【系统环境如下】

系统:     CentOS release 5.4
软件版本: logwatch-7.3-6
zhounetworking  整理
【 下载及文档 】
源码包及RPM包下载 ,官方的相关文档    http://sourceforge.net/projects/logwatch/files/
【 描述 】
Logwatch是使用 Perl 开发的一个日志分析工具
Logwatch能够对Linux 的日志文件进行分析,并自动发送mail给相关处理人员,可定制需求
Logwatch的mail功能是借助宿主系统自带的mail server 发邮件的,所以系统需安装mail server , 如sendmail,postfix,Qmail等
【 安装 】
a. Logwatch是使用 Perl 开发的 , 所以你需要先安装 Perl 环境
b. 可以去 http://sourceforge.net/projects/logwatch/files/ 适合你使用的代码形式
c. 本文重点演示配置, 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, Med, 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>:          日期范围, Yesterday, Today, All
–debug <level>:           调试级别: High, Med, Low
–splithosts:                    为每个主机创建一份报告
–multiemail:                 将报告发送给多个邮件地址
【 故障排除 】
如果没有收到 Logwatch日志报告邮件 , 请检察本地 sendmail 服务是否正常

如果需要更深入理解logwatch 的处理过程及原理 , 可以看 /usr/share/logwatch/scripts/logwatch.pl 脚本, 明了

转自:http://www.mysqlops.com/2011/11/02/logwatch%E7%9A%84%E9%85%8D%E7%BD%AE%E4%B8%8E%E4%BD%BF%E7%94%A8.html

原创粉丝点击