Webサイト上のNagios監視テキスト


10

Webサイトのテキストを監視するのに何か手助けができるかどうか疑問に思っていました。IE「プライバシー」というテキストについてgoogle.comを監視したい場合は、次のコマンドを使用すると思いました。

check_http -H google.com -u http://www.google.com -s "Privacy"

しかし、それは機能していません。何を引用しても、「OK」になります。私は明らかに間違ったコマンドまたは間違ったオプションを使用しています。助けてください。

回答:


7

-uを付けたままにしておきます。-uは、取得するパス(ページ)を指定します。デフォルトは「/」で、URL全体をとることはありません。省略したときの出力は次のとおりです。

$ ./check_http -H www.google.com -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.041 second response time |time=0.040579s;;;0.000000 size=5257B;;;0
$ ./check_http -H www.google.com -s "Privacyblahdibla"
HTTP CRITICAL - string not found|time=0.048169s;;;0.000000 size=5257B;;;0

特定のページを取得したい場合は、次のように-uを使用します

$ ./check_http -H www.google.com -u "/ig" -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.166 second response time |time=0.165896s;;;0.000000 size=87843B;;;0

監視しようとしている実際のウェブサイトにまだ問題があります。これは./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin" -s "dsklajfdl" HTTP OKです。 -HTTP / 1.1 302が見つかりました-0.003秒の応答時間| time = 0.003486s ;;; 0.000000 size = 104B ;;; 0
IOTAMAN

または、別の例は./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP OK-HTTP / 1.1 302 Found-0.003秒の応答時間| time = 0.003466s ;;; 0.000000サイズ= 94B ;;; 0
イオタマン2009

はい、リダイレクト(301または302)が応答である場合、チェックが検索文字列を無視するようです。これはおそらく正しいでしょう。答えは、リダイレクト先の正確なURLを見つけることです。ブラウザでページに移動することで、それを実行できるはずです。それが機能しない場合は、Telnet経由でアクセスして、Locaction:ヘッダー値が何であるかを確認してください。
2009

1

別のオプションは、monitoringexchange.orgのcheck_curlを使用することです。実際には、これはあなたがやろうとしていることに対して複雑すぎるティッチですが、ウェブサイトからのデータの解析や入力の挿入に必要なときに機能が拡張されることがわかりました

以下のカスタマイズされた非変数check_curlの内容:

 #!/bin/bash
 PROG=/usr/local/bin/curl
 FILE=/tmp/check_curl
 HALT=PRIVACY

 $PROG -k -s http://www.google.com > $FILE

 STATUS=`grep Error $FILE | awk '{ print $0 }'`

 grep -w $HALT $FILE > /dev/null
 if [ $? -eq 0 ]
    then
      WORKING=`grep Privacy $FILE | awk '{ print $5 }'`
      echo "Works, Returns data of $WORKING"
      rm $FILE
 else echo "Doesn't return $WORKING"| $STATUS"
      exit 2
  fi


0

LWPとHTML :: Treeを使用して特定の文字列を検索するカスタムPerlスクリプトを作成しました。また、コンテンツが変更されないページもmd5sumします。


1
私自身もcheck_httpに満足していますが、この方法を解決策として提案する場合は、おそらくperlスクリプトを提供してください。
高価な

0

check_httpプラグインでこのような問題が発生した場合は、通常、テキストを探しているURLを取得して、出力を調べます。

あなたは、そのようなウェブサイトにログインまたは複数の文字列をチェックして、check_httpよりも少しありません何かをしたい見ている場合はWebInjectを -それは素敵なプラグインです。


0

あなたは指定する必要が-eためのオプションを-s所望の効果を持つためのオプション:

$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string"
OK - HTTP/1.1 302 Found - 0.476 second response time |time=0.475776s;;;0.000000 size=17701B;;;0

$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string" -e 302
CRITICAL - string not found|time=1.633004s;;;0.000000 size=17701B;;;0

$ ./check_http -H "www.eurocarparts.com" -u / -s "0870" -e 302
HTTP OK HTTP/1.1 302 Found - 4.032 second response time |time=4.032120s;;;0.000000 size=17701B;;;0

0

ここに私が使用するいくつかのチェックがあります。

最初はテキストCCServerServiceを探し、見つからない場合はエラーを報告します。

define command {
    command_name  check_cc_v5
    command_line  /usr/local/nagios/libexec/check_http -H $HOSTADDRESS$ -p 8080 -u /CCServer/CCServer --regex=CCServerService -w 3 -c 5 -t 10
}

2番目は、テキストerrorをチェックし、見た場合はエラーを報告します。

define command {
    command_name  check_wb_pps
    command_line  /usr/local/nagios/libexec/check_http -S -H $HOSTADDRESS$ -u /onlinestore/booking.php --regex=error --invert-regex -w 30 -c 60 -t 90
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.