Zabbix и Arduino Получаем данные из Arduino в Zabbix

В этом материале я обещал показать как можно использовать данный из Arduino в Zabbix.
Будем считать, что Arduino у вас прошита примером из предыдущей статьи и подключена к вашему компьютеру в моем случае это порт COM3.
Так же у вас настроен сервер Zabbix и на вашем компьютере настроен Zabbix Agent и эта связка работает.
Для реализации задумки нам потребуется Python, если у вас не установлен данный интерпретатор, то скачиваем и устанавливаем отсюда.
Т.к. Python мультиплатформенный, то данный материал легко реализуем на любых операционных системах (кроме мобильных) я же буду все проделывать в Windows.

Из Arduino в серийный порт мы получаем значения  влажности и температуры как

Итак, все настроено Python установлен, доустановим модуль pySerial с помощью pip в консоли, если pip отсутствует (касается например FreeBSD, где он автоматом не устанавливается), то устанавливаем.

Создадим директорию для нашего скрипта

Напишем скрипт, который будет опрашивать наш серийный порт и получать значения из Arduino, обращаем внимание на переменную «ser«, если у вас другой номер серийного порта, укажите свой (посмотреть можно в Windows в устройствах, в Linux можно посмотреть dmesg)

И сохраним данный скрипт под именем dh22.py в директорию С:\Program Files\Zabbix Agent\scripts\, для теста можно попробовать запустить скрипт с аргументами:

В первом случае вернет температуру, во втором влажность

Теперь нам нужно научить Zabbix Agent отдавать серверу эти значения, будем отдавать через пользовательские данные (UserParametr).
Открываем конфигурационный файл Zabbix Agent (в Windows используйте для редактирования программу notepad++, она замечательно работает с различными символами переноса строк)

В самый низ файла вписываем

Где:

  • dh22[*] – название параметра  (ключа), [*] — для аргументов (humidity или temperature)
  • C:\Users\vino\AppData\Local\Programs\Python\Python37\python.exe — путь до интерпретатора Python
  • C:\Program Files\Zabbix Agent\scripts\dh22.py — путь до скрипта
  • $1 — здесь будет возвращаемое значение

Рестартуем сервис Zabbix Agent

На Zabbix сервере создаем два элемента данных для нашего хоста (Настройка->Узлы сети->Выбираем наш узел и переходим в его Элементы данных), один для температуры, второй для влажности (Сделал принтскринами, картинки кликабельные) :


Далее можем добавить график, там же где добавляли элементы данных

На выходе получим что-то типа этого:)

Как бы все, надеюсь было полезно:)

Оставить комментарий

avatar
  Подписаться  
Уведомление о