nagios的nsca被动模式及自动添加nsca服务

nagios的被动模式中有nsca,测试了下php,python,shell都有相关的支持,利用nagios的日志文件,过滤出关于nsca的内容,再与配置文件对比,即可实现自动添加服务了。

一、nsca安装

服务端

参考http://www.cszhi.com/20120527/nagios-nsca.html

1、下载文件安装
wget http://nchc.dl.sourceforge.net/project/nagios/nsca-2.x/nsca-2.9.1/nsca-2.9.1.tar.gz
tar zxf nsca-2.9.1.tar.gz
cd nsca-2.9.1
./configure
make all

2、配置nagios

1)修改nagios.cfg
check_external_commands = 1 (enable commands file)
command_check_interval = -1 (check the external command file as often as possible )
2)添加模板(template.cfg)
define service{
name passive_service
use generic-service
max_check_attempts 3
active_checks_enabled 0
passive_checks_enabled 1
normal_check_interval 5
retry_check_interval 1
notifications_enabled 1
notification_interval 5
notification_period 24x7
contact_groups admins
register 0
}
3)添加一个command
define command{
command_name check_dummy
command_line /usr/local/nagios/libexec/check_dummy ARG1
}
4)再定义一个本机的被动监控service:
define service{
use passive_service
host_name localhost #本机被动监控
service_description NSCA
check_command check_dummy!0
notifications_enabled 1
}
5、重启nagios ,启动nsca

客户端

1、用shell
cp src/nsca /usr/local/nagios/bin/
cp sample-config/nsca.cfg /usr/local/nagios/etc
chown nagios.nagios /usr/local/nagios/bin/nsca
chown nagios.nagios /usr/local/nagios/etc/nsca.cfg
cp init-script /etc/init.d/nsca
chmod a+x /etc/init.d/nsca
chkconfig –add nsca
安装完成,改下配置
server_address=xxx.xxx.xxx.xxx (这里务必使用对外表现的IP)
debug=1 (debug选项即log选项,写入message)
aggregate_writes=1 (能够支持更大的监控量,建议开启)
max_packet_age=60 (数据包过期时间,默认30s,但是考虑到网络因素建议设为60s)
password=xxxxxxx (密码,最基础的加密方式,也可以不设置)
测试使用:
echo “localhost;NSCA;0;testOK”|./send_nsca -H 127.0.0.1 -d “;” -c /root/send_nsca.cfg

2、用python
直接pip安装
pip install send_nsca
安装完成后,要在/etc/下添加nsca的配置文件
vi /etc/send_nsca.cfg
添加两行内容:
password=123456 #认证密码
encryption_method=3 #验证方式

3、用php
github上有个php_send_nsca:
github.com/Mizzrym/php_send_nsca
直接git clone 到本地,并修改一下配置文件即可使用

二、自动添加nsca服务

思路:nagios的每次事件都存储在nagios.log中,nsca的事件以’EXTERNAL COMMAND’为标记,写个守护进程不断扫描nagios.log文件,提取出关于nsca的事件内容,再对比nagios的主机服务配置文件,将有差异的部分进行配置,便实现了自动添加及修改nsca服务了。
根据这个思路,用Python写了个守护进程,测试正常运行,但对于高并发的情况下还为测试过。

你可能感兴趣的:(nagios的nsca被动模式及自动添加nsca服务)