Nagios で HTTP コンテンツが変更されたことを検知したい


Nagios を使って HTTP や HTTPS のコンテンツが変更されたことを  
検知する仕組みはどのようにすれば実現できるでしょうか。

check_http には次のオプションがあり、「指定した時間より古い場合に警告」という動作をします。

[code]

    -M, --max-age=SECONDS
    
[/code]

これとは逆に「新しい場合に警告」という動作ができれば問題を解決できると思っていますが実現方法がわかりません。




Nagiosのpluginはしかるべきステータスコードを返すプログラムというだけなので、たいていのことはちょっとしたシェルスクリプト程度で監視できます。

[code]

    #!/bin/sh
    
    HOST=$1
    URL=$2
    
    SAVE=/var/tmp/${HOST}
    
    new_data=`curl -s $URL |sha256sum`
    new_data=`echo $new_data` #空白よけ
    
    if [ ! -e $SAVE ]; then
        status=3 #UNKNOWN
    else
        old_data=`cat $SAVE`
    
        if [ "$old_data" = "$new_data" ]; then
            status=0 #OK
        else
            status=2 #CRITICAL
        fi
    fi
    
    echo $new_data > $SAVE
    exit $status
    
[/code]




Nagiosのpluginはしかるべきステータスコードを返すプログラムというだけなので、たいていのことはちょっとしたシェルスクリプト程度で監視できます。

[code]

    #!/bin/sh
    
    HOST=$1
    URL=$2
    
    SAVE=/var/tmp/${HOST}
    
    new_data=`curl -s $URL |sha256sum`
    new_data=`echo $new_data` #空白よけ
    
    if [ ! -e $SAVE ]; then
        status=3 #UNKNOWN
    else
        old_data=`cat $SAVE`
    
        if [ "$old_data" = "$new_data" ]; then
            status=0 #OK
        else
            status=2 #CRITICAL
        fi
    fi
    
    echo $new_data > $SAVE
    exit $status
    
[/code]

