Создание и настройка HTTP-монитора
- 10 минут чтения
Вы можете создавать синтетические HTTP-мониторы для проверки доступности ваших ресурсов — веб-сайтов или конечных точек API. HTTP-мониторы можно запускать из наших глобальных публичных или частных локаций Synthetic.
Создание нового HTTP-монитора¶
Перейдите в
Synthetic > Monitor > HTTP.
Основные настройки¶
- Название монитора — введите имя (до 500 символов) для синтетического монитора. Это имя должно в целом описывать все запросы в данном HTTP-мониторе.
- Выберите Add tag, чтобы вручную добавить теги к монитору. После создания монитора вы можете управлять тегами на странице сведений об HTTP-мониторе.
- Выберите Assign frontends, чтобы привязать монитор к фронтенд-приложению. Вы можете привязать монитор к нескольким приложениям, а приложение может иметь несколько привязанных мониторов. Это позволяет отслеживать доступность и производительность приложения. Обнаруженные проблемы автоматически связываются с вашим приложением. Если монитор недоступен, соответствующее приложение также считается недоступным.
Обратите внимание, что вы не можете заблокировать трафик Synthetic Monitoring для RUM-приложений путём исключения ботов, пауков или IP-адресов локаций Synthetic.
Запросы¶
Вы можете настроить один или несколько запросов в режиме Visual или Script. В режиме Visual параметры отображаются в нескольких группах:
- Базовая конфигурация (имя запроса и URL)
-
Безопасность (аутентификация и клиентский сертификат — для обоих можно выбрать существующие учётные данные из хранилища учётных данных или создать новые)
-
В разделе Security включите переключатель Set authentication/authorization, чтобы выбрать метод безопасности Basic, NTLM или Kerberos. Подробнее см. в разделе синтетическая аутентификация.
- SSL-сертификат (принимать любой SSL-сертификат и генерировать проблему, если SSL-сертификат истекает в течение следующих
nдней) - Атрибуты выполнения (HTTP-метод, агент пользователя, дополнительные HTTP-заголовки и расширенные атрибуты: следовать перенаправлениям, игнорировать конфиденциальную информацию, скрипт до/после выполнения)
-
Расширенные атрибуты
-
Флажок Ignore sensitive information — разверните раздел Advanced attributes и выберите этот параметр, чтобы скрыть потенциально конфиденциальную информацию (содержащуюся, например, в заголовках запроса, теле запроса, иногда в URL).
Это необходимо делать для каждого запроса, для которого вы хотите ограничить отображение. Тела запроса и ответа, значения заголовков запроса и ответа, а также сведения о сертификате узла заменяются текстом-заполнителем.
Пользователи с доступом к любым учётным данным, содержащимся в мониторе, могут отключить эту функцию. * Ограничения (код статуса ответа, шаблон тела ответа, регулярное выражение тела ответа) * Оповещения о пороговых значениях производительности (порог для данного запроса) * Базовая конфигурация (имя запроса)
- Name — обязательное поле, обозначающее шаг монитора
-
Выбор цели (URL)
-
HTTP request URL
- В целях повышения безопасности синтетического монитора Dynatrace блокирует отправку запросов на локальный хост (например,
localhostили127.0.0.1). - Вы можете добавить идентификатор учётных данных из хранилища в URL запроса. Используйте формат
{<credential ID>|token},{<credential ID>|username}или{<credential ID>|password}, напримерhttps://example.com/api/random/{CREDENTIALS_VAULT-0000000000000000|token}, в зависимости от типа вставляемых учётных данных. Вы можете копировать и вставлять только те учётные данные, к которым у вас есть доступ.
Кто может редактировать монитор со связанными учётными данными?
-
Если монитор связан с общедоступными учётными данными, любой участник вашей команды может включить/выключить, удалить или отредактировать монитор.
-
Если HTTP-монитор связан с ограниченными учётными данными (только для владельца или с доступом для нескольких пользователей), любой пользователь может вносить изменения в определённые поля, даже если у него нет доступа к используемым учётным данным. Вы можете редактировать имя монитора, локации, валидацию, пороговые значения, а также, конечно, изменить сертификат или пару имя пользователя/пароль. Вы можете редактировать и изменять учётные данные в URL, значении заголовка или теле запроса. Вы можете создавать учётные данные в настройках монитора в режиме редактирования. Вам потребуется заменить все учётные данные в мониторе на те, к которым у вас есть доступ. Обратите внимание, что замена учётных данных другого пользователя на ваши является необратимой.
Элементы управления, которые вы не можете редактировать, такие как URL запроса, HTTP-метод, скрипт до выполнения, скрипт после выполнения, HTTP-заголовки, тело запроса, параметр следования перенаправлениям, а также добавление/удаление HTTP-запросов, будут неактивны или отображать сообщение об ошибке при попытке сохранить изменения в режиме скрипта или пользовательского интерфейса.
-
Вы можете активировать/деактивировать или удалить синтетический монитор, защищённый учётными данными «только для владельца» другого пользователя.
Подробнее о разрешениях на учётные данные читайте в разделе Хранилище учётных данных для синтетических мониторов. * Безопасность (аутентификация и клиентский сертификат — для обоих можно выбрать существующие учётные данные из хранилища учётных данных или создать новые)
- В целях повышения безопасности синтетического монитора Dynatrace блокирует отправку запросов на локальный хост (например,
-
Включите переключатель Set authentication/authorization, чтобы выбрать метод безопасности Basic, NTLM или Kerberos. Подробнее см. в разделе синтетическая аутентификация.
Укажите пару имя пользователя/пароль для автоматизации процесса входа на сайты с защитой паролем с помощью аутентификации Basic, NTLM или Kerberos. Dynatrace автоматически генерирует необходимый заголовок
Authorizationс предоставленными вами данными. (Подробнее о поддерживаемых методах аутентификации в Synthetic Monitoring.)Dynatrace хранит все учётные данные Synthetic Monitoring и управляет ими в хранилище учётных данных. Доступ к учётным данным контролируется; они могут быть назначены как «только для владельца» или как общедоступные.
Вы можете выбрать существующие учётные данные (Select credentials). В этом списке отображаются только те учётные данные, к которым у вас есть доступ: общедоступные учётные данные или учётные данные «только для владельца», созданные вами.
Вы можете создать New credential, введя Username и Password. Укажите Credential name и нажмите Save to vault.
Формат
<domain>\<username>не поддерживается для имени пользователя в HTTP-мониторах; просто укажите<username>.Созданные таким образом учётные данные автоматически получают разрешения «только для владельца» и могут использоваться только вами. Обратите внимание, что вы можете создавать учётные данные таким образом в новом или существующем HTTP-мониторе, даже если у вас нет разрешений на доступ к управлению учётными данными в хранилище учётных данных. + Включите переключатель Add client certificate, чтобы активировать аутентификацию с клиентским сертификатом. Подробнее см. в разделе Поддерживаемые методы аутентификации в Synthetic Monitoring.
Dynatrace хранит все учётные данные Synthetic Monitoring и управляет ими в хранилище учётных данных. Доступ к учётным данным контролируется; они могут быть назначены как «только для владельца» или как общедоступные.
Вы можете выбрать существующие учётные данные (Select credentials). В этом списке отображаются только те учётные данные, к которым у вас есть доступ: общедоступные учётные данные или учётные данные «только для владельца», созданные вами.
Вы можете создать новые учётные данные:
- Выберите + New credential.
- Загрузите Certificate file (в формате PFX, P12 или PEM).
- Введите Password.
- Укажите Credential name.
- Выберите Save to vault.
Созданные таким образом учётные данные автоматически получают разрешения «только для владельца» и могут использоваться только вами. Обратите внимание, что вы можете создавать учётные данные таким образом в новом или существующем HTTP-мониторе, даже если у вас нет разрешений на доступ к управлению учётными данными в хранилище учётных данных.
Для обеспечения полной взаимной аутентификации отключите Accept any SSL certificate при использовании аутентификации с сертификатом. * SSL-сертификат (принимать любой SSL-сертификат и генерировать проблему, если SSL-сертификат истекает в течение следующих
nдней) -
Accept any SSL certificate — по умолчанию HTTP-мониторы завершаются с ошибкой при недействительных SSL-сертификатах. Установите флажок, чтобы монитор принимал любые SSL-сертификаты независимо от их действительности.
Причины недействительности SSL-сертификата
В зависимости от ваших настроек HTTP-монитор может завершиться с ошибкой или успешно при недействительном SSL-сертификате по любой из следующих причин:
- Самоподписанный сертификат
- Сертификат истёк
- Сертификат неактивен
- Срок действия сертификата превышает 398 дней
- Отсутствует имя хоста
- Недействительная/неполная цепочка сертификатов
- Ненадёжный центр сертификации
- Небезопасный алгоритм подписи
-
Generate a problem if the SSL certificate expires within the next n days — включите этот параметр для генерации проблемы истечения срока действия SSL-сертификата, когда SSL-сертификат отсутствует, истёк или истечёт в течение указанного числа дней (не более 100). Обратите внимание, что эта проблема генерируется без завершения монитора с ошибкой и без влияния на доступность монитора.
Проблемы истечения срока действия SSL-сертификата имеют настраиваемый уровень серьёзности и отображают количество дней до истечения срока действия сертификата. Это значение обновляется при каждом выполнении затронутого монитора.
Следующие примеры показывают, как применять параметры SSL certificate expiration date verification и Accept any SSL certificate.
-
Если вы хотите настроить монитор, принимающий самоподписанный сертификат, но при этом генерирующий оповещение об истечении срока его действия:
-
Включите Accept any SSL certificate.
- Включите SSL certificate expiration date verification и установите порог для генерации проблемы.
- Если вы решите не принимать никакие SSL-сертификаты и SSL-сертификат истёк, HTTP-монитор завершится с ошибкой и запустит проблему простоя с сообщением
SSL certificate expiredв сведениях о проблеме, а также в карточках Events и Failed requests в сведениях об HTTP-мониторе. - Если вы включите оба этих параметра и SSL-сертификат истёк, HTTP-монитор запустит проблему истечения срока действия SSL-сертификата. В карточке Events отобразится пользовательское оповещение об истечении срока действия SSL-сертификата.
- Если вы включите оба этих параметра и укажете порог
nдней для истечения срока действия SSL-сертификата, и SSL-сертификат истечёт в течениеnдней, HTTP-монитор запустит проблему истечения срока действия SSL-сертификата. В карточке Events отобразится пользовательское оповещение об истечении срока действия SSL-сертификата.
Валидация HTTP-монитора
В мониторе, содержащем несколько валидаций, все правила оцениваются. Однако возвращается единый статус выполнения на основе приоритета: валидация кода статуса HTTP является наиболее важной, за ней следует валидация текста и регулярных выражений, и наконец — валидация истечения срока действия SSL-сертификата.
Следующие типы правил оцениваются для валидации HTTP-монитора в разделе
validation.rulesв режиме скрипта.- Валидация кода статуса ответа
- Текстовая валидация, при которой первые 50 КБ тела ответа проверяются на соответствие строке текста или регулярному выражению
- Валидация истечения срока действия SSL-сертификата (ActiveGate версии 1.235+)
- Атрибуты выполнения (HTTP-метод, агент пользователя, дополнительные HTTP-заголовки и расширенные атрибуты: следовать перенаправлениям, игнорировать конфиденциальную информацию, скрипт до/после выполнения)
-
-
HTTP request method
Для каждого запроса, который вы создаёте или редактируете, начните с выбора HTTP method, поскольку доступные параметры запроса зависят от этого выбора. Поддерживаемые HTTP-методы:
- GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
- OPTIONS
- Необязательный User agent
Агент пользователя по умолчанию имеет формат
DynatraceSynthetic/{version}, где{version}— текущая версия движка Synthetic, выполняющего монитор. Даже если вы определите пользовательский агент пользователя, Dynatrace автоматически добавитDynatraceSynthetic/{version}к нему, чтобы обеспечить идентификацию синтетического трафика. Не используйтеDynatraceSynthetic/в своём пользовательском агенте пользователя — это зарезервировано для использования Dynatrace. -
Set additional HTTP headers
Монитор создаётся с минимальным набором заголовков, необходимых протоколу. Выберите этот параметр для создания пользовательских/дополнительных заголовков:
- Выберите + HTTP header.
- Введите Header name и Header value.
- При необходимости добавьте ещё заголовок, нажав + HTTP header.
Используйте HTTP-заголовки для реализации аутентификации с помощью токена-носителя — подробнее в разделе Поддерживаемые методы аутентификации в Synthetic Monitoring.
Вы можете добавить учётные данные токена в значение заголовка. Используйте формат
{<credential ID>|token},{<credential ID>|username}или{<credential ID>|password}, например{CREDENTIALS_VAULT-0000000000000000|token}, в зависимости от типа вставляемых учётных данных. Вы можете копировать и вставлять только те учётные данные, к которым у вас есть доступ.HTTP-заголовки по умолчанию
Это заголовки по умолчанию, создаваемые Dynatrace для каждого запроса.
Имя
Значение
Accept*/*ConnectioncloseHost<hostname>User-AgentDynatraceSynthetic/{version}11
{version}— текущая версия движка Synthetic, выполняющего монитор. Даже если вы определите пользовательский агент пользователя, Dynatrace всегда автоматически добавляетDynatraceSynthetic/{version}к нему, чтобы обеспечить идентификацию синтетического трафика.Dynatrace также создаёт заголовки
x-Dynatrace-Tenantиx-Dynatrace-Testдля внутренних административных целей. + Set request bodyВы можете отправлять полезную нагрузку с запросами POST, PUT, DELETE и PATCH. Вы можете добавить учётные данные токена в тело запроса. Используйте формат
{<credential ID>|token},{<credential ID>|username}или{<credential ID>|password}, например{CREDENTIALS_VAULT-0000000000000000|token}, в зависимости от типа вставляемых учётных данных. Вы можете использовать только те учётные данные, к которым у вас есть доступ: общедоступные учётные данные или учётные данные «только для владельца», созданные вами. Если это поле содержит токен только для владельца, другие пользователи не смогут его редактировать. * Расширенные атрибуты -
Follow redirects — по умолчанию HTTP-монитор следует до 10 перенаправлений от исходного запроса до достижения конечного назначения. Отключите этот параметр для мониторинга только первого ответа цепочки перенаправлений, например, для проверки кодов статуса ответа при перенаправлении.
-
Set pre-execution script — скрипты до и после выполнения позволяют добавлять пользовательскую логику между запросами HTTP-монитора для таких задач, как анализ ответа, изменение URL запроса или пропуск запросов при определённых условиях.
При выборе этого параметра отображается поле редактирования для ввода скрипта, который выполняется непосредственно перед запуском запроса. Скрипты до выполнения основаны на пользовательском JavaScript-коде и могут использоваться для создания HTTP-запроса или добавления логики, которую невозможно или нежелательно реализовать в пользовательском интерфейсе.
Дополнительную информацию и справочник методов см. в разделе Скрипты до и после выполнения для HTTP-мониторов. Обратите внимание, что некоторые методы доступны только в скриптах до выполнения или скриптах после выполнения. + Set post-execution script — при выборе этого параметра отображается поле редактирования для ввода скрипта, который выполняется после завершения запроса. Скрипты после выполнения основаны на пользовательском JavaScript-коде и могут использоваться для обработки ответов на запрос.
Метод
api.fail()можно использовать для определения пользовательского сообщения об ошибке, которое отображается в карточке Events на странице сведений об HTTP-мониторе.Дополнительную информацию и справочник методов см. в разделе Скрипты до и после выполнения для HTTP-мониторов. Обратите внимание, что некоторые методы доступны только в скриптах до выполнения или скриптах после выполнения. + Ignore sensitive information — выберите этот параметр, чтобы скрыть потенциально конфиденциальную информацию (содержащуюся, например, в заголовках запроса, теле запроса, иногда в URL). * Ограничения (код статуса ответа, шаблон тела ответа, регулярное выражение тела ответа)
Валидация ответа позволяет считать монитор успешным или неудачным на основе ожидаемого содержимого в первых 50 КБ тела ответа.
- Pass if или Fail if определяют базовый тест.
- Text contains задаёт текст для поиска в ответе. Эта строка чувствительна к регистру. Если ваша строка содержит не-ASCII-символы, экранируйте их в режиме скрипта.
- Interpret content match as regular expression обрабатывает указанный текст как регулярное выражение.
Вы можете добавить два или более ограничения одного типа, например, если ваш случай требует поиска двух или более шаблонов в теле ответа.
Вы можете настроить несколько таких правил текстовой валидации в режиме скрипта.
Валидация HTTP-монитора
Следующие типы правил оцениваются для валидации HTTP-монитора в разделе validation.rules в режиме скрипта.
- Валидация кода статуса ответа
- Текстовая валидация, при которой первые 50 КБ тела ответа проверяются на соответствие строке текста или регулярному выражению
- Валидация истечения срока действия SSL-сертификата (ActiveGate версии 1.235+)
В мониторе, содержащем несколько валидаций, все правила оцениваются. Однако возвращается единый статус выполнения на основе приоритета: валидация кода статуса HTTP является наиболее важной, за ней следует валидация текста и регулярных выражений, и наконец — валидация истечения срока действия SSL-сертификата. * Оповещения о пороговых значениях производительности (порог для данного запроса)
Вы можете использовать переключатель Generate a problem and send an alert on performance threshold violations, чтобы задать порог таймаута для конкретного запроса HTTP-монитора. Генерация проблем и оповещений в случае нарушения порогового значения производительности должна быть дополнительно настроена при конфигурации Outage and performance.
В режиме Visual вы также можете:
- Выбрать значок и перетащить его вверх или вниз, чтобы изменить порядок запросов.
- Выбрать значок и удалить запрос.
- Выбрать значок и дублировать запрос.
Частота и локации¶
Расписание мониторинга определяется двумя факторами: частотой запуска монитора браузера и количеством локаций, из которых он выполняется.
Dynatrace предлагает глобальную сеть публичных локаций Synthetic Monitoring по умолчанию. Вы также можете создавать частные локации Synthetic в рамках собственной сетевой инфраструктуры. Публичные и частные локации отображаются на этой странице настроек.
Частота и количество локаций определяют количество выполнений монитора в час. Например, запуск монитора из 3 локаций каждые 15 минут даёт 12 выполнений в час (4 раза в час из каждой из 3 локаций). Выполнения монитора равномерно распределяются в пределах выбранного интервала. То есть для монитора, запускаемого из 3 локаций каждые 15 минут, выполнения запускаются с интервалом в 5 минут.
Вы можете выбрать частоту каждые 5, 10, 15 или 30 минут; либо 1, 2 или 4 часа. Вы также можете настроить монитор для выполнения только по требованию. Вы можете выбрать несколько глобальных локаций для выполнения монитора браузера.
Обратите внимание, что все публичные локации Synthetic используют всемирное координированное время (UTC). Если ваш скрипт монитора требует местного времени или часового пояса, вы можете использовать метод api.getContext() и системные часы для реализации условной логики.
Простой и производительность¶
Вы можете задать глобальные и локальные параметры Outage handling и Performance thresholds для суммы всех запросов.
- Generate a problem and send an alert when this monitor is unavailable at all configured locations (global outage).
Этот параметр включён по умолчанию для вновь созданных мониторов. Он оповещает вас о глобальных сбоях доступности, то есть когда все локации одновременно испытывают сбой.
По умолчанию глобальная проблема простоя генерируется, когда все локации дают сбой один раз. Однако вы можете указать количество последовательных сбоев (от 1 до 5) для генерации глобальной проблемы простоя, то есть сколько раз все локации должны последовательно дать сбой для генерации глобальной проблемы простоя. * Generate a problem and send an alert when this monitor is unavailable for one or more consecutive runs at any location. Local outage problem generation is available only when at least two locations are assigned.
Это позволяет генерировать проблему при последовательных сбоях в одной или нескольких локациях. На уровне среды вы можете выбрать количество сбоев. На уровне монитора вы также можете определить, сколько локаций монитора должны дать сбой для генерации локальной проблемы простоя.
Для Performance thresholds вы можете включить:
- Generate a problem and send an alert on performance threshold violations.
Этот параметр предоставляет возможность установить Threshold for the sum of all requests (in seconds). Если порог превысит указанное вами время, вы получите уведомление.
Итог¶
Просмотрите сводку всех шагов и расчётное ежемесячное количество запросов.
Информацию об аналитике мониторинга каждого монитора см. в разделе Результаты отчётности HTTP-мониторов.
Связанные темы¶
- Результаты отчётности HTTP-мониторов
- API синтетических мониторов