Частые вопросы о HTTP-уведомлениях
- Что такое HTTP-уведомление?
- Это отправка запроса GET с параметрами (об этом ниже) к вашему скрипту в тот момент, когда проверяемый сервис перестаёт работать или заработал после ошибки. Например, проверяется работа сайта http://site.ru/. Когда он перестанет работать, отправится запрос GET к http://drugoi-site.ru/script.php.
- Для чего нужны HTTP-уведомления?
- Вариантов применения HTTP-уведомлений может быть масса: переключение запросов на другой сервер, когда основной перестал работать; отправка уведомлений, которых нет у нас, из собственного скрипта; даже создание своего сервиса мониторинга. Т.е. фактически мы сообщаем вам, что проверяемый сервис перестал работать (или заработал), а дальше вы уже сами можете распоряжаться этой информацией в собственном скрипте, как вам захочется.
- В каком виде приходит HTTP-уведомление?
- Например, вы указали адрес для HTTP-уведомлений: http://site.ru/script.php. Тогда при возникновении ошибки на проверяемом сервисе будет вызван следующий адрес: http://site.ru/script.php?id=1&time=1294958084&skey=1234567890abcdef1234567890abcdef&status=404
- Какие параметры передаются?
- id — ID задачи, о которой высылется уведомление (ID можно посмотреть в списке задач, для чего в настройках отображения таблицы со списком задач должна стоять галочка для показа ID задачи).
- time — timestamp, т.е. время в секундах с 1970 года.
- skey — md5([секретный ключ, указанный при добавлении адреса скрипта для HTTP-уведомлений][id задачи][время из параметра time]). Этот параметр передаётся только, если при добавлении адреса скрипта был указан секретный ключ.
- status — статус задачи: «OK», если проверяемый сервис заработал после ошибки; не «OK», если произошла ошибка (тогда в статусе будет описание этой ошибки в кодировке CP1251).
- tm — точка мониторинга, на основе данных которой был получен результат проверки; параметр передаётся только в тех случаях, когда выбран вид проверки не по умолчанию, а выбраны конкретные точки мониторинга, из которых осуществлять проверки.
- tip — если HTTP-уведомление не о работе проверяемого сервиса, а о попадании его в черный список Роскомнадзора, Spamhaus и других (при включении соответствующей проверки в настройках задачи), то тут будет указано «blacklist»; если уведомление об изменении информации в WHOIS, то будет указано «whois».
- Что должен отдавать мой скрипт для HTTP-уведомлений в ответ на ваш запрос?
- Главное, чтобы ответ вообще был и был с кодом из диапазона 200–399, а текст ответа значения не имеет. Т.е. с кодом HTTP «200 OK» — ответ правильный; с кодом HTTP «404 Not Found» — неправильный.
- Что будет, если адрес для HTTP-уведомлений не отвечает?
- Будет через пару секунд предпринята повторная попытка обратиться к адресу скрипта для HTTP-уведомлений из другой страны. Если и при повторной попытке скрипт не ответил, то больше HTTP-уведомления о возникшем событии отправляться не будут. Это сделано из-за того, что через минуту HTTP-уведомление уже может потерять свою актуальность, т.к. изменится состояние проверяемого сервиса.
- У меня проверяется сайт и HTTP-уведомления отправляются к скрипту на этом же сайте. Но я не получаю обращений к скрипту. Почему?
- Скрипт, на который будут отправляться HTTP-уведомления, должен находиться на другом сервере, даже в некоторых случаях в другом дата-центре, чтобы когда перестаёт работать проверяемый сайт, это никак не сказывалось на работе вашего скрипта. Если скрипт и проверяемый сайт размещены на одном сервере, то велика вероятность, что когда сайт перестанет работать, обратиться к вашему скрипту так же будет невозможно.
- Сколько стоит HTTP-уведомление?
- Никакой платы за HTTP-уведомления нет.
- Среди передающихся параметров есть «tm». Зачем он нужен?
- Если вы выбрали вид проверки не по умолчанию, то проверки будут осуществляться из выбранных вами точек мониторинга. Чтобы знать, на основе данных какой именно точки отправляется уведомление, и создан этот параметр. Название точки мониторинга передаётся примерно так: ru0, или us2, или ua1.