DHCPの応答監視 のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- DHCPの応答監視 へ行く。
- 1 (2013-02-13 (水) 16:55:09)
- 2 (2013-02-14 (木) 11:01:33)
目次
概要 †
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の応答確認を行うホストを作成する。
作成するホストはスクリプトを実行するサーバのアドレスを登録する必要がある。
スクリプトを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 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