Мне было интересно, могу ли я получить некоторую помощь с мониторингом текста на веб-сайте. I.E. Если бы я хотел отслеживать на google.com текст «Конфиденциальность», я подумал, что использовал бы следующую команду:
check_http -H google.com -u http://www.google.com -s "Privacy"
Но это не работает. Я получаю «ОК», что бы я ни заключал в кавычки. Очевидно, я использую либо неправильную команду, либо неправильный вариант. Пожалуйста помоги.
Попробуйте оставить, поставьте -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_curl с monitoringexchange.org. На самом деле это слишком сложный трюк для того, что вы пытаетесь сделать, но я обнаружил, что он расширяет функциональность, когда вам это нужно для анализа данных с веб-сайтов и вставки ввода.
Содержимое моей настроенной неизменяемой 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
Если у меня возникает такая проблема с плагином check_http, я обычно получаю URL-адрес, в котором ищу текст, а затем проверяю вывод.
Если вам нужно что-то большее, чем check_http, например, вход на веб-сайт или проверка более одной строки, взгляните на WebInject - хороший плагин.
Мы написали собственный Perl-скрипт, используя LWP и HTML :: Tree для поиска определенных строк. Мы также просто суммируем некоторые страницы, содержимое которых не меняется.
Вам необходимо указать -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
Вот несколько проверок, которые я использую.
Первый ищет текст 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
}