Nagiosでドメイン有効期限を監視する
Contents
「ドメインの残り有効期限を取得するシェルスクリプト」で紹介したスクリプトを Nagios から使用できるようにしてみました。
これは何をするもの?
Nagios からドメインの有効期限を監視します。今のところ .com にしか対応していません。作業完了後のイメージはこんな感じです:
Nagiosプラグインの仕様
ここでNagiosプラグインの仕様がまとめられています。簡単にまとめると次のようになります:
- リターンコード 0: OK
- リターンコード 1: Warning
- リターンコード 2: Critical
- リターンコード 3: Unknown
- 最低1行は標準出力に何か出力すること
スクリプト
「ドメインの残り有効期限を取得するシェルスクリプト」で作成したスクリプトを修正して、適切なリターンコードを返すように修正しました:
#!/bin/bash ######################################## # Name: Kazuhiro MUSASHI # # about: # # Usage: # # Author: # Date: ######################################## set -e # Constants WHOIS='/usr/bin/whois' # Thresholds WARNINGS=60 CRITICAL=30 # Return Codes OK=0 WARN=1 CRIT=2 UNKNOWN=3 # Check the number of the arguments if [ $# -ne 1 ]; then exit ${UNKNOWN} fi DOMAIN=$1 # Check the specified domain name if [ ! ${DOMAIN##*.} == "com" ]; then echo "Specify the .com domain name." exit ${UNKNOWN} fi # Check whether the whois command exists or not if [ ! -x ${WHOIS} ]; then echo "${WHOIS} command does not exist." exit ${UNKNOWN} fi # Execute the whois command EXPIRE=`${WHOIS} ${DOMAIN} | grep Expiration | tail -n 1 | cut -f 3 -d " "` # Convert the expiration date into seconds EXPIRE_SECS=`date +%s --date=${EXPIRE}` # Acquire the now seconds CURRENTDATE_SEC=`date +%s` # Calculate the remaining days ((DIFF_SEC=EXPIRE_SECS-CURRENTDATE_SEC)) REMAIN_DAYS=$((DIFF_SEC/86400)) # OK case if [ ${REMAIN_DAYS} -ge ${WARNINGS} ]; then echo "The domain will be expired in ${REMAIN_DAYS} days." exit ${OK} # Warning case elif [ ${REMAIN_DAYS} -ge ${CRITICAL} ]; then echo "The domain will be expired in ${REMAIN_DAYS} days." exit ${WARN} # Critical case elif [ ${REMAIN_DAYS} -lt ${CRITICAL} ]; then echo "The domain will be expired in ${REMAIN_DAYS} days." exit ${CRIT} fi echo "The script should not end at this point." exit ${UNKNOWN}
私は作成したスクリプトを /usr/loca/bin/ 配下に配置しました。
commnds.cfgの編集
Nagiosのcommands.cfgに以下の行を追加します:
+# 'check_domain' command definition +define command{ + command_name check_domain + command_line /usr/local/bin/check_domain $ARG1$ + }
監視サービスの追加
監視設定を記述している設定ファイルに例えば以下の行を追加します:
+define service{ + use generic-service + host_name sakura-vps + service_description domain + check_command check_domain!kazu634.com + check_interval 1440 + }
後は「sudo service nagios reload」などのコマンドを実行し、Nagios設定ファイルをリロードしてください。
参考
Nagios統合監視[実践]リファレンス (Software Design plus)
posted with amazlet at 13.01.27
株式会社エクストランス 佐藤 省吾 Team-Nagios
技術評論社
売り上げランキング: 53,459
技術評論社
売り上げランキング: 53,459