Nagios 分布式监控的部署
由于数据中心不在同一个机房,或者是用一台nagios无法满足监控的需求,或者是两台以才能满足你的监控需求,这时就需要用nagios的分布式监控
分布式主要是分布式检测,集中式展现,集中式报警(当然也可以分布式报警)等
Nagios分布式分为两种:一是运用nagios项目中的一个插件nsca ,nsca收集nagios分布式节点上统计的信息,第二种方法是用ndo统一入库后在集中展示
Nagios分布式分析图如下
中心服务器和分布式服务器的比较
中心服务器的目标就是从一个或者多个分布式服务器收集服务检测结果,当然中心服务器偶尔也可以做些自主检测,但是自主检测更多知识在极端情况下才做的,因而可以认为中心服务器当前只做强制检测,
分布式服务才是真正的完成所划分出一组主机检测工作,而把检测的结果发送给中心服务器,此时分布式服务器并不需要web 接口
Nagio 分布式的配置
第一 在nagios中心服务器上配置nsca
1 解压nsca 并安装
# tar xvf nsca-2.7.2.tar.gz
#cd nsca-2.7.2
# ./configure && make all
2 拷贝nsca ,nsca.cfg 等文件到nagios对应的目录中
#cd sample-config
#cp nsca.cfg /usr/local/nagios/etc/
#cd ../src
#cp nsca /usr/local/nagios/bin/
3 修改文件所属主及所属组
# chown -R nagios.nagios /usr/local/nagios/bin/nsca
#chown –R nagios.nagios /usr/local/nagios/etc/nsca.cfg
4 配置nsca.cfg
#grep -v ^# nsca.cfg | grep –v ^$
pid_file=/var/run/nsca.pid
nsca的进程文件
server_port=5667
nsca 的端口号
server_address=192.168.2.194
#如果nagios 服务器有多块网卡时,绑定其监听的网卡
nsca_user=nagios
nsca_group=nagios
debug=0
command_file=/usr/local/nagios/var/rw/nagios.cmd
alternate_dump_file=/usr/local/nagios/var/rw/nsca.dump
aggregate_writes=0
append_to_file=0
max_packet_age=30
password=PASSWORD
#分布式服务器在发送数据包是必须用该密码加密
decryption_method=1
#选择解密数据包的方法,当然越是安全的加密方法,其消耗系统资源越多
5 在/etc/service 尾部添加nsca 对应的端口号
#vim /etc/service
nsca 5667nsca #NSCA
6 开启nsca进程
#/usr/local/nagios/bin/nsca -c /usr/local/nagios/etc/nsca.cfg –d
7 确认nsca 是否开启
# netstat –tunlp |grep nsca
第二,配置nagios的分布式节点的
1同样是解压并配置nsca,并拷贝相应的文件到nagios的对应的目录下面
#cd nsca-2.7.2
#cd sample-config
#cp send.nsca.cfg /usr/local/nagios/etc/
#cd ../src
#cp send.nsca /usr/local/nagios/bin
3 修改相应文件的所属主及所属组
#chown –R nagios .nagios /usr/local/nagios/etc/send.nsca.cfg
#chown –R nagios.nagios /usr/local/nagios/bin/send.nsca
4 配置send.nsca .cfg
#grep -v ^# send.nsca.cfg | grep –v ^$
password=PASSWORD
encryption_method=1
注:该两项必须要和nagios的中心服务器完全相同
第三 nagios中心服务器及分布式服务器的配置
Nagios中心服务端(即主服务器)
1 修改nagios的主配置文件
#cd /usr/local/nagios/etc
#vim nagios.cfg
并修改下面值
Check_external_commands=1
#此项是设定nagios 是否检测外部命令。默认是是不启用的,但是由于需要配合apache工作,如果你想启用cgi命令接口时,必须启动该项
accept_passive_service_checks=1
#此项是设定nagios在启动或者是重启时,是否将接受被动服务检测的结果。值1表示接受被动检测,值0表示拒绝被动检测。默认时是启动被动服务检测功能
accept_passive_h ost_checks=1
#此项设定nagios在启动或者是重启是是否会接受被动主机检测的结果。值是1时表示接受,值是0时表示拒绝
2 定义监控的对象,但是在此定义的监控对象必须和分布式服务器端定义的相同
例如:
define host{
host_name linux-server
use genert-host
address 192.168.2.2
passive_checks_enabled 1 #开启被动检测模式
active_checks_enabled 0 #关闭主服务端对该主机的主动检测
}
define service{
host_name linuxserver
use generic-service
service_description CPU load
#根据自己监控的对象进行描述
check_command check_load
#定义检测命令,根据自己的情况自己定义
check_freshness 1
#开启强制刷新策略,如果关闭时,只需把1改为0 就行
freshness_threshold 300
#主服务器强制刷新的时间,该项根据具体情况,具体定义
passive_checks_enabled 1
#开启被动检测模式
active_checks_enabled 0
#关闭主服务器(即中心服务器)动检测
}
第四nagios分布式服务器端的配置
1 修改nagios的主配置文件
#cd /usr/local/nagios/etc
#vim nagios.cfg
enabled_notifications=0
#此项设置的是当监控的对象的状态发生变化的时候,是否启动通知机制,当值等于1时,表示通知 ;当值等于0时,表示不通知;默认情况下是启动事件处理通知
obsess_over_service=1 #此项设置的是决定nagios 是否被服务检测迷惑并运
行之后定义的ocsp_command 命令,此项只在执行分布式检测是才启用,否则不 要轻易启用该项,当然默认是是不启用的,当值为1是是启用,值为0时是不启用
ocsp_command=submit_check_result #此命令是自己定义的命令,且该命令是在nagios的家目录下面的libexec 子目录下面; 该项是有nagios处理的,为每个服务检测而运行的命令。该命令仅当obsess_over_service选项的值设定为1时,此项执行有效;默认情况下是为空
obsess_over_hosts=1 #此项时设置nagios是否会迷惑主机检测并运行ochp_command 定义的命令,此项只在nagios的分布式监控时启用,否则不要启用该项,默认情况下是不启用的,当值为1时是启用,当值为0时是关闭
ochp_command=submit_check_result #此项设置的是 nagios检测每个运行的主机,仅当obess_over_host 选项设置为1时,该命令是自己设置的命令的名称
2 创建脚本submit_check_result
#vim submit_check_result
#!/bin/bash
#Arguments:
# $1 =host_name(short name of host that the service is
# associated with)
# $2= svc_description (Description of the service )
# $3= state_string(A string representing the status of
# the given service – “OK”,”Warning”,”CRITICAL”
# or “UNKNOWN”)
# $4= plugin_output ( A text string that should be used
# as the plugin output for the service checks _
#
# Convert the state string to the correspinding return code
return_code=-1
case “$3” in
;;
WARNING)
#!/bin/bash
#Arguments:
# $1 =host_name(short name of host that the service is
# associated with)
# $2= svc_description (Description of the service )
# $3= state_string(A string representing the status of
# the given service – “OK”,”Warning”,”CRITICAL”
# or “UNKNOWN”)
# $4= plugin_output ( A text string that should be used
# as the plugin output for the service checks _
#
# Convert the state string to the correspinding return code
return_code=-1
case “$3” in
OK)
return_code=0
;;
WARNING)
return_code=1
;;
CRITICAL)
return_code=2
;;
UNKNOWN)
return_code=-1
;;
esac
# pipe the service check info into the send_nsca program ,which
#in trun transmits the data to the nsca daemon on the central
# monitoring server
/usr/bin/printf “%s\t%s\t%s\t%s\n” “$1” “$2” “$return_code” “$4” | /usr/local/nagios/bin/send_nsca -H 192.168.2.194 -c /usr/local/nagios/etc/send_nsca.cfg
3 修改脚本的文件权限及所属主和所属组
#cd /usr/local/nagios/libexec
#chmod +x submit_check_result
#chown nagios.nagios submit_check_result
4 在command.cfg 中定义submit_check_result
#cd /usr/local/nagios/etc/objects
#vim command.cfg
define command {
command_name submit_check_result
command_line /usr/local/nagios/libexec/submit_check_result $HOSTNAME$ ‘$SERVICEDESC$’ $SERVICESTATE$ ‘$SERVICEOUTPUT$’
}
第五 nagios 刷新检测
注意的是在分布式上定义的监控对象同时也要在中心服务器上定义同样的监控对象;在定义中心服务器强制检测,但是中心服务器只用强制检测方式来做监控,但是完全有依赖于强制检测来的条件是nagios 必须依赖于其他东西来提供监控系统数据 如果发送强制检测结果的远程主机宕机,就无法检测远程主机是否存活
刷新检测的目的就是确保服务检测姚明可有分布式服务器以规格化的方式提供检测数据要么由其中心服务器在毕业情况下在建筑检测,如果分布式服务器所提供检测结果被判定为“过期” ,nagios 将被配置为自中心监控服务器强制地对那个服务发出自主检测
中心服务器上需要对那些分布式服务器所负责监控的服务作如下配置改动
服务对象定义里的check_freshness 选项设定为1 ,意味着开启针对该服务的“刷新检测” 特性
服务对象定义里的freshness_threshold 选项必须设定一个数值,且是以秒为单位,该值反应的是分布式服务器所提供的检测数据,是以多长时间提交一次,换句话说就是提交数据的频率是多少
如果没有指定服务对象里的freshness_threshold 未定义,nagios将会自动的限制一个刷新间隔 ,nagios要么是安装normal_check_inreval 要么是安装retry_check_interval 来计算
一定要记住在中心服务去的服务对象定义里知道check_command 选项以便进行从中心服务器发出自主服务检测命令。一般情况下,该检测命令不会被只能够(自主检测在程序层面是关闭的,或者在定义读服务对象里本身就关闭了自主检测) 当对结果刷新检测功能开启时。nagios将会运行自主检测命令,即使自主检测被程序层面关闭或者是服务对象里被关闭也会做自主检测
定义命令
define command{
command_name service-is-stale
command_line /usr/local/nagios/libexec/staleservice.sh
}
创建的脚本
#vim staleservice.sh
#!/bin/bash
/bin/echo “CRITICAL:Service results are stale!”
exit 2
当nagios 发现并判定服务检测的结果是过期的并运行service-is-stale 命令做自主测试 staleservice.sh 脚本将执行并返回一个紧急状态,通常情况下会发出故障通知
注:参照下面的blog
http://www.comeonsa.com/2010/08/nagios分布式配置/
http://nagios-cn.sourceforge.net/nagios-cn/profession.html
今天的文章nagios 分布式分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/66925.html