Сегодняшняя задумка — это проработка шагов, как снимать показания с датчика температуры и влажности, а именно DHT 11
подключенного к Raspberry Pi 3 Model B
(операционная система Raspbian Stretch
) и отправлять их в Zabbix Server 4.4
, дабы следить за обстановкой в помещении, где у меня будет установлен миникомпьютер. Плюс это скажется на будущем использовании если я захочу видеть и другие показания в сервисе мониторинга от различных датчиков. По сути, я делаю интерфейс по мониторингу за текущей обстановкой дома/работе.
Все действия разбиваю на законченные шаги.
Шаг №1: Установлен Zabbix Server 4.4
Разбор установки Zabbix 4.4 на Ubuntu 18.04 Server
ekzorchik@srv-zabbix:~$ sudo apt-get install -y zabbix-get
Шаг №2: Устанавливаю Zabbix
—агент версии 4.4
на Raspberry Pi 3 Model B (Raspbian Stretch)
“Как установить Zabbix 4.4 агент на Raspbian Stretch”
Конфигурационный файл Zabbix
-агента:
pi@raspberrypi:~ $ sudo nano /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 EnableRemoteCommands=1 LogRemoteCommands=1 Server=127.0.0.1,172.33.33.117 ServerActive=127.0.0.1,172.33.33.117 Hostname=Zabbix server Include=/etc/zabbix/zabbix_agentd.d/*.conf UnsafeUserParameters=1
После не забываем сохранить внесенные изменения.
IP-адрес 172.33.33.117 — это адрес моего Zabbix-сервера.
pi@raspberrypi:~ $ sudo usermod -aG video zabbix pi@raspberrypi:~ $ sudo usermod -aG gpio zabbix pi@raspberrypi:~ $ sudo nano /etc/sudoers zabbix ALL=(ALL) NOPASSWD:ALL pi@raspberrypi:~ $ sudo reboot
Шаг №3: Подключаю к Raspberry Pi 3 Model B (Raspbian Stretch)
датчик DHT 11
опираюсь на заметку.
Шаг №4: Устанавливаю Python
скрипт через который будет идти опрос с Zabbix
—сервера через Zabbix
—агент датчика температуры и влажности DHT 11
. Его особенность в том что он универсален и позволяет считывать показания с датчиков: DHT 11, DHT 22
.
pi@raspberrypi:~ $ git clone https://github.com/adafruit/Adafruit_Python_DHT.git pi@raspberrypi:~ $ cd Adafruit_Python_DHT/ pi@raspberrypi:~/Adafruit_Python_DHT $ sudo python setup.py install pi@raspberrypi:~/Adafruit_Python_DHT $ cd ~ pi@raspberrypi:~ $ sudo mkdir -p /usr/lib/zabbix/externalscripts pi@raspberrypi:~ $ sudo cp Adafruit_Python_DHT/examples/AdafruitDHT.py /usr/lib/zabbix/externalscripts/dht.py pi@raspberrypi:~ $ sudo /usr/lib/zabbix/externalscripts/dht.py 11 4 Temp=22.0* Humidity=20.0% pi@raspberrypi:~ $
Шаг №5: Создаю конфигурационный файл для Zabbix
—агента который будет дергать данный Python
скрипт и извлекать показания которые после будут в Zabbix
—сервере:
pi@raspberrypi:~ $ sudo nano /etc/zabbix/zabbix_agentd.d/dht11.conf #Temperature UserParameter=rpi.dht11temp[*],sudo /usr/lib/zabbix/externalscripts/dht.py 11 4 | cut -c "6-9" #Humidity UserParameter=rpi.dht11humi[*],sudo /usr/lib/zabbix/externalscripts/dht.py 11 4 | cut -c "22-25" pi@raspberrypi:~ $ sudo systemctl restart zabbix-agent pi@raspberrypi:~ $ sudo zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t rpi.dht11temp rpi.dht11temp [t|23.0] pi@raspberrypi:~ $ sudo zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t rpi.dht11humi rpi.dht11humi [t|18.0] pi@raspberrypi:~ $
Шаг №6: Проверяю с Zabbix
—сервера что могу через получить данные термпературы и влажности по ключам предопределенным на миникомпьютере для Zabbix
—агента:
ekzorchik@srv-zabbix:~$ zabbix_get -s 172.33.33.10 -k rpi.dht11temp 23.0 ekzorchik@srv-zabbix:~$ zabbix_get -s 172.33.33.10 -k rpi.dht11humi 17.0
Отлично.
Шаг №7: Завожу на Zabbix
—сервере хост raspberry
и создаю “Элементы данных
” с “Тип информации” = “Числовой (с плавающей точкой)” (но можно и “Числовой (целовое положительное)”).
Ключ: rpi.dht11temp
Ключ: rpi.dht11humi – по аналогии как для rpi.dht11temp
Если же Zabbix
-сервер не может считать показания и пишет: “Timeout while executing a shell script.
”
В настройках Zabbix
-агента следует изменить дефолтное значение в три секунды на:
pi@raspberrypi:~ $ sudo nano /etc/zabbix/zabbix_agentd.conf Timeout=5 pi@raspberrypi:~ $ sudo systemctl restart zabbix-agent ekzorchik@srv-zabbix:~$ sudo systemctl restart zabbix-server zabbix-agent
И не лишним будет изменить “Интервал обновления
” с 1m
, к примеру на 5m
и выполните, выделил эти два элемента и нажав “Проверить сейчас
”
На заметку: Если “Состояние – Активировано
” — а показаний нет, то:
ekzorchik@srv-zabbix:~$ sudo systemctl restart zabbix-server zabbix-agent
После через Web
-интерфейс смотрю, а снимаются ли показания с датчика DHT 11
подключенного к Rasbperry Pi 3 Model B:
http://IP&DNS/zabbix – user&pass – Мониторинг – Последние данные -
Узлы сети: raspberry
и нажимаю “Применить
”. Вот они мои показания.
Теперь можно и график по данным показаниям настроить.
Итого, я разобрал, как снимать и передавать показания с датчик в Zabbix
-сервер. На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.