Перейти к основному содержимому
Версия: 8.4

SNMP Traps

Общие сведения

Название плагина: snmpTrap

Описание:

Плагин предназначен для получения SNMP трапов SNMPv1 и SNMPv2.

⚠️ Может быть использован только при настройке Рабочей конфигурации агента.

Формат сценария рабочей конфигурации агента


continuous-jobs:
- init-step:
plugin: snmpTrap
with:
listen: 0.0.0.0
port: 162
mibPath: C:\mibs
bufferType: memory
bufferSize: 100
chunkSize: 32768
bufferInputName: snmp.job1
streamKey: <ключ потока>

Параметры конфигурации используемые в сценарии

ПараметрТипОбязательный параметрЗначение по умолчаниюВозможные значенияОписание
listenstringнет0.0.0.0IP-адресЗадает интерфейс, на котором будет прослушиваться порт. Значение 0.0.0.0 означает прослушивание на всех доступных сетевых интерфейсах.
portstringнет162Число от 1 до 65535Параметр указывает порт, на котором плагин будет ожидать входящие соединения.
mibPathstringнет-Любая строкаПуть к каталогу с MIB файлами, для более корректного декодирования трапов
bufferTypestringнетmemorymemory/filesystemОпределяет тип памяти для очереди
bufferInputNamestringнет-Любая строкаПараметр необходим если пользователь хочет слушать разные порты по одному протоколу на агенте. .
bufferSizestringнет= chunkSizeЛюбое числоОпределяет максимальный размер буфера в килобайтах для приема сообщения. Если не задано, по умолчанию будет использовано значение chunkSize.
chunkSizestringнет32768Любое числоЗадает максимальный размер "порций" данных для хранения входящих сообщений
streamKeystringда-Любая строкаКлюч потока, в который необходимо отправлять собранные данные

Декодирование OID

Плагин snmpTrap способен декодировать трапы в человекочитаемый формат, для того чтобы пользователь мог явно понимать полученную информацию о трапе.

При запуске плагина агент загружает во внутреннюю память данные MIB файлов, считывая их по указанному пути в параметре mibPath.

Пример декодирования:

Устройство отправило трап, уведомляя пользователя, что состояние порта изменилось с "down" на "up":

UDP: [192.168.1.1]:56789->[192.168.1.2]:162
1.3.6.1.2.1.1.3.0 123456789
1.3.6.1.6.3.1.1.4.1.0 1.3.6.1.6.3.1.1.5.4
1.3.6.1.6.3.1.1.4.3.0 1.3.6.1.4.1.12345
1.3.6.1.2.1.2.2.1.1.1 1
1.3.6.1.2.1.2.2.1.2.1 "Ethernet0"
1.3.6.1.2.1.2.2.1.3.1 6
1.3.6.1.2.1.2.2.1.4.1 1500
1.3.6.1.2.1.2.2.1.5.1 10000000
1.3.6.1.2.1.2.2.1.6.1 0:1:2:3:4:5
1.3.6.1.2.1.2.2.1.7.1 1
1.3.6.1.2.1.2.2.1.8.1 1

После декодирования сырого события оно будет выглядеть следующим образом:

Event: SNMP trap received
Host: 192.168.1.1
Timestamp: 2024-10-01 12:34:56
Trap OID: IF-MIB::linkUp
Variable Bindings:
DISMAN-EVENT-MIB::sysUpTimeInstance = 123456789
SNMPv2-MIB::snmpTrapOID.0 = IF-MIB::linkUp
IF-MIB::ifIndex.1 = 1
IF-MIB::ifDescr.1 = "Ethernet0"
IF-MIB::ifType.1 = 6
IF-MIB::ifMtu.1 = 1500
IF-MIB::ifSpeed.1 = 10000000
IF-MIB::ifPhysAddress.1 = 0:1:2:3:4:5
IF-MIB::ifAdminStatus.1 = 1
IF-MIB::ifOperStatus.1 = 1
  • Если MIB файлы не загрузились (например, указанная директория ведет в несуществующую папку) - агент сообщит об ошибке.
  • Если необходимые для декодирования файлы не найдены - декодирование не выполняется.
  • Если необходимые MIB файлы были обнаружены должны появиться человекочитаемые параметры вместо OID.

Плагин имеет встроенные, общие MIB файлы в библиотеке:

  • SNMPV2-SMI
  • SNMPV2-CONF
  • SNMPV2-TC
  • SNMPV2-MIB
  • SNMPV2-TM

Если трап можно декодировать используя их он будет декодирован, даже если в указанной пользователем директории нет никаких MIB файлов.

Пример события отправляемого в коллектор

{
"source": {
"enterprise": "SNMPV2-SMI::zeroDotZero",
"agentAddress": "192.168.216.58",
"generic": "ColdStart",
"specific": 0,
"timestamp": 0,
"mib": "SNMPV2-SMI::mib-2.25.1.7.0",
"value": 7,
"enterprises": "SNMPV2-SMI::enterprises.2011.6.7"
},
"@timestamp": "2024-08-02T09:01:33.145+03:00",
"_aggregatedAt": "2024-08-02T09:01:33.145+03:00",
"_id": "6dd2576b-f122-4298-9294-941c90b1d75e",
"_labels": {
"postRoutings": [
"cl.stream-ready-event.new"
]
},
"_rawId": "12e7e9ad-394e-45bf-aa86-03f238a92d9b",
"_stream": {
"id": 5318,
"name": "agent new"
},
"_userspaceId": 1
}