7167


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

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

[code]

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

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


CC BY-SA 3.0
2015-02-26T10:05:55.183
7145
2021-11-01T00:19:12.787
2021-11-01T00:19:12.787
3060
5008
question
linux http monitoring
Nagios で HTTP コンテンツが変更されたことを検知したい


別途、"wget -N" などでコンテンツをダウンロードしてから check_file_age でどうでしょうか。

あるいは、ハッシュ値などを計算・保存しておいて、前回のものと比べる方法が考えられます。  
Nagios は過去の値を保存して比較するような用途には向いていませんが、プラグイン側で工夫すればできそうです。

直接ファイルを参照できるのであれば、Tripwire, AIDE などの改竄検知ツールが良いと思います。


CC BY-SA 3.0
2015-02-26T15:23:30.153
7159
2015-02-26T15:23:30.153
4603
7145
answer


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]


CC BY-SA 3.0
2015-02-27T01:44:11.530
7167
2015-02-27T01:44:11.530
5793
7145
answer