Zabbixで名前解決ができているかチェックする
こんにちは。
Zabbixで監視しているDNSサーバーで nslookup を使って名前解決が出来ているかチェックする仕組みを作ってみたので紹介します。
標準で準備されているのかと思いきやなかったので自作しました。
環境
- Zabbixサーバー 4.0.0-2
- Zabbixエージェント 5.5.0-0.4beta1
こんな人に使ってほしい
- すでにDNSサービス ( 53/tcp )の監視を行っている
- 監視している「1」のサーバーで正常に名前解決が出来るのか確認したい
※1. は動作要件として必須ではありません。
監視までの流れ
- Zabbixサーバーに監視用スクリプトを配置
- Zabbixサーバーで外部チェックでアイテムを登録する
- Zabbixサーバーでトリガーを設定する
Zabbixサーバー要件・チェックスクリプト仕様
- Zabbix サーバーで
nslookup
コマンドが利用できること - bash スクリプトで作成する
- ファイル名は
check_nslookup.sh
とする - チェック対象はホスト登録しているIPアドレスとする( ホストのエージェントインターフェースのIPアドレスです )
- チェック対象のFQDNは手書きする
- FQDN が名前解決できたら 1 を返す、解決できなければ 0 を返す
チェックスクリプト
check_nslookup.sh
#!/bin/bash
nslookup=`nslookup $1 $2`
result=0
if [[ $nslookup == *$1* ]]; then
result=1
echo $result
else
echo $result
fi
チェックスクリプトの配置
チェックスクリプトをZabbix サーバーの以下のパスに配置します。
/usr/lib/zabbix/externalscripts/check_nslookup.sh
ファイルのパーミッションは 0700
オーナーは zabbix
に設定します。
-rwx------ 1 zabbix zabbix 132 Jun 10 12:31 check_nslookup.sh
Zabbixサーバーの設定
- アイテムの作成
以下のようなアイテムを作成します。
- 名前:任意名
- タイプ:外部チェック
- キー:check_nslookup.sh[www.google.co.jp,{HOST.IP}]
※ www.google.co.jp
の部分はチェックする FQDN を入力してください
- データ型:数値(整数)
- 監視間隔:30s ※デフォルト
- ヒストリの保存期間:90d ※デフォルト
- トレンドの保存期間:365d ※デフォルト
- 有効:チェック
- トリガーの作成
以下のようなトリガーを作成します。
- 名前:任意名
- 深刻度:致命的な障害 ※適宜変更ください
- 条件式:{host1:check_nslookup.sh[www.google.co.jp,{HOST.IP}].last()}=0
- 正常イベント生成:条件式
- 障害イベント生成モード:単一
- 正常時のイベントクローズ:全ての障害
- 有効:チェック
以上で設定は完了です。
無事監視ができました。
あとがき
作成したきっかけは、BINDのアップデートなどを実施する都度、名前解決が出来ているかを手動でチェックするのは面倒だな、という思いからでした。
それでは次回の記事でお会いしましょう。