Для подключения контроллера к Zabbix используется шаблон: файл с описанием показателей, правил обнаружения ресурсов, графиков и условий возникновения проблем. Подготовленный шаблон предназначен для Zabbix 7.0 LTS и подходит для X0 и X1.

Скачать шаблон Telematic X0/X1 для Zabbix 7.0 — JSON

Шаблон использует числовые OID. Устанавливать MIB на сервер Zabbix для опроса не требуется. Подробное описание объектов контроллера приведено в разделе SNMP.

Что собирает шаблон

  • Модель, версия прошивки, время работы контроллера и состояние соединения с сервером.
  • Маски системных и пользовательских аварий.
  • Код, имя, состояние и тип сценария, причины запуска и остановки, время выполнения.
  • Значения и имена доступных Reg, Do, Di, Ao и Ai. Ресурсы обнаруживаются автоматически с учётом внешнего доступа.
  • Числовые значения Reg с преобразованием float и беззнаковых целых; масштаб int/uint задаётся макросами узла.
  • Значения Ao в процентах, температурных Ai в °C, входа напряжения X1 в вольтах. Ai в режиме raw сохраняется в отсчётах АЦП.
  • Графики каждого обнаруженного Reg и Ai; история других числовых показателей также доступна для просмотра.

Готовые триггеры сообщают об отсутствии данных SNMP, активных системных и пользовательских авариях, ошибке измерения температуры. Контроль обязательного соединения с сервером и непрерывной работы сценария включается отдельно.

Первое подключение

Нужен работающий Zabbix server или proxy с поддержкой SNMP и доступом к адресу контроллера по UDP 161. Браузер, в котором открыт Zabbix, сам не опрашивает контроллер. Устанавливать Zabbix agent на контроллер не нужно.

  1. В настройках контроллера включите SNMP и проверьте community чтения. Если собственная защита чтения не настроена, используется public.
  2. Для ресурсов, которые нужно наблюдать, разрешите внешний доступ на чтение. Доступа только через веб-интерфейс недостаточно. Разрешать запись для мониторинга не требуется.
  3. В Zabbix откройте Сбор данных → Шаблоны (Data collection → Templates), нажмите Импорт и выберите скачанный JSON. После импорта появится шаблон Telematic X0 X1 by SNMP в группе Templates/Telematic.
  4. В Сбор данных → Узлы сети (Data collection → Hosts) создайте узел, задайте имя и группу, привяжите этот шаблон.
  5. Добавьте интерфейс SNMP: IP-адрес контроллера, порт 161, версия SNMPv2, community чтения, например public. В интерфейсе Zabbix пункт SNMPv2 соответствует SNMPv2c.
  6. Для первого подключения снимите Use combined requests и задайте Max repetitions = 1. Эти параметры ограничивают размеры запросов; они относятся к интерфейсу узла и не задаются файлом шаблона. Не уменьшайте начальный интервал опроса 60s.
  7. Сохраните узел. Через несколько минут проверьте Мониторинг → Последние данные (Monitoring → Latest data), выбрав созданный узел.

Например, для контроллера с адресом 192.168.50.108 укажите этот IP в интерфейсе SNMP. Пароль записи private для опроса не используется.

Правила импорта и параметры интерфейса описаны в документации Zabbix: импорт шаблонов, настройка SNMP.

Обнаружение ресурсов

После привязки шаблона Zabbix создаёт пять правил обнаружения: Reg, Do, Di, Ao и Ai. Индексы каналов совпадают с контроллером и начинаются с нуля. Ресурсы со скрытым внешним доступом не создаются.

Обнаружение выполняется раз в час. Чтобы не ждать после изменения имён, типов или доступа, откройте правила обнаружения узла и выполните Выполнить сейчас (Execute now). Имена, типы и единицы в созданных элементах обновляются при обнаружении, а не при каждом чтении значения.

Если ранее доступный ресурс исчез, после обнаружения его опрос отключается; сам элемент и его история сохраняются ещё семь дней. Это позволяет вернуть случайно скрытый ресурс без немедленной потери истории.

Значение Do — логическое состояние. Коэффициент заполнения PWM через SNMP не передаётся. Единицы и масштаб Ai определяются автоматически по модели, индексу и типу входа; для X1 третий обработанный Ai отображается в вольтах. Значение температурной ошибки 32767 вызывает проблему и не записывается как температура.

Настройка регистров

Для каждого Reg создаются два показателя:

  • Исходное значение — целое, полученное по SNMP; полезно при диагностике представления данных.
  • Значение — преобразованное число для просмотра и графика.

Для float преобразование IEEE 754 выполняется автоматически; для uint восстанавливается беззнаковое значение. Bool и enum остаются числами: 0/1 и индексом варианта с нуля. Значения float NaN и бесконечность не сохраняются как обычные числовые измерения; у преобразованного показателя появляется ошибка обработки, исходные биты остаются доступны.

Количество десятичных знаков int/uint не передаётся по SNMP. Поэтому для регистров с dec больше нуля задайте на вкладке Макросы узла контекстный макрос по индексу. Например, если Reg[0] хранит температуру с одним десятичным знаком:

  {$TELE.REG.DEC:"0"}   = 1
{$TELE.REG.UNITS:"0"} = °C
  

Тогда исходное значение 125 отображается как 12.5 °C. Для другого регистра используйте его индекс в кавычках. Допустимый dec — 0..7; значение по умолчанию — 0. Для float, bool и enum этот макрос масштаба не применяется. Макрос единиц необязателен и по умолчанию пуст.

Диапазоны нормы и аварийные пороги Reg зависят от вашей задачи. Создайте собственные триггеры для нужных регистров; шаблон не назначает им произвольные пределы. Названия вариантов enum также задаются в вашей программе мониторинга отдельно.

Макросы и условия возникновения проблем

На уровне узла можно переопределить:

  • {$TELE.INTERVAL} — интервал обычного опроса, по умолчанию 60s. Модель и версия прошивки читаются раз в час.
  • {$TELE.DISCOVERY.INTERVAL} — интервал обнаружения, по умолчанию 1h.
  • {$TELE.NODATA} — отсутствие данных о времени работы контроллера, по умолчанию 5m. Это значение должно быть больше интервала опроса.
  • {$TELE.SERVER.REQUIRED} — 1, если соединение контроллера с сервером обязательно. При значении по умолчанию 0 отсутствие соединения лишь отображается в данных.
  • {$TELE.SCRIPT.REQUIRED} — 1, если сценарий должен выполняться непрерывно. При значении по умолчанию 0 остановленный сценарий сам по себе не создаёт проблему.

Проверки обязательного соединения и сценария анализируют последние пять минут: проблема возникает, если за этот интервал нет состояния «подключён» или «выполняется» соответственно. Планово завершающиеся сценарии не требуют включения TELE.SCRIPT.REQUIRED.

Аварии контроллера отслеживаются двумя общими триггерами по ненулевым маскам. Конкретный активный бит можно определить по значению маски; автоматическое получение названий отдельных аварий по SNMP не предусмотрено. Условия проблем не отправляют сообщения сами по себе: для уведомлений по почте, в мессенджер или другим способом настройте действия Zabbix.

Необязательный приём trap

Обычный мониторинг работает посредством опроса и не требует настройки trap. Шаблон также содержит изначально отключённый элемент SNMP trap: входящие уведомления.

Для его использования:

  1. Настройте snmptrapd, передачу trap в Zabbix и SNMP trapper на сервере или proxy по официальной инструкции Zabbix.
  2. Укажите в контроллере IP этого получателя, включите соответствующего адресата и настройте community для trap. Контроллер отправляет SNMPv1 Trap на UDP 162, даже когда опрос настроен как SNMPv2.
  3. Включите элемент SNMP trap: входящие уведомления на нужном узле.

Узел сопоставляется с источником trap по SNMP-интерфейсу. При NAT проверьте, что адрес, который видит получатель, совпадает с адресом интерфейса узла.

Этот элемент хранит текст входящих уведомлений, которые не подошли другим элементам trap этого узла. Он не заменяет опрос и не обновляет числовые показатели из trap. Триггеры шаблона используют результаты опроса; для немедленных событий по trap нужны отдельные правила обработки.

Если данные не появились

Сначала проверьте простой запрос с сервера или proxy Zabbix, а не только со своего компьютера:

  snmpget -v2c -c public 192.168.50.108 1.3.6.1.4.1.57777.1.1.1.0
  

Ответ должен содержать x0 или x1. При таймауте проверьте включение SNMP, IP, community и доступ UDP 161 между сервером и контроллером. Если системные показатели есть, а каналов нет, проверьте внешний доступ ресурсов и выполните обнаружение вручную. Если числовые Reg отличаются в 10, 100 или 1000 раз, проверьте макрос TELE.REG.DEC соответствующего индекса.

Шаблон имеет формат экспорта Zabbix 7.0. Для более старой версии Zabbix потребуется отдельная адаптация файла.