Ìܼ¡
³µÍ× †
ZABBIX¤Ë¤ÆDHCP¤Î±þÅú´Æ»ë¤ò¹Ô¤¦¼ê½ç¡£
ZABBIX¤Îɸ½àµ¡Ç½¤Ç¤Ï´Æ»ë½ÐÍè¤Ê¤¤¤³¤È¤«¤é¡¢dhcping¥³¥Þ¥ó¥É¤òƳÆþ¤·¤Æ´Æ»ë¤ò¹Ô¤¦¡£
dhcping¤Î½ÐÎϤò´ÉÍý¤¹¤ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤ÆZABBIX¥µ¡¼¥Ð¾å¤ËÇÛÃÖ¤·¡¢ZABBIX¥µ¡¼¥Ð¤«¤éDHCP¤Î±þÅú¤ò³Îǧ¤¹¤ë¡£
´Ä¶¾ðÊó †
OS | CentOS 5.5 |
ZABBIX | ZABBIX 1.8.15 |
dhcping | dhcping-1.2-2.el5 |
dhcping¤Î¥¤¥ó¥¹¥È¡¼¥ë †
°Ê²¼¤Î¥µ¥¤¥È¤è¤ê»ÈÍѤ¹¤ë´Ä¶¤ËŬ¤·¤¿dhcping¤ÎRPM¥Ñ¥Ã¥±¡¼¥¸¤ò¼èÆÀ¤¹¤ë¡£
http://rpmfind.net/linux/rpm2html/search.php?query=dhcping
°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ë¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¡£
rpm -ivh dhcping-1.2-2.el5.i386.rpm
dhcping¤Î¼Â¹Ô¤Ë¤Ïroot¸¢¸Â¤¬É¬Íפʤ¿¤á¡¢ZABBIX¾å¤«¤é¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¡¢sudo¤ÎÀßÄê¤ò¹Ô¤¦¡£
# visudo
- ËöÈø¤ËÄɲÃ
zabbix ALL=(root) NOPASSWD: /usr/bin/dhcping
¥¹¥¯¥ê¥×¥È¤ÎÇÛÃÖ †
¸å½Ò¤Î¥¹¥¯¥ê¥×¥È¡Êdhcp-check.sh¡Ë¤òZABBIX¤¬¼Â¹Ô²Äǽ¤Ê²Õ½ê¤ËÇÛÃÖ¤¹¤ë¡£
¡Ê/usr/local/zabbix/bin/dhcp/dhcp-check.sh¤ËÇÛÃÖ¤¹¤ë¤â¤Î¤È¤¹¤ë¡Ë
ZABBIX¤ÎÀßÄêÊѹ¹ †
DHCP¤¬±þÅú¤·¤Ê¤¤¥Û¥¹¥È¤ËÂФ·¤Ædhcping¤ò¼Â¹Ô¤·¤¿¾ì¹ç¡¢±þÅú¤Ë»þ´Ö¤¬¤«¤«¤êZABBIX¤Î¥¿¥¤¥à¥¢¥¦¥È¤Þ¤Ç¤Ë²óÅú¤¬ÆÀ¤é¤ì¤Ê¤¤²ÄǽÀ¤¬¤¢¤ë¡£¤³¤Î¤¿¤á¡¢ZABBIX¤Î¥¿¥¤¥à¥¢¥¦¥ÈÀßÄê¤ò±äŤ¹¤ë¤³¤È¤ÇÂн褹¤ë¡£¡ÊÀßÄêÃͤϴĶ¤Ë¤è¤ê°Û¤Ê¤ë¤¿¤á»²¹ÍÄøÅÙ¡Ë
- /etc/zabbix/zabbix_server.conf
¡ÚÊѹ¹Á°¡Û## Option: Timeout #Timeout=3
¡ÚÊѹ¹¸å¡Û## Option: Timeout Timeout=8
- /etc/zabbix/zabbix_agentd.conf
¡ÚÊѹ¹Á°¡Û## Option: Timeout #Timeout=3
¡ÚÊѹ¹¸å¡Û## Option: Timeout Timeout=5
ZABBIX¤Ø¤ÎÅÐÏ¿ †
¥Û¥¹¥ÈÅÐÏ¿ †
DHCP¤Î±þÅú³Îǧ¤ò¹Ô¤¦¥Û¥¹¥È¤òºîÀ®¤¹¤ë¡£
ºîÀ®¤¹¤ë¥Û¥¹¥È¤Ï¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë¥µ¡¼¥Ð¤Î¥¢¥É¥ì¥¹¤òÅÐÏ¿¤¹¤ëɬÍפ¬¤¢¤ë¡£
¥¹¥¯¥ê¥×¥È¤òZABBIX¥µ¡¼¥Ð¤ËÇÛÃÖ¤¹¤ë¾ì¹ç¡¢¥Û¥¹¥È¤ÏZABBIX¥µ¡¼¥Ð¤ÎIP¥¢¥É¥ì¥¹¡¢¥Û¥¹¥È¥Þ¥¯¥í¤ËDHCP¥µ¡¼¥Ð¤ÎIP¥¢¥É¥ì¥¹¤òÀßÄꤹ¤ë¡£
- ¥Û¥¹¥ÈÀßÄê
̾Á° ¡ÚǤ°Õ¡Û IP¥¢¥É¥ì¥¹ ¡ÚZABBIX¥µ¡¼¥Ð¤ÎIP¡Û ¥Þ¥¯¥í {$DHCP.IP}=¡ÚDHCP¥µ¡¼¥Ð¤Î¥¢¥É¥ì¥¹¡Û
¥¢¥¤¥Æ¥àÀßÄê †
¥¢¥¤¥Æ¥à¤Ï¥Û¥¹¥È¥Þ¥¯¥í¤ò»²¾È¤¹¤ë¹½Â¤¤ÇºîÀ®¤¹¤ë¡£
- ¥¢¥¤¥Æ¥àÀßÄê
ÀâÌÀ DHCP alive check ¥¿¥¤¥× Zabbix¥¨¡¼¥¸¥§¥ó¥È ¥¢¥¤¥Æ¥à¥¡¼ system.run[/home/system/script/apl/zabbix/dhcp/dhcp-check.sh {$DHCP.IP},] ¥Ç¡¼¥¿·¿ ¿ôÃÍ¡ÊÀ°¿ô¡Ë ¥Ç¡¼¥¿·Á¼° 10¿Ê¿ô
¥È¥ê¥¬¡¼ÀßÄê †
¥¹¥¯¥ê¥×¥È¤ÎÊÖÃͤ˱þ¤¸¤¿¥È¥ê¥¬¡¼¤òºîÀ®¤¹¤ë¡£
¥Æ¥ó¥×¥ì¡¼¥È²½¤¹¤ëºÝ¤Ë¤Ï3.¤Î¤ß¤ò½é´ü¾õÂÖ¤«¤é͸ú¤ËÀßÄꤷ¡¢¥Û¥¹¥È¤Ø¤Î¥Æ¥ó¥×¥ì¡¼¥ÈŬÍѸå¤Ë´Ä¶¤Ë±þ¤¸¤Æ1. or 2.¤ò͸ú¤Ë¤¹¤ë¡£
- 1. DHCP¤Î±þÅú¤Ê¤·¤ò¸¡ÃÎ
DHCP¥µ¡¼¥Ð¤ÎÄä»ß¤Ê¤É¤ò¸¡ÃΤ¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
̾Á° DHCP¤«¤é±þÅú¤¬¤¢¤ê¤Þ¤»¤ó ¾ò·ï¼° {system.run[/home/system/script/apl/zabbix/dhcp/dhcp-check.sh {$DHCP.IP},].last(0)}=1 ¥¤¥Ù¥ó¥ÈÀ¸À® ¥Î¡¼¥Þ¥ë ¿¼¹ïÅÙ ½ÅÅ٤ξ㳲
- 2. DHCP¤Î±þÅú¤¢¤ê¤ò¸¡ÃÎ
ËÜÍèDHCP¤Ë±þÅú¤·¤Ê¤¤¥¢¥É¥ì¥¹¤«¤é¤Î±þÅú¤ò¸¡ÃΤ¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
̾Á° DHCP¤«¤é±þÅú¤¬¤¢¤Þ¤¹ ¾ò·ï¼° {system.run[/home/system/script/apl/zabbix/dhcp/dhcp-check.sh {$DHCP.IP},].last(0)}=0 ¥¤¥Ù¥ó¥ÈÀ¸À® ¥Î¡¼¥Þ¥ë ¿¼¹ïÅÙ ½ÅÅ٤ξ㳲
- 3. ´Æ»ë¥¹¥¯¥ê¥×¥È¤ÎÀßÄê°Û¾ï¸¡ÃÎ
¥¹¥¯¥ê¥×¥È¤Î°ú¿ô¤Ê¤É¤Î°Û¾ï¤ò¸¡ÃΤ¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£
̾Á° DHCP´Æ»ë¤ÎÀßÄê¤Ë¸í¤ê¤¬¤¢¤ê¤Þ¤¹ ¾ò·ï¼° {system.run[/home/system/script/apl/zabbix/dhcp/dhcp-check.sh {$DHCP.IP},].last(0)}=2 ¥¤¥Ù¥ó¥ÈÀ¸À® ¥Î¡¼¥Þ¥ë ¿¼¹ïÅÙ ½ÅÅ٤ξ㳲
¥¹¥¯¥ê¥×¥È¡Êdhcp-check.sh¡Ë †
Âè°ì°ú¿ô¤ËÅϤµ¤ì¤¿IP¥¢¥É¥ì¥¹¤ËÂФ·¤Ædhcping¤ò¼Â¹Ô¤·¡¢·ë²Ì¤Ë¤è¤ê²¼µ¤ÎÊÖÃͤò½ÐÎϤ¹¤ë¥¹¥¯¥ê¥×¥È¡£
ÊÖÃÍ | °ÕÌ£ |
0 | DHCP¥µ¡¼¥Ð¤«¤é¤Î±þÅú¤¢¤ê |
1 | DHCP¥µ¡¼¥Ð¤«¤é¤Î±þÅú¤Ê¤· |
2 | ¥¹¥¯¥ê¥×¥È°ú¿ô¤Ë°Û¾ï¤¢¤ê |
¥½¡¼¥¹ †
#!/bin/sh # -------------------------- # DHCP Check # -------------------------- # Version : 1.0 # date : 2013/02/13 export LANG=C export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH # Set SCRIPTNAME="dhcp-check.sh" DHCPING="/usr/bin/dhcping" LOG="/home/system/logs/zabbix/dhcp-check.log" # Check if [ -x !$DHCPING ]; then echo "ERR : dhcping not found" >> $LOG echo "2" exit 1 fi if [ -z $1 ]; then echo "ERR : DHCP Server unknown" >> $LOG echo "2" exit 1 else DHCPSERVER=$1 fi # Execute DHCPCHECK=`sudo $DHCPING -s $DHCPSERVER 2>&1` echo $DHCPING" -s "$DHCPSERVER >> $LOG echo $DHCPCHECK | grep -v "no answer" | grep "Got answer from:" >> $LOG #> /dev/null if [ $? -eq 0 ]; then echo "INFO : DHCP alive" >> $LOG echo "0" exit 0 else echo "INFO : DHCP not alive" >> $LOG echo "1" exit 1 fi # EOF