Текст моніторингу Nagios на веб-сайті


10

Мені було цікаво, чи можу я отримати допомогу щодо моніторингу тексту на веб-сайті. IE Якщо я хотів би відстежувати google.com за текстом "Конфіденційність", я подумав, що використовую таку команду:

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

Але це не працює. Я отримую "ОК" незалежно від того, що я вкладаю в лапки. Я, очевидно, використовую або неправильну команду, або неправильний варіант. Будь ласка, допоможіть.

Відповіді:


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 секунди час відгуку | час = 0,003486s ;;; 0,000000 розмір = 104B ;;; 0
IOTAMAN

Або інший приклад: ./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP ОК - HTTP / 1.1 302 Знайдено - 0,003 секунди час відповіді | час = 0,003466s ;;; розмір 0,000000 = 94B ;;; 0
IOTAMAN

Так, здається, що якщо переспрямування (301 або 302) є відповіддю, то чек ігнорує рядок пошуку, що, ймовірно, є правильним. Відповідь - знайти точний URL, на який ви перенаправляєтесь. Ви можете це зробити, перейшовши на сторінку в браузері. Якщо це не працює, спробуйте отримати доступ до нього через telnet, щоб побачити, що таке значення заголовка Locaction:.
блідий кінь

1

Іншим варіантом є використання 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


0

Ми написали спеціальний сценарій perl, використовуючи LWP та HTML :: Дерево для пошуку конкретних рядків. Ми також просто md5sum деякі сторінки, де вміст не змінюється.


1
Я сам задоволений check_http, але якщо ви пропонуєте цей метод як рішення, можливо, надайте сценарій perl?
Pricey

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
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.