nagios 高可用配置

默北 Nagiosnagios 高可用配置已关闭评论10,4981字数 2879阅读9分35秒阅读模式

本文主要来说下nagios如何实现高可用,监控至关重要的,能够及时的发现并报警,尽快通知相关人员处理。

需要配置两台nagios服务,配置几乎一样,同时运行,这会带来两个问题:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

1. 在网络上检测到的所有问题将触发通知的事件两次,这难以容忍的。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

2. 一切都将被检查两次,这在繁忙的网络下会有问题的。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

环境如下:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

nagios master: 10.0.100.125文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

nagios slave: 10.0.100.225文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

master和slave的nagios基本配置完全一样。下面是实现两者主备的配置。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

在master上:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

# cd /usr/local/nagios/libexec
# ./check_nagios -e 5 -F /usr/local/nagios/var/status.dat -C /usr/local/nagios/bin/nagios
NAGIOS OK: 1 process, status log updated 3 seconds ago
# vim /usr/local/nagios/etc/nrpe.cfg
command[check_nagios]=/usr/local/nagios/libexec/check_nagios -e 5 -F /usr/local/nagios/var/status.dat -C /usr/local/nagios/bin/nagios
allowed_hosts=127.0.0.1,10.0.100.225

在slave上:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

# cd /usr/local/nagios/libexec
# ./check_nrpe -H 10.0.100.125
NRPE v2.13
# ./check_nrpe -H 10.0.100.125 -c check_nagios
NAGIOS OK: 1 process, status log updated 2 seconds ago
# mkdir -p /usr/local/nagios/libexec/eventhandlers
# cd /usr/local/src/nagios
# cp contrib/eventhandlers/enable_notifications /usr/local/nagios/libexec/eventhandlers
# cp contrib/eventhandlers/disable_notifications /usr/local/nagios/libexec/eventhandlers
# cp contrib/eventhandlers/redundancy-scenario1/handle-masterhost-event /usr/local/nagios/libexec/eventhandlers
# cp contrib/eventhandlers/redundancy-scenario1/handle-masterproc-event /usr/local/nagios/libexec/eventhandlers
# sed -i 's/active_service_checks/notifications/g' /usr/local/nagios/libexec/eventhandlers/handlemaster-proc-event
# chown nagios.nagios /usr/local/nagios/libexec/eventhandlers/*
# chmod 0755 /usr/local/nagios/libexec/eventhandlers/*
# vim /usr/local/nagios/etc/objects/commands.cfg
define command {
	command_name handle-master-host-event
	command_line $USER1$/eventhandlers/handle-master-host-event $HOSTSTATE$ $HOSTSTATETYPE$ $HOSTATTEMPT$
}
define command {
	command_name handle-master-proc-event
	command_line $USER1$/eventhandlers/handle-master-proc-event $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$
}

define command {
	command_name check_nrpe
	command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

# vim /usr/local/nagios/etc/localhost.cfg
define host {
	use critical-host-template
	host_name 10.0.100.125
	alias nagios master
	address 10.128.0.11
	event_handler handle-master-host-event
}

define service {
	use critical-service-template
	host_name 10.0.100.125
	service_description NAGIOS
	check_command check_nrpe!check_nagios
	event_handler handle-master-proc-event
}

# vim /usr/local/nagios/etc/nagios.cfg
enable_notifications=0

告警通知将只能由master服务器发送,因为master一直启用了通知。但是,如果master出现故障或者其Nagios进程停止工作,事件处理程序就被调用,并且slave服务器上的通知将被启用。当master或Nagios的服务正常时,slave的通知将再次被禁用。两者之间持续不间断的检查状态的变化。因此,就实现了一个简单的一种冗余。在使用时,需要进行彻底测试,以确保两者在故障时能顺利切换并发送通知。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

handle-master-host-event宏变量解释:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

$HOSTSTATE$: 主服务器状态文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

$HOSTSTATETYPE$: 状态是SOFT 还是HARD文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

$HOSTATTEMPT$: 尝试检测次数,最大值为max_check_attempts值。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

handle-master-proc-event宏变量解释:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

$SERVICESTATE$: 主服务器上的nagios进程的状态文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

$SERVICESTATETYPE$: 服务的状态是SOFT 还是HARD文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

$SERVICEATTEMPT$: 尝试检测次数,最大值为max_check_attempts值文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

一般是当主机或服务进入 HARD CRITICAL状态时,事件处理程序调用的辅助脚本来进行下一步要进行的操作。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

如果网络带宽紧张的情况下,可以通过事件处理程序来开启或禁止slave进行主机或服务的检测,在这种情况下,需要将master和slave直接的数据进行同步。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-high-availability-configuration/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 09/06/2014 01:00:44
  • 转载请务必保留本文链接:https://www.ttlsa.com/nagios/nagios-high-availability-configuration/