nagios 自带的Plugin check_log监控日志比较单一,对于对日志监控比较高的生产环境下还是不行的。
consol.de 出的check_logfile很不错很强大,支持正则表达式。详细官方说明如下:
http://labs.consol.de/lang/de/nagios/check_logfiles/
我以监控apache日志为例说明下这个怎么用。
wget http://labs.consol.de/wp-content/uploads/2012/02/check_logfiles-3.4.7.1.tar.gz
tar xf check_logfiles-3.4.7.1.tar.gz
cd check_logfiles-3.4.7.1
./configure --prefix=/usr/local/nagios/ --with-nagios-user=nagios --with-nagios-group=nagios --with-seekfiles-dir=/usr/local/nagios/var/tmp/ --with-protocols-dir=/usr/local/nagios/var/tmp/ --with-perl=/usr/bin/perl --with-gzip=/bin/gzip
make && make install
###########################
#我们利用调用文件来监控,这样方便些
#创建log.conf
vim /usr/local/nagiso/etc/log.conf
@searches = (
{
tag => 'test_http',
logfile => '/var/log/httpd/access_log',
rotation => 'CentOs',
criticalpatterns => [
'.*401\s*571.*',
],
warningpatterns => [
'404'
]
},
);
#具体的详细配置可以看下官方介绍
在nrpe添加
command[check_logfiles]=/usr/local/nagios/libexec/check_logfiles --config=/usr/local/nagios/etc/log.cfg
#执行
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
好了被监控端配置完成了
被监控端services.cfg
define service {
host_name nagios_test
service_description chech_sanlogs
use generic-service,srv-pnp
check_period 24x7
max_check_attempts 4
normal_check_interval 1
retry_check_interval 1
contact_groups nagcmd
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_log!20!check_logfiles
}
vim etc/objects/commands.cfg
define command{
command_name check_log
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t $ARG1$ -c $ARG2$
}
##重启下nagios,就OK了
正常状态:
告警状态
配合下图表看起来更方便
当前文章:nagios监控日志脚本check_logfile
分享链接:
http://cxhlcq.com/article/goihsc.html