Nagios の check_domain を改造。

ドメインのうっかり失効を監視したくて Nagios に監視させたい。

MonitoringExchange.orgchange_domain を見つけたんですが、末尾 jp ドメインに対応していない。(日本語ドメインには対応してた。『ほげほげ.org』とか)

試しにこんな感じ。日本語『ほげほげ.org』取得できますね。


[furuyama@nagios check_domain]$ ./check_domain_org -d ほげほげ.org
CRITICAL - Domain expired on 03-Mar-2007 00:00:00 UTC


で『 jp ドメイン』検索できるように改造。


[furuyama@nagios check_domain]$ diff -Nur ~/svn/check_domain/check_domain_org ~/svn/check_domain/check_domain
--- /home/furuyama/svn/check_domain/check_domain_org    2009-06-18 14:43:06.000000000 +0900
+++ /home/furuyama/svn/check_domain/check_domain    2009-06-19 18:25:10.000000000 +0900
@@ -57,7 +57,24 @@
 fi
 
 # Calculate days until expiration
-expiration=`whois $domain |grep "Expiration Date:"| awk -F"Date:" '{print $2}'|cut -f 1`
+# for ".jp"
+chk=`echo $domain | grep -qi ".jp$"`
+if [ $? = 0 ]
+then
+    # for ".co.jp"
+    chk_jp=`echo $domain | grep -qi "co.jp$"`
+    if [ $? = 0 ]
+    then
+        expiration=`whois $domain |grep "\[State\]" | awk -F"Connected" '{print $2;}' | sed -e "s/^ (//" | sed -e "s/)$//"`
+    # 他のをチェックするなら
+    else
+    # 
+        expiration=`whois $domain |grep "\[Expires on\]"| awk -F"]" '{print $2;}'  |sed -e "s/^ *//"`
+    fi
+else
+# ".jp" 以外
+   expiration=`whois $domain |grep "Expiration Date:"| awk -F"Date:" '{print $2}'|cut -f 1`
+fi
 expseconds=`date +%s --date="$expiration"`
 nowseconds=`date +%s`
 ((diffseconds=expseconds-nowseconds))


末尾 jp でチェックしてさらに、co.jp かどうか確認。

12 時間に 1 回チェックするように、Nagios 設定。


こんな感じで日本語 OK。ちょw『ほげほげ.jp』取得済み。


[furuyama@nagios check_domain]$ ./check_domain -d ほげほげ.jp
OK - Domain will expire in 144 days


しばらくは大丈夫だったんですが、更新したはずのドメインが『更新期限が近いですよー!』とアラートが…。確かにコンソールから whois コマンドを実行すると更新期限が近い…。( jwhois-3.2.3-8.el5
で /etc/jwhois.conf に whois.jprs.jp が設定されていた。)

『そんなはずはないんだけどなぁ。。』と、登録したレジストラの whois サーバを指定して確認すると更新後の期限で登録されている。(夢で見たらしい。2009/07/30追記)

ぐぬぬ。

『whois.jprs.jp の期限が更新されてない。』とレジストラに確認 → 期限が切れないと更新されないらしい。(まあ監視してないと気づかなかったことなので…。)

自分で登録したドメインしか確認しないので whois サーバを指定して確認したほうがいいのであとで改造します。と言っておこう。(やはりダメっぽいのでなかったことに。。2009/07/30追記)


改造してから気づいたけど書いてるかたがいらっしゃいました。
Nagiosでドメイン失効を監視する – それ、Gentooだとどうなる?

ぬー。


2009/07/30 追記
jp ドメインの場合、JPRS の有効期限が切れた翌日に更新されるので Whois サーバ指定してもダメとのこと…。jp ドメインは最終的に JPRS のWhois サーバに紹介されるのでダメと…。
今回『お名前.com』がレジストラで、お名前.com の Whois 確認サイトで確認しても JPRS のWhois サーバの結果が表示される。

違うサイトに説明があった。

更新手続きをしても、Whoisで有効期限が変わりませんが何故ですか?

JPドメイン名の場合、Whois情報はJPRS様のデータベースが有効期限の翌日に更新されます。
その為、弊社で更新手続きをしても反映されません。
弊社にて更新手続きが完了しますと管理画面内に表示されている有効期限が書き換わります。