Мониторинг с помощью ServiceCheck.HTTP
-
-
V alarm timeout'ah dejstvitel'no bil bag, i ne odin: vo pervih, timeout ne sobljudalsja i srabatival nemedlenno, vo vtorih - vsegda posilalsja event SYS_ALARM_TIMEOUT. Vrode vse ispravil, rabotaet kak nado.
Chto kasaetsja alarmov, kotorie ostajutsja na node, to mozno ved' sdelat' avtomaticheskij terminate cherez kljuchi - ja tak ponjal chto u vas tak i sdelano, chto WWW_OK avtomaticheski terminiruet alarm, sozdannij po WWW_NOK. Pri zelanii vi mozete sdelat' toze-samoe i po WWW_WARN, esli ne hotite chtobi alarm ostavalsja aktivnim posle otsilki meila.
-
-
Виктор, приветствую!
Возникла следующая проблема.
Есть 4 одинаковых web-сервера. На них одинаковая ОС и набор софта. Задача: нужно через ServiceCheck.HTTP мониторить на всех 4ёх серверах один и тот же файл, находящийся у всех серверов в одном и том же месте и называющийся одинаково для всех серверов.
примерно так:
сервера: www01.test.local, www02.test.local, www03.test.local и www04.test.local
файл: /load/test.xmlиспользуемый regexp (для www01.test.local):
ServiceCheck.HTTP(10.101.123.1,80,/load/test.xml,www01.test.local,"^HTTP/1\.[01] 200.*<?xml.*/cross-domain-policy.*")содержимое страницы (текст):
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="testdom.local" /> <allow-access-from domain="site.dmz.off" /> <allow-access-from domain="*" /> </cross-domain-policy>HTTP-заголовок:
http://www01.test.local/load/test.xml GET /load/test.xml HTTP/1.1 Host: www01.test.local User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,ru;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Proxy-Connection: keep-alive If-Modified-Since: Fri, 05 Sep 2008 07:15:29 GMT Cache-Control: max-age=0 HTTP/1.1 200 OK Via: 1.1 PROXY Content-Length: 314 Date: Mon, 08 Sep 2008 05:05:30 GMT Content-Type: text/xml Server: nginx/0.5.33 Last-Modified: Fri, 05 Sep 2008 07:15:29 GMT Accept-Ranges: bytesСобственно проблема в следующем: на 2 серверах данный запрос получает и обрабатывает данные корректно, а на ещё 2ух- нет. Разницы как я уже сказал между серверами нет. Программно и аппаратно они идентичны.
Не понятно ещё вот что: если regexp на 2ух странных серверах урезать до определения только статуса ответа HTTP (200), то тогда запрос на них работает (получаем "0"). Но как только в запрос добавляется поиск слов в тексте страницы - всё, начинаем получать "3". И никакие ухищрения не помогают =(. Пока есть текст в запросе- запрос всегда выдаёт "3", убираем текст (остаётся только проверка на HTTP-ответ, ищем 200) - всё отлично, "0"...
Повторяюсь: на 2ух серверах полный запрос работает прекрасно!
Виктор, не можем понять что происходит.
Написали скрипт на Unix-сервере, что бы проверить код regexp'а:
if($response=~/^HTTP\/1\.[01] 200.*<?xml.*\/cross-domain-policy.*/s) { print "Match!\n"; }Скрипт говорит что с нашим запросом всё в порядке: полученный от сервера ответ содержит всё необходимое.
Просим помощи... ???
-
Я посмотрел в коде - да, есть такая бага. Сейчас несколько переделаю субагента и выложу дифф.
-
-
Файл в аттаче. Надо положить в корень дистрибутива (e.g. netxms-0.2.22/) и запустить:
patch -p0 < /путь/к/portcheck.diffЯ погонял на файлах разного размера и с разных серверов - вроде проблем нету.
Про сборку только субагента - если не чистили каталог из которого делали make install - то можно после патча пойти в src/agent/subagents/portCheck и сделать оттуда make install - субагент должен пересобраться и поставиться. Если из чистого дистрибутива - то для ускорения можно сделать configure --with-agent, сборка пройдет быстрее (но foundation libraries и core agent тоже будут собраны - как зависимости).
-
-
Мда, это я не подумал.
Виктор в ближайшее время выложит новый бинарник субагента.
-
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login