目次~
#contents

**概要 [#z5718714]
ZABBIXにてDHCPの応答監視を行う手順。~
ZABBIXの標準機能では監視出来ないことから、dhcpingコマンドを導入して監視を行う。~
dhcpingの出力を管理するスクリプトを作成してZABBIXサーバ上に配置し、ZABBIXサーバからDHCPの応答を確認する。~

**環境情報 [#zd0c1d6e]
|OS|CentOS 5.5|
|ZABBIX|ZABBIX 1.8.15|
|dhcping|dhcping-1.2-2.el5|

**dhcpingのインストール [#sff4b9e6]
以下のサイトより使用する環境に適した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


**スクリプトの配置 [#o6c721e8]
後述のスクリプト(dhcp-check.sh)をZABBIXが実行可能な箇所に配置する。~
(/usr/local/zabbix/bin/dhcp/dhcp-check.shに配置するものとする)~

**ZABBIXへの登録 [#hacf8a23]
***ホスト登録 [#b1a89ab0]
DHCPの応答確認を行うホストを作成する。~
作成するホストはスクリプトを実行するサーバのアドレスを登録する必要がある。~
スクリプトをZABBIXサーバに配置する場合、ホストはZABBIXサーバのIPアドレス、ホストマクロにDHCPサーバのIPアドレスを設定する。~
~
-ホスト設定
|名前|【任意】|
|IPアドレス|【ZABBIXサーバのIP】|
|マクロ|{$DHCP.IP}=【DHCPサーバのアドレス】|

***アイテム設定 [#rd4e426c]
アイテムはホストマクロを参照する構造で作成する。~

|説明|DHCP alive check|
|タイプ|Zabbixエージェント|
|アイテムキー|system.run[/home/system/script/apl/zabbix/dhcp/dhcp-check.sh {$DHCP.IP},]|
|データ型|数値(整数)|
|データ形式|10進数|


***トリガー設定 [#t0d6b134]
スクリプトの返値に応じたトリガーを作成する。~
テンプレート化する際には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) [#ce4bb55b]
第一引数に渡されたIPアドレスに対してdhcpingを実行し、結果により下記の返値を出力するスクリプト。~

|返値|意味|
|0|DHCPサーバからの応答あり|
|1|DHCPサーバからの応答なし|
|2|スクリプト引数に異常あり|


***ソース [#q51ada49]
 #!/bin/sh
 # --------------------------
 #  DHCP Check
 # --------------------------
 # Version : 1.0
 # date    : 2013/02/13
 
 export LANG=C
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
 
 # Set
 DHCPING="/usr/bin/dhcping"
 LOG="/var/log/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 "Got answer from:" > /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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS