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 Тип Доступ Описание
    regIndex 1.3.6.1.4.1.57777.1.1.20.1.1 Integer32 Read-only Индекс регистра (1..N).
    regValue 1.3.6.1.4.1.57777.1.1.20.1.2 Integer32 Read-write Значение регистра.

doTable

  • OID: 1.3.6.1.4.1.57777.1.1.21
  • Описание: Таблица для управления дискретными выходами (Digital Outputs).
  • Колонки:
    Колонка OID Тип Доступ Описание
    doIndex 1.3.6.1.4.1.57777.1.1.21.1.1 Integer32 Read-only Индекс выхода (1..N).
    doValue 1.3.6.1.4.1.57777.1.1.21.1.2 Integer32 Read-write Состояние выхода: 0 — выключен, 1 — включен.

diTable

  • OID: 1.3.6.1.4.1.57777.1.1.22
  • Описание: Таблица для чтения состояния дискретных входов (Digital Inputs).
  • Колонки:
    Колонка OID Тип Доступ Описание
    diIndex 1.3.6.1.4.1.57777.1.1.22.1.1 Integer32 Read-only Индекс входа (1..N).
    diValue 1.3.6.1.4.1.57777.1.1.22.1.2 Integer32 Read-only Состояние входа: 0 — выключен, 1 — включен.

aoTable

  • OID: 1.3.6.1.4.1.57777.1.1.23
  • Описание: Таблица для управления аналоговыми выходами (Analog Outputs).
  • Колонки:
    Колонка OID Тип Доступ Описание
    aoIndex 1.3.6.1.4.1.57777.1.1.23.1.1 Integer32 Read-only Индекс выхода (1..N).
    aoValue 1.3.6.1.4.1.57777.1.1.23.1.2 Integer32 Read-write Значение аналогового выхода (0..65535).

aiTable

  • OID: 1.3.6.1.4.1.57777.1.1.24
  • Описание: Таблица для чтения значений аналоговых входов (Analog Inputs).
  • Колонки:
    Колонка OID Тип Доступ Описание
    aiIndex 1.3.6.1.4.1.57777.1.1.24.1.1 Integer32 Read-only Индекс входа (1..N).
    aiValue 1.3.6.1.4.1.57777.1.1.24.1.2 Integer32 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
  

Примеры интеграции

Мониторинг тревог

  1. Периодически запрашивайте 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
      
  2. Настройте обработку alarmTrap в вашем менеджере (например, Zabbix или Nagios) для уведомлений.

Управление сценариями

  1. Запустите сценарий:
      snmpset -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.8.0 i 1
      
  2. Проверьте состояние:
      snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.7.0
      
  3. Получите scriptStartTrap или scriptStopTrap через snmptrapd.

Мониторинг и управление входами/выходами

  1. Чтение состояния первого дискретного входа:
      snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.22.1.2.1
      
  2. Установка значения первого аналогового выхода:
      snmpset -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.23.1.2.1 i 5000
      
  3. Чтение значения первого аналогового входа:
      snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.24.1.2.1
      

Мониторинг подключения к серверу

  1. Запрашивайте srvConnect:
      snmpget -v2c -c public 192.168.1.10 1.3.6.1.4.1.57777.1.1.12.0