Настройка монитора NAM
С помощью мониторов доступности сети (NAM) можно проверять доступность хостов, устройств и служб.
Существует три типа мониторов NAM: ICMP, TCP и DNS. Подробнее о них см. в разделе Типы NAM.
Вы можете создавать мониторы NAM в
Synthetic в последней версии Dynatrace или через API.
Настройка NAM¶
С помощью мониторов NAM можно включить более одного шага.
- Каждый шаг может содержать один или несколько запросов.
- Как и для HTTP- и браузерных мониторов, шаги выполняются последовательно.
- В отличие от HTTP- и браузерных мониторов, мониторы NAM могут содержать несколько запросов в одном шаге. Все запросы, назначенные определённому шагу, выполняются параллельно. Если один запрос завершается ошибкой, это не влияет на выполнение других запросов в этом шаге.
- Шаг пропускается, если ничего не соответствует его определению в конфигурации монитора. Например, когда в списке целевых фильтров указан тег, но ничего ему не соответствует.
- Концепция параллельного выполнения запросов существует только для мониторов NAM.
Например, если вы хотите отслеживать группу из 4 хостов с помощью теста ICMP, то для каждого хоста из вашей группы нужно применить одинаковые условия (частоту, локацию выполнения теста, количество пакетов).
NAM предлагает несколько способов решения этой задачи:
- Можно определить 4 отдельных теста — по одному на каждый хост. Преимущество этого подхода в том, что Dynatrace создаёт отдельную проблему для каждого хоста, и для каждого можно настроить отдельные уведомления. Также можно независимо настраивать параметры теста для каждого хоста.
- Можно определить один тест с 4 запросами (в рамках 1 шага). Выполняются те же проверки ICMP, но в отчётах и оповещениях будут различия. Количество или процент недоступных хостов сообщается с помощью метрики «Процент успешных запросов». Можно настроить пользовательский порог для признания всего монитора неуспешным. Например, если допустимо, что 1 из 4 хостов недоступен из-за развёртывания обновления, можно установить порог
>=75%. Для монитора всегда создаётся одна проблема, однако она содержит подробную информацию о хостах, не отвечающих на запросы. Ещё одно преимущество этого подхода — более простое обслуживание (изменение одной настройки для всех 4 хостов).
Наконец, фильтры позволяют определять тесты для динамически изменяющейся структуры — например, если вы хотите определить тесты ICMP для определённой группы хостов, после изменения конфигурации группы хостов не нужно корректировать монитор NAM.
Для каждого монитора необходимо определить ограничения. Ограничения — это условия, при выполнении которых выполнение монитора считается успешным. Обязательно требуется определить ограничение Процент успешных. Подробнее см. в разделе ограничения на уровне шага.
Создание монитора NAM¶
Чтобы создать монитор NAM в последней версии Dynatrace
- Перейдите в
Synthetic и выберите Создать монитор. - Следуйте инструкциям на экране, описанным в разделах ниже.
Выбор типа¶
На странице Создать синтетический монитор отображаются доступные типы синтетических мониторов.
Выберите Сетевой монитор (NAM) для начала настройки.
Общее¶
- Обязательно Назовите этот монитор — имя монитора в веб-интерфейсе (до 500 символов).
- Обязательно Выберите протокол — выберите тип монитора:
DNS,ICMPилиTCP. - Необязательно Добавьте описание — опишите ваш монитор.
- Необязательно Добавьте теги к этому монитору — чтобы вручную создать новый тег, выберите Добавить тег, введите ключ, при необходимости укажите значение и выберите Добавить.
После указания общих настроек выберите Продолжить.
Запросы¶
В разделе Запросы есть два режима редактирования. Вы можете переключаться между ними.
- По умолчанию Визуальный — для просмотра и настройки запросов NAM через настройки веб-интерфейса.
- Сценарий — для просмотра и редактирования настроек запросов в формате JSON. Предоставляемый сценарий также служит полезной нагрузкой для API-запросов.
Настройки для каждого запроса (можно добавить несколько запросов):
- Обязательно Имя запроса — имя запроса.
-
Обязательно Список целей или Выражение фильтра
-
Цели запросов можно указать явным списком или отфильтровать отслеживаемые хосты с помощью выражения фильтра.
- Если вы хотите указать цели в виде IP-адресов или доменных имён, используйте Список целей для указания разделённого запятыми списка целей. Используйте этот вариант для мониторинга отдельных или нескольких хостов, устройств или служб.
- Если вы хотите выбрать часть отслеживаемых хостов или пользовательских устройств, используйте Выражение фильтра для указания выражения фильтра. Это позволяет отслеживать группу хостов или пользовательских устройств, соответствующих критериям фильтра. Подробнее о доступных фильтрах см. в разделе целевой фильтр.
Можно объединить Список целей и Выражение фильтра в одном шаге монитора. При совместном использовании шаг монитора будет включать объединённый набор целей из обоих полей. * Обязательно Атрибуты выполнения — по сути, пары ключ/значение, связанные с вашим запросом. Определите Таймаут запроса, Количество пакетов, Длину данных, Время жизни, Таймаут ответа, а также включите или отключите Не фрагментировать данные. Атрибуты выполнения доступны только для ICMP. * Обязательно Ограничения — условия, при выполнении которых выполнение монитора считается успешным. Необходимо определить Тип ограничения, Оператор и Значение.
Чтобы создать ещё один запрос, выберите Добавить следующий запрос и укажите параметры для него.
Используйте Дублировать , чтобы скопировать запрос и затем редактировать его с этой точки, вместо того чтобы начинать с нуля при каждом добавлении запроса.
После указания всех запросов выберите Продолжить.
Частота и локации¶
В разделе Частота и локации укажите частоту и локации.
- Обязательно Выберите частоту — можно выбрать частоту (каждые
1 мин,2 мин,5 мин,10 мин,15 мин,30 минили1 ч) или выбратьТолько по требованиюдля ручного запуска. - Обязательно n выбранных локаций — укажите одну или несколько локаций.
После указания частоты и локаций выберите Продолжить.
Сбои и производительность¶
В разделе Обработка сбоев можно включить и настроить следующие параметры, связанные с созданием проблем и оповещений:
- Необязательно «Создавать проблему и отправлять оповещение, когда монитор недоступен во всех настроенных локациях (глобальный сбой).»
- Необязательно «Создавать проблему и отправлять оповещение, когда монитор недоступен только при наличии не менее двух назначенных локаций.» Обратите внимание, что этот параметр доступен только при выборе двух или более локаций.
- Необязательно «Создавать проблему и отправлять оповещение при нарушениях порогов производительности.»
После указания настроек сбоев и производительности выберите Продолжить.
Сводка¶
В разделе Сводка проверьте настройки.
После проверки сводки выберите Сохранить для создания монитора или Назад для возврата и изменения настроек.
Целевой фильтр¶
Целевой фильтр предоставляет возможность фильтровать хосты, отслеживаемые Dynatrace, или пользовательские устройства с IP-адресами. С помощью этого фильтра можно выбирать оба типа целей на основе:
- типа (
type) - тегов (
tag) - идентификатора хоста (
hostId) (устарело, работает только для хостов, вместо него используйте идентификатор сущности) - идентификатора сущности (
entityId) - групп хостов (
hostGroup) - Management Zone (
managementZone) - IP-маски (
ipMask) - диапазона IP-адресов (
ipRange) - экземпляра группы процессов (
processGroupInstance) - сетевых интерфейсов определённого пользовательского устройства (
interfacesOf) - имени расширения (
extensionName)
Диапазон IP-адресов и IP-маска — это фильтры для хостов или устройств, известных серверу Dynatrace, а не способ сканирования сети.
Синтаксис¶
- Логические операторы:
ANDиOR(без учёта регистра) - Круглые скобки
- Операторы выражений:
==и!= - Имена и значения тегов
- Отрицание («не»):
!= - Подстановочный знак:
*(выбирает все хосты, отслеживаемые Dynatrace)
Примеры¶
tag == tagname or hostGroup == group1(tag == tagname1:tagvalue1 or tag == tagname1:tagvalue2) and (hostGroup == group1 or managementZone == zone1)tag != tagname1 and tag != tagname2:tagvaluetag == tagname:tagvalue and (managementZone == zone1 or managementZone == zone2)tag == "[tagwithbrackets and spaces]":"value, with, commas, and, spaces"ipMask == 127.0.0.1/24hostId == HOST-000123type == CUSTOM_DEVICE and ipMask == 172.17.0.2/24entityId == HOST-045BFCDA3F507D30 or entityId == CUSTOM_DEVICE-13081D4B74B3E2C8type == HOST and processGroupInstance == PROCESS_GROUP_INSTANCE-07611353BB98908Ctype == CUSTOM_DEVICE and interfacesOf == CUSTOM_DEVICE-E1A88946BF04D5E7type == CUSTOM_DEVICE and extensionName == "Docker devices"
Пороги производительности¶
Метрика порога производительности сравнивается с метрикой, рассчитанной для каждого запроса в мониторе/шаге. Например, если монитор TCP-проверки портов тестирует порты 80 и 443 на одном и том же хосте отдельно, Dynatrace дважды сравнивает порог времени установления TCP-соединения: один раз для порта 80 и один раз для порта 443.
Для трёх типов мониторов NAM существуют три метрики производительности:
- RTT для ICMP
- Время установления TCP-соединения для TCP
- Время разрешения DNS для DNS
Нарушение определённого порога производительности создаёт Проблему (Замедление).
Аналогично проблемам доступности:
- Проблемы открываются для каждого монитора
- Содержат информацию обо всех запросах, ответственных за проблему
Вы можете настроить способ агрегирования Dynatrace результатов для каждого пакета для ICMP-запросов с одним выполнением. Dynatrace поддерживает методы AVG, MAX и MIN, при этом AVG является методом по умолчанию.
Определение порогов¶
Вы можете определить пороги производительности при настройке запроса для синтетического монитора. Определённый порог производительности одинаков для всех запросов в одном шаге. В случаях, когда требуется создать многошаговый монитор NAM, можно определить различные пороги для каждого шага.
Чтобы определить пороги
- Следуйте шагам, описанным в разделе Создание монитора NAM.
- На шаге Запросы прокрутите страницу вниз и найдите раздел Оповещение о пороге производительности.
- Установите флажок Создавать проблему и отправлять оповещение при нарушениях порогов производительности.
- Включите переключатель Расширенные настройки порогов производительности.
В этом разделе можно установить Количество выполнений запросов в анализируемом скользящем окне и Количество нарушающих выполнений запросов в анализируемом скользящем окне. Для снятия оповещения требуется n последних не нарушающих выполнений запросов.
Отображение нарушений¶
Красная аннотация на графиках производительности указывает на период, в течение которого превышен порог производительности. Кроме того, на графике производительности отображается порог, и можно просмотреть, какие запросы его превышают.
Вы можете сузить временной диапазон только до того периода, в течение которого проблема была активна, используя функцию масштабирования.
Управление мониторами NAM через API¶
Для управления мониторами NAM через REST API
- Найдите и выберите Dynatrace API.
- В поле Выбрать определение выберите Synthetic — Мониторы доступности сети.
- Пройдите аутентификацию с помощью токена API.
Подробнее см. в разделе Аутентификация. 4. Выполните одно из следующих действий.
| Что нужно сделать | Перейдите в Synthetic — Мониторы доступности сети и выберите |
|---|---|
| Получить все синтетические мониторы | GET /synthetic/monitors |
| Создать определение синтетического монитора | POST /synthetic/monitors |
| Удалить определение синтетического монитора для указанного идентификатора монитора | DELETE /synthetic/monitors/{monitorId} |
| Получить определение синтетического монитора для указанного идентификатора монитора | GET /synthetic/monitors/{monitorId} |
| Обновить определение синтетического монитора для указанного идентификатора монитора | PUT /synthetic/monitors/{monitorId} |
Подробнее см. в разделе API v2 синтетических мониторов.
Доступные свойства конфигурации сценария¶
Необязательно
Мониторы состоят из запросов всегда одного типа (ICMP, TCP или DNS).
Если значение не указано, будут применены значения по умолчанию.
Примеры формата продолжительности
- 100 миллисекунд =
PT0.1S - 500 миллисекунд =
PT0.5S - 1 секунда =
PT1S - 10 секунд =
PT10S - 90 секунд =
PT1M30S - 1 минута =
PT1M - 2 минуты =
PT2M - 5 минут =
PT5M
ICMP¶
Интервал передачи пакетов жёстко закодирован как 200ms, что соответствует минимальному значению, допустимому для параметра -i команды ping Linux без необходимости привилегий суперпользователя.
TCP¶
DNS¶
Ограничения конфигурации сценария¶
Ограничения — это условия, при выполнении которых выполнение монитора считается успешным. Необходимо определить ограничения для каждого монитора.
Ограничения на уровне шага¶
SUCCESS_RATE_PERCENT¶
Обязательно
Это обязательное ограничение для процента успешных запросов всех мониторов. Значение по умолчанию — >=80%.
Процент успешных запросов в шаге.
Фактический процент успешных = отношение числа не завершившихся ошибкой запросов ко всем запросам.
Например, если 1 из 6 запросов завершился ошибкой, отношение составляет (6-1)/6 = 83,33%.
| Свойство | Тип | Описание | Значение | Значение по умолчанию |
|---|---|---|---|---|
operator |
строка | Оператор сравнения для сравнения фактического и ожидаемого значения | >=, >, <=, <, = или != |
>= |
value |
целое число | Ожидаемое значение процента успешных для сравнения | Диапазон = 0–100 |
80 |
Для запросов с только одной целью рекомендуется устанавливать значения ограничений равными 100.
Ограничения на уровне запроса¶
Ограничения запросов ICMP¶
ICMP_SUCCESS_RATE_PERCENT¶
Обязательно
Это обязательное ограничение для процента успешных запросов мониторов ICMP. Значение по умолчанию — >=80%.
Процент успешных запросов ping (эхо-запросов) в запросе.
Фактический процент успешных = отношение количества полученных пакетов к количеству отправленных пакетов.
Например, если было отправлено 5 пакетов и получено 4 пакета, отношение составляет 4/5 = 80,00%.
| Свойство | Тип | Описание | Значение | Значение по умолчанию |
|---|---|---|---|---|
operator |
строка | Оператор сравнения для сравнения фактического и ожидаемого значения | >=, >, <=, <, = или != |
>= |
value |
целое число | Ожидаемое значение процента успешных для сравнения | Диапазон = 0–100 |
80 |
Ограничения запросов TCP¶
TCP_PORT_UNREACHABLE¶
Необязательно
Это необязательное ограничение для мониторов TCP. Это специальное ограничение, которое инвертирует статус выполнения для TCP-запросов. Его следует применять, если ожидается, что проверяемый порт недоступен.
Это ограничение не имеет свойств конфигурации.
Если это ограничение применено:
- Когда после попытки соединения обнаруживаются статусы
Execution timeout (12033)иTCP socket connection error (22000), они интерпретируются какHEALTHY (0). - Статус соединения
HEALTHY (0)интерпретируется какCONSTRAINT_VIOLATED (1401), поскольку ожидался сбой. - Статусы
UNEXPECTED_ERROR (-1)иUNKNOWN_HOST (12013)сохраняются и сообщаются как есть.
Ограничения запросов DNS¶
Требуется хотя бы одно
Ограничения DNS являются необязательными, но необходимо определить хотя бы одно, чтобы указать, что считается успешным запросом.
DNS_STATUS_CODE¶
По умолчанию DNS_STATUS_CODE равен 1, код состояния =0 является простейшим примером успешного запроса.
| Свойство | Тип | Описание | Значение | Значение по умолчанию |
|---|---|---|---|---|
operator |
строка | Оператор сравнения для сравнения фактического и ожидаемого значения | = или != |
= |
statusCode |
целое число | Числовой код, указывающий статус DNS-ответа. Исключает status |
Допустимый код, например 0. Диапазон = 0–65535 |
0 |
status |
строка | Мнемоника, представляющая код статуса DNS. Исключает statusCode |
Допустимый статус, например NOERROR |
NOERROR |
DNS_IP_ADDRESS¶
Проверяет значение IP-адреса, возвращённое в записях A/AAAA.
| Свойство | Тип | Описание | Значение | Значение по умолчанию |
|---|---|---|---|---|
quantifier |
строка | Сколько записей должно соответствовать условию для выполнения ограничения | any (хотя бы одна) или all |
any |
operator |
строка | Оператор сравнения | =, != или in |
= для адреса, in для подсети |
recordType |
строка | Тип DNS-записи | A или AAAA |
A, если адрес/подсеть IPv4; AAAA, если адрес/подсеть IPv6 |
address |
строка | IPv4-адрес в точечной нотации или IPv6-адрес в нотации с двоеточием. Только с операторами =, !=. Исключает subnet |
Допустимый адрес, например 192.168.0.1, 2001:db8::2:1 |
|
subnet |
строка | IPv4-подсеть в точечной нотации или IPv6-подсеть в нотации с двоеточием с длиной сетевого префикса. Только с оператором in. Исключает address |
Допустимая подсеть, например 172.22.80.0/20, 2001:db8:85a3::0/48 |
{
"type": "DNS_IP_ADDRESS",
"properties": {
"quantifier": "any",
"recordType": "A",
"operator": "=",
"address": "54.208.9.71"
}
}
{
"type": "DNS_IP_ADDRESS",
"properties": {
"quantifier": "all",
"recordType": "A",
"operator": "in",
"subnet": "10.102.44.0/24"
}
}
DNS_RECORD_COUNT¶
Проверяет количество записей заданного типа.
| Свойство | Тип | Описание | Значение | Значение по умолчанию |
|---|---|---|---|---|
operator |
строка | Оператор сравнения | >=, >, <=, <, = или != |
> |
recordType |
строка | Тип DNS-записи | Допустимый тип записи, например MX |
|
value |
целое число | Ожидаемое количество записей | Допустимое количество, например 2. Диапазон = 0–65535 |
80 |
DNS_TIME_TO_LIVE¶
Проверяет время жизни (TTL) записей заданного типа.
| Свойство | Тип | Описание | Значение | Значение по умолчанию |
|---|---|---|---|---|
quantifier |
строка | Сколько записей должно соответствовать условию для выполнения ограничения | any (хотя бы одна) или all |
any |
operator |
строка | Оператор сравнения | >=, >, <=, <, = или != |
> |
recordType |
строка | Тип DNS-записи | Допустимый тип записи, например NS |
|
value |
целое число | Ожидаемое TTL в секундах | Допустимое TTL, например 3600. Диапазон = 0–2147483647 |
80 |
{
"type": "DNS_TIME_TO_LIVE",
"properties": {
"quantifier": "any",
"recordType": "A",
"operator": ">=",
"value": "80"
}
}
DNS_RECORD_VALUE¶
Проверяет необработанное значение записей заданного типа, формат значения зависит от типа записи.
Ограничения обрабатывают все записи в ответе, независимо от раздела, к которому они принадлежат (answer, authority или additional).
| Свойство | Тип | Описание | Значение | Значение по умолчанию |
|---|---|---|---|---|
quantifier |
строка | Сколько записей должно соответствовать условию для выполнения ограничения | any (хотя бы одна) или all |
any |
operator |
строка | Оператор сравнения — contains проверяет, содержит ли значение записи заданную последовательность; matches проверяет, соответствует ли значение записи заданному шаблону |
contains или matches |
contains |
recordType |
строка | Тип DNS-записи | Допустимый тип записи, например TXT |
|
sequence |
строка | Последовательность символов, которую должно содержать значение записи. Только с оператором contains. Исключает pattern |
Непустая последовательность, например ms71815323 |
|
pattern |
строка | Шаблон для сопоставления со значением записи, где * обозначает 0 или более символов. Только с оператором matches. Исключает sequence |
Непустой шаблон, например "v=spf1 include:* |
{
"type": "DNS_RECORD_VALUE",
"properties": {
"quantifier": "any",
"recordType": "TXT",
"operator": "contains",
"sequence": "ms71815323"
}
}
{
"type": "DNS_RECORD_VALUE",
"properties": {
"quantifier": "any",
"recordType": "TXT",
"operator": "matches",
"pattern": "\"v=spf1 include:*"
}
}
Связанные темы¶
- API синтетических мониторов