一 在Nagios配置文件templates.cfg 定義監(jiān)控主機(jī)模板和監(jiān)控service 模板,這樣在定義監(jiān)控對(duì)象時(shí)直接繼承模板中的監(jiān)控策略,而不需要在每定義一個(gè)監(jiān)控對(duì)象時(shí),而重新需要
創(chuàng)新互聯(lián)建站是一家專業(yè)提供光明企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為光明眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
定義監(jiān)控策略
#vim usr/local/nagios/etc/object/templates.cfg 在其尾部添加如下內(nèi)容
1 定義主機(jī)模板
define host { #模板名稱 name etnet #該模板的父模板 use generic-host #最大嘗試次數(shù) max_check_attempts 3 #正常檢測(cè)的時(shí)間間隔 normal_check_interval 3 #當(dāng)檢測(cè)到監(jiān)控對(duì)象不在線時(shí),嘗試檢測(cè)的次數(shù) retry_check_interval 1 #監(jiān)測(cè)的時(shí)間段7X24 check_period 24x7 #報(bào)警的時(shí)間段 notification_period 24x7 #報(bào)警的時(shí)間間隔,如果是短信報(bào)警的換,意思就是說多長(zhǎng)時(shí)間用短信通知系統(tǒng)管理員一次 notification_interval 60 #當(dāng)監(jiān)控對(duì)象出現(xiàn)什么樣的狀態(tài)時(shí)發(fā)短信通知您 notification_options d,r,u,f #監(jiān)測(cè)命令 check_command check-host-alive #聯(lián)系人 contact_groups admins register 0 } 注: Notification_options d ,r,u,f d 代表當(dāng)監(jiān)控對(duì)象出現(xiàn)down 是發(fā)送通知 r 當(dāng)監(jiān)控對(duì)象recoveries 時(shí)發(fā)送通知 f 當(dāng)主機(jī)啟動(dòng)或者停機(jī)時(shí)發(fā)送通知 u 當(dāng)有unreachable 狀態(tài)時(shí)發(fā)送通知
例如 定義主機(jī) #定義主機(jī)組 define hostgroup{ hostgroup_name MySQL alias mysql-group #該組的成員 members linux141,linux134 } define host { #繼承etnet模板 use etnet host_name linux141 alias mysql41 address 192.168.3.141 }
2 定義service 模板
###define service### define service { # 定義service的名稱 name tomcat use generic-service max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_period 24x7 notification_interval 60 notification_options w,u,c,f contact_groups admins register 0 } 注: notification_options w,u,c,f C 代表critival 狀態(tài)時(shí)發(fā)送通知 同主機(jī)模板中代表的含義是相同的 例如 define hostgroup{ hostgroup_name Memcached alias Memcache members Memcache137 } define host { use etnet host_name Memcache137 alias linux137 address 192.168.3.137 } define service{ use tomcat host_name Memcache137 service_description CPU Load check_command check_nrpe!check_load } 注:一般情況先定義監(jiān)控service 時(shí),是離不開定義host的
二 為防止nagios服務(wù)器出現(xiàn)down ,實(shí)現(xiàn)的nagios的高可用性,即是nagios的失效性監(jiān)控,當(dāng)nagios master 出現(xiàn)down,nagios slave 能夠主動(dòng)接替nagios master
1 要在nagios Master 的服務(wù)器的nrpe 主配置文件定義一下,命令,以便遠(yuǎn)程能夠執(zhí)行進(jìn)行對(duì)nagios的健康監(jiān)測(cè) [check_nagios]=/usr/local/nagios/libexec/ check_nagios -e 5 -F /usr/local/nagios/var/status.log -C /usr/local/nagios/bin/nagios 2 在nagios Slave 服務(wù)器上創(chuàng)建腳本如下 #cat /usr/local/nagios/libexec/check_nagios_service #!/bin/bash AWK=/bin/awk CUT=/bin/cut SED=/bin/sed GREP=/bin/grep ## ##set monitor nagios status log echo "`/bin/date +%Y-%m-%d-%H:%M:%S` The nagios Master status is $STATUS">>$NAGIOS_DIR/var/monitor.log NAGIOS=($( grep "SLAVE" /usr/local/nagios/etc/nagios.cfg | grep -v '^#' | awk -F/ '{print $NF}')) case $STATUS in OK) if [ "$NAGIOS" = "SLAVE" ] then $SED -i '/SLAVE$/d' $NAGIOS_DIR/etc/nagios.cfg /sbin/service nagios restart >>/dev/null 2>&1 else exit 0 fi ;; CRITICAL) if [ "$NAGIOS" != "SLAVE" ] then echo -e "#monitor nagios service ,and take the places of nagios,SLAVE">>$NAGIOS_DIR/etc/nagios.cfg echo "cfg_dir=/usr/local/nagios/etc/objects/SLAVE">>$NAGIOS_DIR/etc/nagios.cfg fi #nagios restart /sbin/service nagios restart >>/dev/null 2>&1 ;; refused) exit 1 esac
3 在nagios slave 上的服務(wù)器上添加工作任務(wù),當(dāng)然這可以根據(jù)自己的要求來對(duì)nagios Master的 健康監(jiān)測(cè)的時(shí)間間隔
#crontab -e #*/1 * * * * /usr/local/nagios/libexec/check_nagios_service