Нет описания правки |
|||
Строка 1: | Строка 1: | ||
'''''[[Расширения]] / | '''''[[Расширения]] / Расширения 2.0 / Источник данных SNMP Traps''''' | ||
SNMP traps — это стандартный способ уведомления центральной системы управления сетью о значительных проблемах и событиях в вашей сетевой инфраструктуре. | SNMP traps — это стандартный способ уведомления центральной системы управления сетью о значительных проблемах и событиях в вашей сетевой инфраструктуре. | ||
АппОптима предоставляет вам платформу для расширения мониторинга данных, связанных с SNMP traps, и пересылки сообщений trap, созданных вашими SNMP-устройствами, в виде логов. | |||
Основные предположения: | Основные предположения: | ||
Строка 12: | Строка 12: | ||
== Предварительные условия и поддержка == | == Предварительные условия и поддержка == | ||
'''Поддерживаемые версии | '''Поддерживаемые версии АппОптима:''' | ||
* Версия | * Версия АппОптима 1.236+. | ||
* Версия Активный Шлюз 1.235+. | * Версия Активный Шлюз 1.235+. | ||
* Log Monitoring v1 не поддерживается. | * Log Monitoring v1 не поддерживается. | ||
Строка 172: | Строка 172: | ||
== Лучшие практики для ключей метрик == | == Лучшие практики для ключей метрик == | ||
Метрики, которые вы вставляете в | Метрики, которые вы вставляете в АппОптима с помощью вашего расширения, — это лишь некоторые из тысяч метрик, встроенных и пользовательских, обрабатываемых АппОптима. Чтобы сделать ваши ключи метрик уникальными и легко идентифицируемыми в АппОптима, лучше всего добавлять к имени метрики префикс имени расширения. Это гарантирует уникальность ключа метрики, и вы можете легко назначить метрику определенному расширению в вашей среде. | ||
== Набор функций == | == Набор функций == | ||
Строка 280: | Строка 280: | ||
``` | ``` | ||
После подготовки вашего YAML-файла расширения упакуйте его, подпишите и загрузите в ваше окружение | После подготовки вашего YAML-файла расширения упакуйте его, подпишите и загрузите в ваше окружение АппОптима. | ||
Мастер активации расширения на основе | Мастер активации расширения на основе АппОптима Hub содержит динамически обновляемую полезную нагрузку JSON с вашей конфигурацией мониторинга | ||
Вы также можете использовать API | Вы также можете использовать API АппОптима для загрузки схемы для вашего расширения, которая поможет вам создать полезную нагрузку JSON для вашей конфигурации мониторинга. | ||
Используйте GET конечной точки схемы расширения. | Используйте GET конечной точки схемы расширения. | ||
Строка 319: | Строка 319: | ||
'''Включено (Enabled)''' | '''Включено (Enabled)''' | ||
Если установлено значение true, конфигурация активна, и | Если установлено значение true, конфигурация активна, и АппОптима немедленно начинает мониторинг. | ||
'''Источники (sources)''' | '''Источники (sources)''' | ||
Строка 333: | Строка 333: | ||
'''Аутентификация''' | '''Аутентификация''' | ||
Данные аутентификации, переданные в API | Данные аутентификации, переданные в API АппОптима при активации конфигурации мониторинга, запутаны, и их невозможно извлечь. | ||
В зависимости от уровня безопасности создайте данные аутентификации, используя один из примеров ниже. См. список поддерживаемых протоколов. | В зависимости от уровня безопасности создайте данные аутентификации, используя один из примеров ниже. См. список поддерживаемых протоколов. |
Текущая версия от 12:40, 11 ноября 2024
Расширения / Расширения 2.0 / Источник данных SNMP Traps
SNMP traps — это стандартный способ уведомления центральной системы управления сетью о значительных проблемах и событиях в вашей сетевой инфраструктуре.
АппОптима предоставляет вам платформу для расширения мониторинга данных, связанных с SNMP traps, и пересылки сообщений trap, созданных вашими SNMP-устройствами, в виде логов.
Основные предположения:
- Ваши устройства способны отправлять SNMP traps.
- Вы знаете, как настроить эти устройства для отправки traps и имеете соответствующие права.
- Вы знакомы с основными концепциями Extensions 2.0 и общей структурой YAML-файла расширения.
Предварительные условия и поддержка
Поддерживаемые версии АппОптима:
- Версия АппОптима 1.236+.
- Версия Активный Шлюз 1.235+.
- Log Monitoring v1 не поддерживается.
Поддерживаемые версии SNMP:
- SNMPv2c и более ранние.
- SNMPv3 (начиная с версии Активный Шлюз 1.251+).
Аппаратные требования:
При большом количестве отправляемых traps возможно, что некоторые из них могут быть отброшены операционной системой. Та же ситуация происходит при достижении лимита логов.
Значения для EEC (Default Performance Profile):
Instance | CPU | MEM (MiB) | Estimated number of traps | Estimated number of traps (SNMP v3) |
---|---|---|---|---|
c5.large | 5% | 45 MiB | 30k/min (логи включены)
45k/min (логи отключены) |
17k/min (логи включены)
32k/min (логи отключены) |
Значения для EEC (High Performance Profile):
Instance | CPU | MEM (MiB) | Estimated number of traps | Estimated number of traps (SNMP v3) |
---|---|---|---|---|
c5.large | 15% | 45 MiB | 75k/min (логи включены)
150k/min (логи отключены) |
60k/min (логи включены)
105k/min (логи отключены) |
Поддерживаемая аутентификация
SNMP v2c и более ранние:
Используются строки сообщества (Community strings).
SNMP v3:
Для SNMP v3 источник данных SNMP traps поддерживает уровни безопасности NoAuthNoPriv, authNoPriv и authPriv, а также следующие протоколы аутентификации:
authNoPriv:
- MD5 (HMAC-96-MD5, RFC 3414)
- SHA (HMAC-96-SHA, RFC 3414)
- SHA224 (HMAC-128-SHA-224, RFC 7860)
- SHA256 (HMAC-192-SHA-256, RFC 7860)
- SHA384 (HMAC-256-SHA-384, RFC 7860)
- SHA512 (HMAC-384-SHA-512, RFC 7860)
authPriv:
- DES (CBC-DES, RFC 3414)
- AES (CFB128-AES-128, RFC 3826)
- AES1921 (Blumenthal key extension)
- AES2561 (Blumenthal key extension)
- AES192C1 (Reeder key extension)
- AES256C1 (Reeder key extension)
Поддерживаемые сообщения:
Источник данных SNMP traps поддерживает только SNMP traps. SNMP inform-запросы не поддерживаются.
События
События traps отправляют детальную информацию о каждом trap в лог. Сообщение trap содержит следующую информацию:
Контекст: Устройство (IP) и OID переводятся в удобочитаемую форму с использованием файлов MIB.
Сообщение: Само сообщение trap с указанием типа trap.
Атрибуты: Атрибуты, переданные в лог-событие.
Основные атрибуты:
event.type: всегда LOG
log.source: всегда snmptraps
loglevel: всегда NONE
snmp.version: 1, 2c или 3
Ограничения:
Количество получаемых и обрабатываемых trap-событий ограничено 7 000 в минуту.
Определение области данных
- Имя расширения
- Версия расширения
- Частота сбора метрик (интервал)
- Имя метрики
- Два доступных измерения: отправитель ловушки и OID ловушки
Пример файла YAML для определения области мониторинга SNMP traps:
name: custom:snmptraps-extension-example
version: 1.0.0
minKey-AstromVersion: "1.235"
author:
name: Key-Astrom SNMP traps data source team
snmptraps:
- group: generic
interval:
minutes: 1
featureSet: basic
metrics:
- key: number-of-traps-received
value: calculated
type: count,delta
Определение области мониторинга ловушек SNMP начинается с узла YAML snmptraps. Все настройки в узле относятся к объявленному типу источника данных, который в данном случае является ловушками SNMP.
Метрики
SNMP traps собирают одну метрику, которая считает количество traps, отправленных источником, определённым в конфигурации мониторинга, за указанный интервал. Пример:
metrics:
- key: myExtension.number-of-traps-received
value: calculated
type: count,delta
Лучшие практики для ключей метрик
Метрики, которые вы вставляете в АппОптима с помощью вашего расширения, — это лишь некоторые из тысяч метрик, встроенных и пользовательских, обрабатываемых АппОптима. Чтобы сделать ваши ключи метрик уникальными и легко идентифицируемыми в АппОптима, лучше всего добавлять к имени метрики префикс имени расширения. Это гарантирует уникальность ключа метрики, и вы можете легко назначить метрику определенному расширению в вашей среде.
Набор функций
Наборы функций — это категории, в которые вы организуете данные, собранные расширением. Для получения дополнительной информации см. Наборы функций. Вы можете определить наборы функций на уровне расширения, группы или индивидуальной метрики.
При активации вашего расширения с помощью конфигурации мониторинга вы можете ограничить мониторинг одним из наборов функций.
В сильно сегментированных сетях наборы функций могут отражать сегменты вашей среды. Затем, при создании конфигурации мониторинга, вы можете выбрать набор функций и соответствующую группу АктивногоШлюза, которая может подключаться к этому конкретному сегменту.
Все показатели, не отнесенные ни к одному набору характеристик, считаются показателями по умолчанию и всегда включаются в отчет.
Интервал
Интервал, с которым будет производиться измерение данных. Вы можете определить интервалы на уровне группы, подгруппы или индивидуальной метрики.
Вы можете определить интервалы с гранулярностью в одну минуту. Максимальный интервал составляет 2880 минут (2 дня, 48 часов).
Установка интервала невозможна для источников данных JMX.
Пример задания интервала:
```yaml
interval:
minutes: 5
```
Вышеуказанный формат поддерживается, начиная с версии схемы 1.217. Для более ранних версий схемы используйте следующий формат (поддерживается до версии схемы 1.251):
interval: 5m
Файлы MIB
MIB (Management Information Base) — это база данных, управляющая сущностями в сети, идентифицированными OIDs. Она предоставляет дополнительную информацию о OIDs, объявленных в вашем расширении.
Конфигурация мониторинга
После определения области мониторинга необходимо указать устройства, с которых будут собираться данные, и Активный Шлюз, которые будут выполнять расширение и подключаться к вашим устройствам.
Конфигурация мониторинга — это полезная нагрузка JSON, определяющая сведения о подключении, учетные данные и наборы функций, которые вы хотите отслеживать. Подробности см. в разделе Запуск мониторинга.
Пример активации SNMP расширения с помощью JSON-платежа:
```json
[
{
"scope": "ag_group-default",
"value": {
"version": "1.0.0",
"description": "traps from routers",
"enabled": true,
"featureSets": [
"basic"
],
"snmptraps": {
"sources" : [
{
"ip": "172.10.11.0/8",
"port": 8162,
"authentication": {
"community": "x120a1f"
}
},
{
"ip": "0.0.0.0/0",
"port": 162,
"authentication": {
"community": "public"
}
}
]
}
}
}
]
```
После подготовки вашего YAML-файла расширения упакуйте его, подпишите и загрузите в ваше окружение АппОптима.
Мастер активации расширения на основе АппОптима Hub содержит динамически обновляемую полезную нагрузку JSON с вашей конфигурацией мониторинга
Вы также можете использовать API АппОптима для загрузки схемы для вашего расширения, которая поможет вам создать полезную нагрузку JSON для вашей конфигурации мониторинга.
Используйте GET конечной точки схемы расширения.
Выполните следующий запрос:
curl -X GET "{env-id}.live/api/v2/extensions/{extension-name}/{extension-version}/schema" \
-H "accept: application/json; charset=utf-8" \
-H "Authorization: Api-Token {api-token}"
Замените {extension-name} и {extension-version} значениями из вашего файла расширения YAML. Успешный вызов возвращает схему JSON.
Область действия (Scope)
Обратите внимание, что каждому хосту Активному Шлюзу, на котором запущено ваше расширение, необходим корневой сертификат для проверки подлинности вашего расширения.
Область действия — это группа Активного Шлюза, которая будет выполнять расширение. Все Активные Шлюзы из группы будут одновременно запускать эту конфигурацию мониторинга. Если вы планируете использовать один Активный Шлюз, назначьте его выделенной группе. Вы можете назначить Активный Шлюз группе во время или после установки.
Используйте следующий формат при определении группы ActiveGate:
"scope": "ag_group-<ActiveGate-group-name>",
Замените <ActiveGate-group-name> фактическим именем.
Версия (version)
Версия этой конфигурации мониторинга. Обратите внимание, что одно расширение может запускать несколько конфигураций мониторинга.
Описание (Description)
Человекочитаемое описание особенностей этой конфигурации мониторинга.
Включено (Enabled)
Если установлено значение true, конфигурация активна, и АппОптима немедленно начинает мониторинг.
Источники (sources)
Вам необходимо определить источники ловушек в конфигурации мониторинга. Чтобы определить источник, добавьте следующие данные:
- Сеть, которая отправляет пакеты с ловушками, указанными в нотации CDIR. Чтобы настроить адрес одного интерфейса, добавьте маску подсети 32 после IP-адреса, например 172.10.11.0/32.
- UDP-порт, на который отправляются ловушки
- Учетные данные аутентификации
- SNMPv1 и SNMPv2 аутентифицируются только с использованием имени сообщества.
- SNMPv3 требует расширенной аутентификации и описывается в следующем разделе.
Аутентификация
Данные аутентификации, переданные в API АппОптима при активации конфигурации мониторинга, запутаны, и их невозможно извлечь.
В зависимости от уровня безопасности создайте данные аутентификации, используя один из примеров ниже. См. список поддерживаемых протоколов.
authPriv
{
"ip": "10.10.10.10",
"port": 161,
"authentication": {
"type": "SNMPv3",
"userName": "user",
"securityLevel": "AUTH_PRIV",
"authPassword": "********",
"authProtocol": "SHA",
"privPassword": "********",
"privProtocol": "AES256C"
}
authNoPriv
{
"ip": "10.10.10.10",
"port": 161,
"authentication": {
"type": "SNMPv3",
"userName": "user",
"securityLevel": "AUTH_NO_PRIV",
"authPassword": "********",
"authProtocol": "SHA"
}
NoAuthNoPriv
{
"ip": "10.10.10.12",
"port": 161,
"authentication": {
"type": "SNMPv3",
"userName": "snmptest_SHA_AES256",
"securityLevel": "NO_AUTH_NO_PRIV"
}
Расширенные настройки
В некоторых SNMP traps у OID переменной привязки есть динамические части, которые меняются с каждым поступающим trap. Чтобы предотвратить проблемы с обработкой SNMP traps, можно настроить обрезку OID переменной привязки.
Пример:
```json
"advanced": {
"varbindings": [
{
"root": ".1.3.6",
"suffixLen": 1
}
]
}
```
- root — используется для сопоставления суффикса и его соответствующей обрезки. Вы можете указать root в необработанном (1.3.6.1.4.1.9.9.41.1.2.3.1) или разрешенном (CISCO-SMI::ciscoMgmt.41.1.2.3.1) формате.
- suffixLen — указывает количество октетов в конце OID, которые следует обрезать.
Пример
В этом примере все привязки переменных в поддереве CISCO-SMI::ciscoMgmt заканчиваются на 34024. С каждым последующим сгенерированным прерыванием число будет увеличиваться.
Перед обрезкой:
"event.type": "LOG",
"content": "SNMP trap (CISCO-SMI::ciscoMgmt.41.2.0.1) reported from 192.168.1.100\n",
"status": "NONE",
"timestamp": "1678712960382",
"loglevel": "NONE",
"log.source": "snmptraps",
"snmp.trap_oid": "CISCO-SMI::ciscoMgmt.41.2.0.1.",
"device.address": "192.168.1.100",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.2.34024": "PKI",
"SNMPv2-MIB::snmpTrapOID": ".1.3.6.1.4.1.9.9.41.2.0.1",
"DISMAN-EVENT-MIB::sysUpTimeInstance": "1660720758",
"snmp.version": "2c",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.5.34024": "Certificate chain validation has failed. The certificate has expired. Validity period ended on 2023-11-29T03:21:33Z",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.6.34024": "1004407027",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.3.34024": "4",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.4.34024": "CERTIFICATE_INVALID_EXPIRED"
Все привязки переменных, которые соответствуют значению, указанному в корне, обрезаются.
После обрезки:
"event.type": "LOG",
"content": "SNMP trap (CISCO-SMI::ciscoMgmt.41.2.0.1) reported from 192.168.1.100\n",
"status": "NONE",
"timestamp": "1678712960382",
"loglevel": "NONE",
"log.source": "snmptraps",
"snmp.trap_oid": "CISCO-SMI::ciscoMgmt.41.2.0.1.",
"device.address": "192.168.1.100",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.2": "PKI",
"SNMPv2-MIB::snmpTrapOID": ".1.3.6.1.4.1.9.9.41.2.0.1",
"DISMAN-EVENT-MIB::sysUpTimeInstance": "1660720758",
"snmp.version": "2c",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.5": "Certificate chain validation has failed. The certificate has expired. Validity period ended on 2023-11-29T03:21:33Z",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.6": "1004407027",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.3": "4",
"CISCO-SMI::ciscoMgmt.41.1.2.3.1.4": "CERTIFICATE_INVALID_EXPIRED"
Feature sets
Feature sets позволяют организовывать данные, собранные расширением, в категории. Пример:
```json
"featureSets": [
"basic",
"advanced"
]
```