Logwatch说明、安装、配置、实验

说明:

Logwatch是使用 Perl 开发的一个日志分析工具
Logwatch能够对Linux 的日志文件进行分析,并自动发送mail给相关处理人员,可定制需求
Logwatch的mail功能是借助宿主系统自带的mail server 发邮件的,所以系统需安装mail server , 如sendmail,postfix,Qmail等

 

安装:

Yum -y install logwatch

配置:

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf #复制配置文件模版

vim /etc/logwatch/conf/logwatch.conf

LogDir = /var/log              logwatch 会去 /var/log 找你定义的 log 文件
TmpDir = /var/cache/logwatch
# Save = /tmp/logwatch         开启此项, 处理结果将保存在/tmp/logwatch, 不邮寄或显示
MailTo = [email protected]         多个邮箱逗号隔开
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 并不是以系统服务形式来跑的 , 而是靠在命令行上敲的 , 所以可以使用 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 –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 --range today --print --mailto [email protected] 

logwatch -pr 直接在终端上输出

logwatch --service http --print  只输出某一服务

 

实验:

1、将nginx的192.168.64。98的日志cp到/var/log/httpd/下logwatch可以对nginx的access进行分析(注意文件名称)

2、修改logwatch默认http的log的path

vi /usr/share/logwatch/default.conf/logfiles/http.conf 

LogFile =  /etc/nginx/logs/access.log

#LogFile = apache/*access.log.1

#LogFile = apache/*access.log

#LogFile = apache2/*access.log.1

#LogFile = apache2/*access.log

#LogFile = apache-ssl/*access.log.1

#LogFile = apache-ssl/*access.log

可以用logwatch对nginx的日志进行监控,显示个格式如下:

 

实验发现,logwatch默认会去检查/var/log下的日志,虽然修改/etc/logwatch/logwatch.conf但还是会去var/log下查找日志,如果想具体修改某一服务的日志位置需要修改对应服务的配置,如上所述。

如果要对自己的特殊 Log 做监控, 

基本的做法:

1) 创建一个日志文件组。指定自己的 Log 文件,可以是一个,可以是多个;2) 创建一个新的服务。指明这个服务的名字, 指明 Log 文件来源(来自上一步的定义);3) 创建一个过滤脚本;

整个原理就是,LogWatch 首先要知道针对哪一个服务, 从这个服务中得到需要处理的 Log 文件信息, 然后这个文件送给过滤脚本处理, 之后把处理后格式化的信息展现出来;

你可能感兴趣的:(logwatch)