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ТипДоступОписание
sysAlarms1.3.6.1.4.1.57777.1.1.4.0Integer32Read-onlyБитовое поле системных тревог (0 — нет тревог, ненулевое значение — активные тревоги).
alarms1.3.6.1.4.1.57777.1.1.5.0Integer32Read-onlyБитовое поле пользовательских тревог.
scriptCode1.3.6.1.4.1.57777.1.1.6.0Integer32Read-onlyКод исполняемого сценария (0, если сценарий не выполняется).
scriptState1.3.6.1.4.1.57777.1.1.7.0Integer32Read-onlyСостояние сценария (0 — остановлен, 1 — выполняется).
scriptControl1.3.6.1.4.1.57777.1.1.8.0Integer32Read-writeУправление сценариев: 0 — остановить, 1 — запустить.
scriptReasonStart1.3.6.1.4.1.57777.1.1.10.0Integer32Read-onlyКод причины запуска сценария.
scriptReasonStop1.3.6.1.4.1.57777.1.1.11.0Integer32Read-onlyКод причины остановки сценария.
srvConnect1.3.6.1.4.1.57777.1.1.12.0Integer32Read-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.1Integer32Read-onlyИндекс регистра (1..N).
    regValue1.3.6.1.4.1.57777.1.1.20.1.2Integer32Read-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.1Integer32Read-onlyИндекс выхода (1..N).
    doValue1.3.6.1.4.1.57777.1.1.21.1.2Integer32Read-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.1Integer32Read-onlyИндекс входа (1..N).
    diValue1.3.6.1.4.1.57777.1.1.22.1.2Integer32Read-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.1Integer32Read-onlyИндекс выхода (1..N).
    aoValue1.3.6.1.4.1.57777.1.1.23.1.2Integer32Read-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.1Integer32Read-onlyИндекс входа (1..N).
    aiValue1.3.6.1.4.1.57777.1.1.24.1.2Integer32Read-onlyЗначение аналогового входа (0..65535).

Уведомления (TRAPs)

Контроллер отправляет следующие TRAPs для уведомления о событиях:

TRAPOIDОбъектыОписание
alarmTrap1.3.6.1.4.1.57777.1.1.100sysAlarms, alarmsОтправляется при возникновении или изменении системных или пользовательских тревог.
scriptStartTrap1.3.6.1.4.1.57777.1.1.101scriptCode, scriptReasonStartОтправляется при запуске сценария.
scriptStopTrap1.3.6.1.4.1.57777.1.1.102scriptCode, 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