Как мониторить сайт HTTP-проверкой
HTTP-проверка запрашивает URL из ваших локаций мониторинга так же, как это делает браузер, а затем оценивает ответ: ответил ли сервер, насколько быстро, и выглядят ли статус и содержимое верно. Это самый используемый тип проверки HostTracker - используйте его для любого сайта или страницы, которую нужно считать доступной или нет на основе реальной загрузки страницы. Выбирайте вместо этого проверку API, чтобы разбирать и проверять структурированные JSON или XML.
Основные настройки
- Monitoring enabled - главный переключатель вкл/выкл. Приостановленная задача сохраняет настройки, но перестает проверять и оповещать.
- Interval schedule / Cron schedule - простой ползунок интервала ниже, либо конструктор cron (каждые N минут/часов, ежедневно, еженедельно, ежемесячно, либо произвольное выражение из 5 полей) для расписаний, которые интервал выразить не может. Для cron нужен платный тариф.
- Interval - как часто выполняется проверка, от 1 минуты до 24 часов; перетащите ползунок либо выберите значение из выпадающего списка. Самый короткий доступный интервал зависит от вашего тарифа.
- Timeout - сколько ждать ответа, прежде чем провалить проверку, от 1 до 100 секунд (40 с - частое значение по умолчанию). Время разрешения DNS не учитывается.
- Tags - метки через запятую для группировки и фильтрации мониторов на панели управления.
- Full Log - сохраняет каждый результат проверки вместо группировки подряд идущих одинаковых.
- Open Stats - публикует статистику и лог проверок этой задачи по публичной ссылке.
- Attached monitors - четыре дополнительные проверки, прикрепленные к этой задаче вместо отдельных: DNSBL (блеклист домена), Domain Expiration/Certificate Expiration (напоминания за 30/7/1 день), Web Risk (списки вредоносного ПО/фишинга Google). Все работают раз в 12 часов; напоминания следуют подпискам на Up ниже, плохой результат - подпискам Down/Repeat. У каждой свое руководство - см. раздел "Связанные материалы".
Настройка запроса
- HTTP Method - GET, HEAD, POST, PUT, DELETE, PATCH или OPTIONS. GET (по умолчанию) скачивает страницу и нужен для проверок по ключевым словам содержимого; HEAD получает только заголовки, самая быстрая проверка доступности; POST/PUT/PATCH также отправляют тело.
- Request body (только для POST/PUT/PATCH) - режим Plain text отправляет ровно то, что вы ввели (добавьте собственный заголовок Content-Type); режим Key-value строит тело из строк имя/значение как form-urlencoded или JSON и устанавливает Content-Type автоматически.
- Redirect behavior - Immediate response оценивает первый ответ как есть; Follow redirects (по умолчанию) проходит всю цепочку, с ползунком Max redirects to follow (1-20); Redirect is error проваливает проверку при любом редиректе (недоступно в режиме ассертов).
- HTTP Headers - произвольные пары имя/значение. Если оставить пустым, проба отправляет заголовки по умолчанию (User-Agent, Accept, Accept-Language, Referer). Добавьте сюда заголовок Authorization для аутентификации по токену/API-ключу.
- Request authentication - открывает поля имени пользователя/пароля для собственной аутентификации-вызова сервера по HTTP (Basic, Digest, NTLM, Kerberos, Negotiate). Для упреждающей аутентификации по токену используйте вместо этого заголовок Authorization.
- DNS Server Selection - DNS-серверы по умолчанию в локациях; Публичные DNS-серверы страны локации; либо DNS-серверы, заданные вручную (ваши собственные IP резолверов). Два последних варианта требуют платный тариф.
- Disable DNS cache - принудительно выполняет свежий DNS-запрос при каждой проверке вместо переиспользования кэша агента; полезно сразу после изменения DNS.
Проверка ответа
По умолчанию проверка проходит успешно, когда DNS разрешается, TCP-соединение и TLS-рукопожатие (для https) завершаются, и сервер возвращает статус HTTP Ok - любой код ниже 400.
- Assertion mode - заменяет классические поля ниже редактором правил для кодов состояния, времени отклика, заголовков или содержимого тела. На скриншоте он включен с двумя правилами:
status in [100..399](завершено) и пустое второе правило, помеченное unfinished - незавершенное правило не участвует в вердикте, пока вы его не закончите или не удалите. HTTP и API - единственные два типа проверок с работающим редактором ассертов; полный язык правил смотрите в подробном разборе режима ассертов. - Ignore HTTP Errors (классический режим) - коды, которые НЕ должны проваливать проверку, например
401, 403, 500; пусто означает, что ошибкой считается любой код 400+. - Error on these HTTP statuses - обратное: коды, которые должны проваливать проверку, даже если обычно этого не делают.
- Content check keywords - ключевые слова через запятую для поиска на странице (нужен GET).
- Successful content check condition - как ключевые слова определяют вердикт: ANY present (по умолчанию), ALL present, ANY absent, ALL absent, либо ALL absent (fail shows location).
- HTTP Policies - опциональные проверки заголовков/cookie/содержимого; нарушение завершает проверку как Down, как и любой другой сбой. Пресеты Baseline, Strict и API заменяют весь выбор целиком; запустите политики как отдельную задачу, если хотите более мягкий сигнал, который никогда не затронет собственную статистику аптайма этой задачи.
| Переключатель | Что проверяет |
|---|---|
| Enforce HTTPS | URL должен загружаться по https. |
| HSTS header | Присутствует Strict-Transport-Security с минимальным max-age; подопции добавляют includeSubDomains и готовность к preload. |
| No https to http downgrade | Страница https не должна редиректить обратно на http. |
| Content-Security-Policy | Существует заголовок CSP и избегает распространенных небезопасных источников скриптов; один только Report-Only не засчитывается. |
| Clickjacking protection | Страницу нельзя поместить во фрейм другого сайта. |
| X-Content-Type-Options: nosniff | Присутствует заголовок, блокирующий MIME-сниффинг. |
| Referrer-Policy | Присутствует и не равен unsafe-url, так что полные URL не утекают на связанные сайты. |
| Permissions-Policy | Ограничивает мощные функции браузера (камера, микрофон, геолокация). |
| No version disclosure | Ответ не должен раскрывать информацию о версии сервера/фреймворка. |
| Cache-Control assertions | Произвольные проверки Cache-Control, например требование no-store на страницах с личными данными. |
| CORS response headers | Отмечает статический wildcard Access-Control-Allow-Origin, особенно вместе с credentials. |
| Cookie security | Cookie собственного хоста должны нести Secure/HttpOnly/SameSite как настроено; конкретные имена можно исключить. |
| Mixed content | Отмечает подресурсы http://, загружаемые на странице https. |
- TLS Handshake - четыре переключателя строгости (платный тариф): Require valid SSL certificate chain, Require strong TLS protocol (1.2+), Block weak ciphers (128-bit or lower), и Check SSL certificate revocation (онлайн-запрос CRL/OCSP).
- Expected IPs validation - при каждой проверке подтверждает, что DNS разрешает ваш хост в один из указанных вами IP; ловит перехват, неверную конфигурацию или истекшую запись, даже если какой-то сервер по-прежнему отвечает.
- Max response size - прекращает чтение тела после этого размера; проверки содержимого, ассерты и политики тогда оценивают только скачанную часть. По умолчанию 1 МБ, максимум 10 МБ; 0 означает, что тело не читается вовсе.
Подписки на оповещения
Общая для любого типа проверки. Down = сайт лег, Up = он восстановился, Repeat = напоминания, пока он остается недоступен. Подписать все контакты на события Up/Down - ярлык; таблица дает управление по каждому контакту отдельно либо через переиспользуемые пресеты групп контактов. Задача без подписок на оповещения все равно выполняется и записывает результаты - просто никого никогда не уведомляет.
Подписки на отчеты
Периодические отчеты об аптайме, только по email. Выберите Daily, Weekly или Monthly для каждого контакта; Monthly также включает сводки Quarterly и Yearly. Переключатель подписки всех работает так же, как в разделе подписок на оповещения.
Локации мониторинга
- Выбор локации - ищите или просматривайте дерево регионов/стран и отмечайте локации, из которых проверять; в каждой строке показано число доступных агентов против выбранных. «Copy locations from another task» переиспользует набор существующей задачи.
- Стратегия перепроверки - при смене состояния (например, с Up на Down) несколько локаций перепроверяют его, прежде чем новое состояние будет принято, страхуя от ложного срабатывания из одной локации. Варианты: по умолчанию голосование большинством; заданное число локаций, подтверждающих Down (добавляет ползунок 1-7); без перепроверки; полное согласие всех локаций перепроверки; либо полное согласие для Down, большинство для Up.
- Если выбранные локации недоступны - Только выбранные локации (по умолчанию) ждет, вместо того чтобы рисковать ложным оповещением; Ближайшие локации использует ближайшую доступную локацию; Любая локация переключается на любую доступную по всему миру.
Разобранный пример
Мониторинг маркетинговой главной страницы: HTTP-проверка, интервал 5 минут, таймаут 40 с, GET, Follow redirects (максимум 20). Ключевое слово Content check - Contact us с "ANY keyword must be present", чтобы поймать сломанный деплой, отдающий страницу ошибки. HTTP Policies установлены на Baseline. Локации оставлены на All world со стратегией перепроверки по умолчанию. Email дежурной команды подписан на Down, Up и Repeat, а также на еженедельные отчеты.
Диагностика
- Показывает Down, но у вас загружается нормально - сеть одной локации может дать сбой; именно это и отфильтровывает стратегия перепроверки голосованием большинством по умолчанию. Все еще мечется? Проверьте DNS Server Selection и убедитесь, что таймаут подходит обычной задержке этой локации.
- Проверка по ключевому слову содержимого переключается Up/Down - содержимое может меняться из-за кэша, персонализации или A/B-тестирования. Выберите ключевое слово, присутствующее при каждой реальной загрузке, и убедитесь, что Successful content check condition соответствует тому, что вы имели в виду.
- Ушло в Down сразу после включения HTTP Policies (особенно Strict) - Strict ожидает заголовки, которые многие сайты еще не настроили. Исправьте заголовки, понизьте до Baseline, либо сначала прогоните политики отдельной задачей.
- Проверка содержимого или ассерт перестает совпадать на большой странице - Max response size обрезает тело, так что ничего после точки обрезки не читается. Поднимите значение.
- Правило ассерта никогда не выполняется - правило с пустым полем, условием или значением отображается как "unfinished" и не участвует в вердикте. Завершите его либо удалите.
Связанные материалы
- Мониторинг HTTP / аптайма сайта - страница продукта для этого типа проверки.
- Бесплатная мгновенная HTTP-проверка - выполните разовую проверку без аккаунта.
- Правила проверки ответа в режиме ассертов - полный язык правил, лежащий в основе Response Validation.
- Руководство по проверке DNSBL - прикрепленный монитор DNS-блеклиста.
- Руководство по истечению домена - прикрепленный монитор истечения домена.
- Руководство по истечению сертификата - прикрепленный монитор истечения TLS-сертификата.
- Руководство по Web Risk - прикрепленный монитор вредоносного ПО/фишинга.
- Как проверить время отклика сервера - разовая версия того, что эта проверка измеряет при каждом запуске.
- Все руководства по мониторингу - руководство по настройке для каждого другого типа проверки.