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: <ключ потока>
Параметры конфигурации используемые в сценарии
Параметр | Тип | Обязательный параметр | Значение по умолчанию | Возможные значения | Описание |
---|---|---|---|---|---|
listen | string | нет | 0.0.0.0 | IP-адрес | Задает интерфейс, на котором будет прослушиваться порт. Значение 0.0.0.0 означает прослушивание на всех доступных сетевых интерфейсах. |
port | string | нет | 162 | Число от 1 до 65535 | Параметр указывает порт, на котором плагин будет ожидать входящие соединения. |
mibPath | string | нет | - | Любая строка | Путь к каталогу с MIB файлами, для более корректного декодирования трапов |
bufferType | string | нет | memory | memory /filesystem | Определяет тип памяти для очереди |
bufferInputName | string | нет | - | Любая строка | Параметр необходим если пользователь хочет слушать разные порты по одному протоколу на агенте. . |
bufferSize | string | нет | = chunkSize | Любое число | Определяет максимальный размер буфера в килобайтах для приема сообщения. Если не задано, по умолчанию будет использовано значение chunkSize . |
chunkSize | string | нет | 32768 | Любое число | Задает максимальный размер "порций" данных для хранения входящих сообщений |
streamKey | string | да | - | Любая строка | Ключ потока, в который необходимо отправлять собранные данные |
Декодирование 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
}