自宅サーバで職場のWebサーバの動作確認を行っているけど、WordPress で MySQL が落ちた際に、Webサーバとしては動いているけど、ページが正しく表示できていないことを検出できていなかった。Webサーバに MySQL のステータスチェックをさせる方法もあるかもしれないけど、その Webサーバは自分の管理でもないし、icinga などを入れることもできない。
最近の鯖管なら、zabbix を入れるのが普通なのかもしれないけど、我が家は時代遅れなので古い古い nagios を経て 古い icinga にて運用中。
そこで、nagios-plugin の check_http には、Webサーバの応答データに特定文字が含まれるか確認する機能があるので、それを導入。
# 動作確認用のcommand を登録
define command {
command_name check_https_expect_string
command_line /usr/lib/nagios/plugins/check_http \
--ssl -H '$HOSTADDRESS$' -I '$HOSTADDRESS$' \
-s '$ARG1$'
}
# 監視対象のサーバ
define host {
host_name fnct-www
(略)
}
# HTTPS の返答を確認し、WordPressが正しく動いていれば
# 含まれていそうな文字の有無をチェック
define service {
use generic-service ;
host_name fnct-www
service_description HTTPS-EXPECT
check_command check_https_expect_string!福井工業高等専門学校
}