转载本博客文章请注明,转载自:小明明's à domicile ()
本文地址: http://www.dongwm.com/archives/nagios%e6%b7%b1%e5%85%a5%e8%bf%9b%e9%98%b6%e4%b9%8b%e5%9b%9b%ef%bc%9a%e4%b8%bb%e4%bb%8e%e9%85%8d%e7%bd%ae%e7%9a%84%e5%90%8c%e6%ad%a5/

继实现冗余nagios服务器后,我们要保证nagios配置文件的相同,不能每次都在改动“主”nagios后都也去更改“从”nagios。因为重载/etc/init.d/nagios脚本才能使配置生效,所以我将同步的命令写在了这个脚本里,在reload和restart里引用这个 function(只有能使用这2个参数时候说明配置是正确的,才需要同步信息)
function sync_conf()
{
sed -i 's/master/slave/g' /opt/nagios/etc/objects/commands.cfg
sed -i 's/M/S/g'  /opt/nagios/bin/ssms.sh
rsync -azvh  --progress  --exclude-from=/opt/nagios/etc/exclude --delete /opt/nagios/etc/objects/ sys00:/ opt /nagios/etc/objects 2>&1 >/dev/null
if [ "$?" == "0" ];then
action "sync conf to slave..."  /bin/true
fi
sed -i 's/slave/master/g' /opt/nagios/etc/objects/commands.cfg
sed -i 's/S/M/g'  /opt/nagios/bin/ssms.sh
}

注:其中的ssms.sh是我们的短信网关的脚本;

其中master/slave和M/S的sed替换,是因为短信内容变量的设置,同步时需要修改相关内容分辨发送短信的服务器名称;

其中的–exclude-from=/opt/nagios/etc/exclude,是主从nagios配置不同的地方,需要排除防止删除,这个配置文件里面的内容作用是主从nagios服务器对对方状态的报警。