Перейти к содержанию
Контроль температуры в Zabbix через USB-датчик ODTEMP Выбрать устройство

Контроль температуры в Zabbix через USB-датчик ODTEMP

Подключение ODTEMP к Zabbix: выбор узла для USB, внешняя проверка, настройка показаний и оповещений, обработка ошибок и проверка перед запуском.

ODTEMP передаёт показания по USB, а в Zabbix их доставляет программа на компьютере. Такой вариант удобен, если рядом с контролируемой точкой уже работает сервер или терминал. Сам датчик не подключается к Ethernet и не отправляет оповещения.

Что потребуется

Выберите исполнение ODTEMP по месту измерения и погрешности. Подготовьте постоянно работающий компьютер с доступным USB и определите, где будет выполняться опрос.

Для начала есть проект интеграции ODTEMP-1 с Zabbix. Репозиторий содержит скрипты и пример окружения. Работу с вашей версией Zabbix, ОС и способом подключения USB проверьте до переноса настроек в действующую систему.

1. Выберите узел, которому доступен USB

Внешнюю проверку External check выполняет Zabbix server или обслуживающий хост Zabbix proxy. Скрипт запускается от пользователя этой службы из каталога ExternalScripts. Поэтому датчик должен быть доступен именно там, где выполняется скрипт. Это правило описано в документации Zabbix.

Если датчик подключён к другому компьютеру, простое добавление его адреса в интерфейсе Zabbix не перенесёт USB на сервер. Потребуется локальный сбор и отдельная схема передачи данных либо размещение проверки на подходящем узле. В контейнерной установке проверьте доступность порта внутри контейнера.

2. Проверьте чтение до настройки Zabbix

Сначала получите показания в odtemp-logger или через CDC-протокол ODTEMP. Зафиксируйте фактическое имя порта и проверьте его после перезапуска компьютера.

Затем подготовьте Python, зависимости и скрипты по инструкции проекта. Проверьте запуск от имени служебного пользователя, а не только администратора. Доступ к USB задавайте для нужной службы или группы, без широких прав вроде chmod 666. Код оболочки можно изучить до установки.

3. Создайте элемент данных

В примере используется внешний скрипт get_temperature_zabbix.sh. Фактический путь порта можно передать параметром ключа:

get_temperature_zabbix.sh[/dev/ttyACM0]

Путь в примере условный: замените его портом своего датчика.

Настройте числовой тип с плавающей точкой, единицу °C и нужный период опроса. Убедитесь, что в последних данных появляется новое значение с актуальным временем. Наличие графика за прошлые сутки ещё не подтверждает текущую связь.

Скрипт чтения извлекает температуру из ответа на ~G. Отдельный канал влажности он не создаёт: для ODTEMP-1D потребуется разбор второго значения и настройка соответствующего элемента данных.

4. Отделите ошибку связи от температуры

Оболочка примера возвращает -999, если чтение не удалось. Это код ошибки, а не измеренная температура. Если сохранять его как обычную точку, график исказится, а контроль отсутствия данных может не сработать: значения продолжают поступать.

До рабочего запуска настройте обработку этого кода и отдельное состояние неисправности. Проверьте отключение USB, отсутствие прав и занятый порт. Настоящие отрицательные температуры при этом должны оставаться допустимыми измерениями в пределах выбранного датчика.

5. Проверьте оповещения и восстановление

Пороги выбирайте по контролируемому оборудованию и нормальному профилю помещения. Добавьте задержку для кратких отклонений и отдельное событие потери достоверных показаний. Оповещение должно доходить до ответственного сотрудника, а не только появляться в журнале.

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

ODTEMP не накапливает журнал вместо выключенного ПК. Если нужна история за период простоя компьютера, рассмотрите автономный логгер.