Nagios 监控网站上的文本

Nagios 监控网站上的文本

我想知道我是否可以获得一些有关监控网站上文本的帮助。例如,如果我想监控 google.com 上的文本“隐私”,我想我会使用以下命令:

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

但它不起作用。无论我在引号中输入什么,我得到的都是“OK”。显然,我使用了错误的命令或错误的选项。请帮忙。

答案1

尝试保留 -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

答案2

另一个选择是使用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

答案3

我们编写了一个自定义 perl 脚本,使用 LWP 和 HTML::Tree 来搜索特定字符串。我们还对内容不变的某些页面进行了 md5sum 操作。

答案4

您需要指定-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

相关内容