NagiosのHTTP監視で特定のPathを指定する

勤務先のサーバー群では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を再起動して完了です。

よかったらシェアしてね!
目次