Nagios NSCA分布式监控的部署步骤

最近项目中有多个nat环境,如果在每个nat中部署一套完整的nagios(nagios-core apache php pnp4nagios)总感觉不是很理想,通知联系人的管理也不是很方便,那么接下来就一起开始部署nagios分布式监控。

主Nagios中心服务部署

一、安装nagios

这一步略过,具体不清楚的可以参考一键脚本:http://www.szl724.com/?p=scripts

二、安装nsca

这里我还是使用非常老的2.7.2版本,功能够用、稳定就行。

1、先运行如下命令:

# wget?http://download.chekiang.info/nagios/nsca-2.7.2.tar.gz
# tar zxvf nsca-2.9.1.tar.gz
# cd nsca-2.7.2
# ./configure
# make all

运行完成后会在src中生成几个文件,有可执行程序nsca、send_nsca,和一些配置文件、脚本。

# 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
# update-rc.d nsca defaults

因为我的是ubuntu系统,nsca服务脚本我去掉前面几行检查的语句,不然会报错。

2、修改nsca的配置文件

# vi /usr/local/nagios/etc/nsca.cfg
password=123456

3、修改nagios的配置文件

# vi /usr/local/nagios/etc/nagios.cfg
check_external_commands=1 # 配置nagios检查扩展命令
accept_passive_service_checks=1 # 配置接受被动服务检测的结果
accept_passive_host_checks=1 #配置接受被动主机检测的结果

4、检查没问题后重启nagios和启动nsca 。

到这里nsca接收数据的程序就部署好了。

分布服务器部署

一、安装nagios

这里只需要安装nagios-core即可,不需要安装其他组件。

二、安装nsca-send

1、和主的一样,先运行如下命令:

# wget?http://download.chekiang.info/nagios/nsca-2.7.2.tar.gz
# tar zxvf nsca-2.9.1.tar.gz
# cd nsca-2.7.2
# ./configure
# make all

以上步骤检查正确执行以后会在src目录下生成两个程序?nsca?send_nsca(主程序),sample-config中会有nsca.cfg与send_nsca.cfg(配置文件)。

2、修改配置文件

# cp src/send_nsca /usr/local/nagios/bin/
# cp sample-config/send_nsca.cfg /usr/local/nagios/etc/
# chown nagios.nagios /usr/local/nagios/bin/send_nsca
# chown nagios.nagios /usr/local/nagios/etc/send_nsca.cfg

修改send_nsca.cfg配置,改下密码。

# vi /usr/local/nagios/etc/send_nsca.cfg
password=123456

这里的密码需要和主的一样。

3、修改nagios配置文件

enable_notifications=0 //阻止它直接送出任何通知信息 
obsess_over_services=1 // 配置为强迫型服务(obsess over services)类型 
ocsp_command=submit_service_check_result //定义一个强迫型服务处理(ocsp)命令 
obsess_over_hosts=1 // 配置为强迫型服务(obsess over host)类型 
ochp_command=submit_host_check_result //定义一个强迫型主机处理(ochp)命令

4、添加ocsp命令

在添加submit_service_check_result命令的时候需要加上perfdata数据,这样nagios接受到数据后pnp4nagios才可以生成图片。

# vi command.cfg
define command{
    command_name submit_service_check_result
    command_line $USER1$/eventhandlers/submit_service_check_result $HOSTNAME$ \'$SERVICEDESC$\' $SERVICESTATE$ \'$SERVICEOUTPUT$ | $SERVICEPERFDATA$ [$SERVICECHECKCOMMAND$]\'
}
define command{
    command_name submit_host_check_result
    command_line $USER1$/eventhandlers/submit_host_check_result $HOSTNAME$ $HOSTSTATE$ \'$HOSTOUTPUT$\'
}

5、添加命令脚本

# mkdir /usr/local/nagios/libexec/eventhandlers
# cd /usr/local/nagios/libexec/eventhandlers
# wget https://raw.githubusercontent.com/zhangnq/nagios/master/setup/submit_host_check_result
# wget https://raw.githubusercontent.com/zhangnq/nagios/master/setup/submit_service_check_result
# chmod  x /usr/local/nagios/libexec/eventhandlers/submit_host_check_result
# chmod  x /usr/local/nagios/libexec/eventhandlers/submit_service_check_result

修改submit_host_check_result和submit_service_check_result两个脚本中的中心nagios监控主机ip或域名,即修改www.chekiang.info为你自己的地址。

6、检查没问题后有启动nagios。

添加监控主机和服务

添加监控的时候需要注意:

1、中心服务器和分布服务器都需要添加监控的主机和服务。

2、中心服务器主机定义的host_name值需要和分布服务器主机定义的host_name值一致。

3、中心服务器服务定义的service_description值需要和分布服务器服务定义的service_description 值一致。

一、分布服务器

分布服务器的配置增加和主动监控一样,先添加host,然后添加server即可。

二、中心服务器

根据以上提到的注意事项,原则是中心服务器需要和分布服务器的host_name和service_description一样。这样数据才可以在主的nagios中显示。

1、增加passive模式的主机和服务模板

修改templates.cfg 文件,增加类似如下内容:

# vi /usr/local/nagios/etc/objects/templates.cfg
define host{
        name                            passive-host
        use                             generic-host
        check_period                    24x7
        check_interval                  5
        retry_interval                  1
        max_check_attempts              10
        check_command                   check-host-alive
        notification_period             24x7
        notification_interval           60
        notification_options            d,u,r
        contact_groups                  sysmaint
        register                        0
        check_freshness                 1		;定义强制刷新检测
        freshness_threshold             600		;指定服务检测结果应该在何时间内刷新,单位是s
        passive_checks_enabled          1		;打开被动检测
        active_checks_enabled           0		;关闭主动监测
}
define service{
        name                            passive-service
        use                             generic-service
        active_checks_enabled           0		;关闭主动监测
        passive_checks_enabled          1		;打开被动检测
        flap_detection_enabled          0		;关闭状态抖动检测
        check_freshness                 1		;定义强制刷新检测
        freshness_threshold             600		;指定服务检测结果应该在何时间内刷新,单位是s
        max_check_attempts              4
        normal_check_interval           5
        retry_check_interval            1
        register                        0
        check_command                   service-is-stale	;定义强制检测的执行命令
}

2、增加强制检测命令

添加脚本

# vi /usr/local/nagios/libexec/staleservice.sh
#!/bin/bash

/bin/echo \"CRITICAL: Service results are stale!\"
exit 2
# chmod  x /usr/local/nagios/libexec/staleservice.sh

添加命令

# vi /usr/local/nagios/etc/objects/commands.cfg
define command{
        command_name    service-is-stale
        command_line    $USER1$/staleservice.sh
}

3、添加主机和服务

复制分布服务器中的hosts和servers到nagios中心服务器中,修改定义主机中的use模板为定义的passive-host,之前默认一般为linux-server,修改定义服务器中的use模板为定义的passive-service,取消check_command值的定义。类似如下:

define host{
        use             passive-host
        host_name       10.22.127.100
        alias           10.22.127.100
        address         10.22.127.100
}
define service{
        use                     passive-service,srv-pnp
        host_name               10.22.127.100
        service_description     check ssh login
}

4、检查重启

添加完成后检查nagios配置是否正确,然后重启。

5、日志

日志一般是在/usr/local/nagios/var/nagios.log中,正常的话显示如下,如果配置有问题也可以通过日志查找原因。

总结

nagios分布式监控服务可以把不同网络环境的主机添加到一个主的监控平台。使用主动监控模式,随着监控主机的增加,服务器对性能的要求会越来越高,分布式可以有效降低服务器压力。不过nagios nsca分布式模式维护比较麻烦,需要维护多个nagios配置文件。

参考连接:

http://5122542.blog.51cto.com/5112542/1036064

https://docs.pnp4nagios.org/pnp-0.6/advanced

西部数码(west.cn)是经工信部、ICANN、CNNIC认证的全球顶级域名注册服务机构,是中国五星级域名注册商!有超过2000万个域名通过西部数码注册并管理,超过100万个网站托管在西部数码云服务器虚拟主机。西部数码支持数十个顶级域名的注册与管理,支持批量查询、批量注册、批量解析、智能解析、批量过户等便捷好用的功能,拥有非常好的使用体验。
目前,西部数码域名注册正在特价,最低仅需1元!
更多详情请见:https://www.west.cn/services/domain/

西部数码域名抢注预定,支持抢注各类高价值老域名,支持“建站历史、百度收录、百度权重、历史外链、百度评价、搜狗反链”等综合检索功能,共计26项!可快速精准定位到您想要定位到的各类精品域名!同时,西部数码域名抢注集成了全球多个抢注商(近200个抢注商,还将陆续增加),整理出13条抢注通道,从根本上提升了抢注成功率!
其中,1号通道,实测抢注成功率高达99% 。每天西部数码预释放功能还会释放若干优质过期域名,可以直接抢注竞拍。
赶紧预订抢注心仪的优质域名吧:https://www.west.cn/booking/

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » Nagios NSCA分布式监控的部署步骤

登录

找回密码

注册