Nagios监视网站上的文本


10

我想知道我是否可以在监视网站上的文本方面获得帮助。IE如果我想监视google.com上的“隐私”文本,我想我会使用以下命令:

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

但这是行不通的。无论我使用什么引号,都可以“确定”。我显然使用了错误的命令或错误的选项。请帮忙。

Answers:


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 2009年

另一个例子是./check_http -H mysite.myschool.edu -u“ /index.html” -s“ dsklajfdl” HTTP OK-HTTP / 1.1 302找到-0.003秒响应时间| time = 0.003466s ;;; 0.000000大小= 94B ;;; 0
IOTAMAN

是的,似乎如果重定向(301或302)是检查忽略搜索字符串的响应,则可能是正确的。答案是找到您要重定向到的确切URL。您应该能够通过在浏览器中转到页面来做到这一点。如果这不起作用,请尝试通过telnet访问它,以查看Locaction:标头值是什么。
古马

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
}

第二个检查文本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
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.