勤務先のサーバー群では10年以上に渡って、Nagiosで死活監視しています。(+クラウド系の死活監視)
ZabbixやHinemos、Pandora FMSも候補に上がったこともありますが、純粋な死活監視のみであれば、DBも要らないテキストベースのNagiosが楽かな~と思っています。
ただ、死活監視以上を求める場合、テキストベースであることが逆に面倒になってくるので、他のツールがおすすめです。(個人的には有料のクラウド系が楽。どうしてもOSSならZabbixかな)
普段は、PingとHTTPの標準的な監視のみなのですが、今回特定のPathを指定する必要に迫られました。
目次
手順
まずは、URLチェック用のコマンドを作成します。
[root@server ~]# vi /etc/nagios/objects/commands.cfg
define command {
command_name check_http_url
command_line $USER1$/check_http -H $HOSTALIAS$ -u $ARG1$ -e $ARG2$
}
define command {
command_name check_https_url
command_line $USER1$/check_http --ssl -H $HOSTALIAS$ -u $ARG1$ -e $ARG2$
}
-H $HOSTALIAS$
は、ホスト定義内のaliasの値が挿入されます。-u $ARG1$
は、ドメイン以下のPathとなりますが、第一引数が挿入されます。-e $ARG2$
は、ステータスコードとなりますが、第二引数が挿入されます。
次に、サービスで定義します。
[root@server ~]# vi /etc/nagios/services.cfg
define service {
use generic-service
host_name example.com
service_description HTTPS_URL
check_command check_http_url!/example.html!200
}
check_commandの!~!
が引数になります。
上記の例だと、/example.html
が第一引数(ドメイン以下のPath)で、200
が第二引数(ステータスコード)となります。
最後に、Nagiosの設定チェックを走らせて、問題がなければ、Nagiosを再起動して完了です。