SNMP
SNMP (Simple Network Management Protocol) — это стандартный протокол управления сетью, используемый для мониторинга, сбора данных и настройки устройств в IP-сетях, таких как маршрутизаторы, коммутаторы и серверы.
Поддержка SNMP
Контроллер Telematic поддерживает протокол SNMP версии 2c. Все операции выполняются через UDP-порт 161 (для GET/SET) и 162 (для TRAPs). SNMP используется для:
- Мониторинга: Получение текущих значений параметров устройства, таких как системные тревоги, пользовательские тревоги, состояние сценариев, подключение к серверу, а также значения регистров и входов/выходов.
- Управления: Установка параметров, таких как запуск/остановка сценариев и управление выходами.
- Уведомлений: Получение TRAPs о критических событиях, таких как возникновение тревог или изменение состояния сценария.
Конфигурация параметров SNMP доступка в настройках контроллера, в разделе SNMP:
- “Использовать” - включает/отключает SNMP на контроллере.
- “Пароль на чтение” - настройка Read Community.
- “Пароль на изменение” - настройка Write Community.
- “Пароль для trap” - настройка пароля для получения trap.
- “IP-адрес trap1” - ip-адрес устройства для получения уведомлений trap.
- “IP-адрес trap2” - ip-адрес дополнительного устройства для получения уведомлений trap.
Структура MIB
MIB контроллера Telematic зарегистрирован под enterprise OID 1.3.6.1.4.1.57777.1.1 (где 57777 — частный enterprise number). Основной узел MIB — dev_x0 (1.3.6.1.4.1.57777.1.1).
Скалярные объекты
| Объект | OID | Тип | Доступ | Описание |
|---|---|---|---|---|
sysAlarms |
1.3.6.1.4.1.57777.1.1.4.0 |
Integer32 | Read-only | Битовое поле системных тревог (0 — нет тревог, ненулевое значение — активные тревоги). |
alarms |
1.3.6.1.4.1.57777.1.1.5.0 |
Integer32 | Read-only | Битовое поле пользовательских тревог. |
scriptCode |
1.3.6.1.4.1.57777.1.1.6.0 |
Integer32 | Read-only | Код исполняемого сценария (0, если сценарий не выполняется). |
scriptState |
1.3.6.1.4.1.57777.1.1.7.0 |
Integer32 | Read-only | Состояние сценария (0 — остановлен, 1 — выполняется). |
scriptControl |
1.3.6.1.4.1.57777.1.1.8.0 |
Integer32 | Read-write | Управление сценариев: 0 — остановить, 1 — запустить. |
scriptReasonStart |
1.3.6.1.4.1.57777.1.1.10.0 |
Integer32 | Read-only | Код причины запуска сценария. |
scriptReasonStop |
1.3.6.1.4.1.57777.1.1.11.0 |
Integer32 | Read-only | Код причины остановки сценария. |
srvConnect |
1.3.6.1.4.1.57777.1.1.12.0 |
Integer32 | Read-only | Состояние подключения к серверу (0 — отключен, 1 — подключен). |
Таблицы
Контроллер предоставляет таблицы для доступа к регистрам и входам/выходам. Каждая таблица имеет индекс, соответствующий номеру регистра или канала (начинается с 1).
regTable
- OID:
1.3.6.1.4.1.57777.1.1.20 - Описание: Таблица для чтения и записи значений регистров контроллера.
- Колонки:
Колонка OID Тип Доступ Описание regIndex1.3.6.1.4.1.57777.1.1.20.1.1Integer32 Read-only Индекс регистра (1..N). regValue1.3.6.1.4.1.57777.1.1.20.1.2Integer32 Read-write Значение регистра.
doTable
- OID:
1.3.6.1.4.1.57777.1.1.21 - Описание: Таблица для управления дискретными выходами (Digital Outputs).
- Колонки:
Колонка OID Тип Доступ Описание doIndex1.3.6.1.4.1.57777.1.1.21.1.1Integer32 Read-only Индекс выхода (1..N). doValue1.3.6.1.4.1.57777.1.1.21.1.2Integer32 Read-write Состояние выхода: 0 — выключен, 1 — включен.
diTable
- OID:
1.3.6.1.4.1.57777.1.1.22 - Описание: Таблица для чтения состояния дискретных входов (Digital Inputs).
- Колонки:
Колонка OID Тип Доступ Описание diIndex1.3.6.1.4.1.57777.1.1.22.1.1Integer32 Read-only Индекс входа (1..N). diValue1.3.6.1.4.1.57777.1.1.22.1.2Integer32 Read-only Состояние входа: 0 — выключен, 1 — включен.
aoTable
- OID:
1.3.6.1.4.1.57777.1.1.23 - Описание: Таблица для управления аналоговыми выходами (Analog Outputs).
- Колонки:
Колонка OID Тип Доступ Описание aoIndex1.3.6.1.4.1.57777.1.1.23.1.1Integer32 Read-only Индекс выхода (1..N). aoValue1.3.6.1.4.1.57777.1.1.23.1.2Integer32 Read-write Значение аналогового выхода (0..65535).
aiTable
- OID:
1.3.6.1.4.1.57777.1.1.24 - Описание: Таблица для чтения значений аналоговых входов (Analog Inputs).
- Колонки:
Колонка OID Тип Доступ Описание aiIndex1.3.6.1.4.1.57777.1.1.24.1.1Integer32 Read-only Индекс входа (1..N). aiValue1.3.6.1.4.1.57777.1.1.24.1.2Integer32 Read-only Значение аналогового входа (0..65535).
Уведомления (TRAPs)
Контроллер отправляет следующие TRAPs для уведомления о событиях:
| TRAP | OID | Объекты | Описание |
|---|---|---|---|
alarmTrap |
1.3.6.1.4.1.57777.1.1.100 |
sysAlarms, alarms |
Отправляется при возникновении или изменении системных или пользовательских тревог. |
scriptStartTrap |
1.3.6.1.4.1.57777.1.1.101 |
scriptCode, scriptReasonStart |
Отправляется при запуске сценария. |
scriptStopTrap |
1.3.6.1.4.1.57777.1.1.102 |
scriptCode, scriptReasonStop |
Отправляется при остановке сценария. |
Каждый TRAP отправляется в формате SNMPv2c с типом enterpriseSpecific и содержит указанные объекты в переменных привязках (varbinds).
Файл TELE_X0.MIB
Структура данных Telematic, доступных для управления через протокол SNMP описана файле TELE_X0.MIB.
Использование SNMP
Чтение параметров (GET)
Используйте команду snmpget для чтения значений скалярных объектов. Пример:
snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.4.0
Вывод:
Telematic-MIB::sysAlarms.0 = INTEGER: 0
Для чтения значений из таблиц используйте индекс. Пример чтения значения первого регистра из regTable:
snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.20.1.2.1
Установка параметров (SET)
Для управления сценариями или выходами используйте snmpset. Пример запуска сценария:
snmpset -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.8.0 i 1
Остановка сценария:
snmpset -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.8.0 i 0
Установка значения первого дискретного выхода в doTable:
snmpset -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.21.1.2.1 i 1
Получение TRAPs
TRAPs отправляются автоматически при возникновении событий:
alarmTrap: При измененииsysAlarmsилиalarms.scriptStartTrap: При запуске сценария (например, черезscriptControl = 1).scriptStopTrap: При остановке сценария (например, черезscriptControl = 0).
Пример вывода snmptrapd для alarmTrap:
2025-09-09 17:08:00 192.168.1.10 [UDP: [192.168.1.10]:1024]:
Telematic-MIB::alarmTrap
Telematic-MIB::sysAlarms.0 = INTEGER: 1
Telematic-MIB::alarms.0 = INTEGER: 2
Примеры интеграции
Мониторинг тревог
- Периодически запрашивайте
sysAlarmsиalarms:snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.4.0 1.3.6.1.4.1.57777.1.1.5.0 - Настройте обработку
alarmTrapв вашем менеджере (например, Zabbix или Nagios) для уведомлений.
Управление сценариями
- Запустите сценарий:
snmpset -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.8.0 i 1 - Проверьте состояние:
snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.7.0 - Получите
scriptStartTrapилиscriptStopTrapчерезsnmptrapd.
Мониторинг и управление входами/выходами
- Чтение состояния первого дискретного входа:
snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.22.1.2.1 - Установка значения первого аналогового выхода:
snmpset -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.23.1.2.1 i 5000 - Чтение значения первого аналогового входа:
snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.24.1.2.1
Мониторинг подключения к серверу
- Запрашивайте
srvConnect:snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.12.0