Установка Grafana на Amazon WS

09 марта 2019, 15:35

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

Поэтапно наш процесс будет выглядеть как на диаграмме:

1. Установка Mosquitto-broker

2. Подключение контроллера(ов) Wirenboard по MQTT

3. Установка базы данных

4. Установка скрипта записи поступающих данных из брокера в базу данных

5. Установка и примеры конфигурирования Grafana

1. Установка Mosquitto-broker

Первым делом необходимо подключиться к нашему виртуальному серверу на AmazonWS (в дальнейшем "к AmazonWS") с помощью любой терминальной программы, например PuTTY.

 Далее выполняем команду установки:



sudo apt-get install mosquitto mosquitto-clients

Для проверки работоспособности открываем еще одно такое же соединение.

В первом PuTTY подписываемся на топик:

mosquitto_sub -h localhost -t test

Во втором PuTTY публикуем топик:

mosquitto_pub -h localhost -t test -m "hello world"

Если в первом PuTTY появилось содержимое топика hello world, то это значит брокер запустился и работает исправно. 

Теперь нужно, чтобы он был подписан вообще на все входящие сообщения:

mosquitto_sub -t "/#" -v

А чтобы AmazonWS мог принимать эти сообщения, в настройках правил Security Groups необходимо в Inbound  добавить правило, чтобы открыть порт 1883

2. Подключение Wirenboard по MQTT

Чтобы сделать настройки на Wirenboard нужно отредактировать на нем файл /etc/mosquitto/conf.d/bridge.conf.

Для этого подключаемся программой WinSCP и открываем файл bridge.conf на редактирование.

В этом файле переписываем содержимое на следующее:

connection amazon
address 3.17.73.13:1883
notifications true
notification_topic /client/wb_SERIAL/bridge_status
topic /devices/#  both 2 "" /client/wb_SERIAL

Немного поясню:

  • после connection пишем любое свое наименование для этого правила;
  • после address пишем IP-адрес нашего AmazonWS с портом 1883

(в моем случае это адрес 3.17.73.13)

  • вместо wb_Serial можно подставить идентификатор контроллера, чтобы потом отличать его данные от других таких же с других контроллеров в общей базе данных.

После сохранения файла bridge.conf необходимо перезапустить mosquitto-broker на контроллере. Для этого открываем соединение с контроллером в программе PuTTY.

Останавливаем watchdog, затем перезапускаем mosquitto, если предупреждения отсутствуют, то вновь запускаем watchdog.  

service watchdog stop
service mosquitto restart
service watchdog start

Остановка watchdog рекомендуется для того, чтобы если bridge.conf  "кривой" система не ушла в циклическую перезагрузку, из которой потом трудно выйти.

Через несколько секунд в терминальном окне AmazonWS должны "побежать" поступающие сообщения.

3. Установка базы InfluxDB на AmazonWS

Чтобы поступающие данные могли быть сохранены необходимо установить хранилище. Для этой цели подходит база данных InfluxDB.

Инструкция находится по адресу.

Далее последовательно выполняем в окне терминала PuTTY, подключенного к AmazonWS следующие команды:

wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo  tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install influxdb

И после этого, чтобы база данных была готова к использованию ее необходимо запустить:

sudo systemctl unmask influxdb.service
sudo systemctl start influxdb

Проверим ее работоспособность командой

sudo influxd

После проверки необходимо задать имя базы данных, в которой будут храниться наши накапливаемые записи.

Для этого запустить команду

influx

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

CREATE DATABASE mqtt_data

(Вместо mqtt_data можно зарегистрировать свою базу данных, но тогда надо редактировать скрипт mqtt_to_influxdb.py)

Чтобы вернуться в консоль Ctrl+C

4. Установка скрипта mqtt_to_influxdb.py

Следующим шагом необходимо установить на AmazonWS скрипт, записывающий поступающие сообщения из MQTT в базу данных InfluxDB.

Исходная инструкция находится по адресу.

Скачаем сам скрипт на локальный компьютер.

Теперь нужно подготовить AmazonWS для работы этого скрипта. В терминальном окне PuTTY, подключенного к AmazonWS последовательно выполняем команды:


sudo apt install python3-pip
pip3 install paho-mqtt python-etcd
pip3 install influxdb

Скопировать файл mqtt_to_influxdb.py на сервер AmazonWS в директорию /usr/local/bin/


Далее необходимо дать ему права на исполнение. Это делается правой кнопкой через Свойства файла.

Следующий важный шаг - это автозапуск нашего скрипта вместе с ОС после перезагрузки сервера.

Для этого в папке /etc/systemd/system/

создайте файл mqtt_to_influxdb.service

В этот файл заносим следующее содержимое:

[Unit]
Description=Mqtt to Influxdb Autorun
After=multi-user.target
Requires=influxd.service

[Service]
Type=idle
User=ubuntu
ExecStart=/usr/bin/python3 /usr/local/bin/mqtt_to_influxdb.py "#"
Restart=always
TimeoutStartSec=10
RestartSec=10

[Install]
WantedBy=multi-user.target

В том случае если установка осуществляется не на AmazonWS, внимательно заполните поле параметра User, где вместо ubuntu необходимо подставить то имя, от которого производится установка. Например root.

Снова открываем терминальное соединение с AmazonWS через программу PuTTY. И вводим последовательность следующих команд для регистрации автозапуска скрипта в systemd:


sudo systemctl enable mqtt_to_influxdb
sudo systemctl start mqtt_to_influxdb
sudo systemctl daemon-reload

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


sudo systemctl status mqtt_to_influxdb

5. Установка Grafana

Источник

В терминале PuTTY последовательно набираем команды:

wget https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_5.4.2_amd64.deb
sudo apt-get install -y apt-transport-https
sudo service grafana-server start
sudo systemctl enable grafana-server.service

Чтобы к сервису Grafana извне был обеспечен доступ, необходимо в Security Groups на вкладке Inbounds добавить еще одно правило с портом 3000.

Из свойств запущенного экземпляра сервера AmazonWS на вкладке Instances снова берем адрес по которому он доступен, добавляем к нему порт 3000 и запускаем через адресную строку браузера.

По умолчанию вводим Логин: admin  Пароль: admin

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

После нажатия кнопки Add Data Source выберите InfluxDB

Заполните поля 

URL: http://localhost:8086

Database: mqtt_data

Нажмите кнопку Save & Test

Если все хорошо, то можно продолжить нажав + и выбрав Dashboard.

Сверху нажмите на выпадающее меню и выберите Edit.

На вкладке Metrics заполните поля как указано в образце и получите вывод своей первой панели с данными.

Подробнее про установку системы и настройку панелей вывода данных смотрите на видео по ссылке:


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

К списку статей

ООО Флагман

Интегратор
Россия, г. Санкт-Петербург
+7 921 943-81-41

Скидки для сообщества

Wiren Board

+7 495 150-66-19
Промокод:
SPRUTHUB
Размер скидки:
10%
Не работает на блоки питания, антенны и т.п, не работает на демо-чемодан.

Похожие статьи

15 ноября 2018, 09:42
Способы автоматизации механических ворот
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
24 августа 2018, 09:49
Как удаленно управлять Mac через Siri.
26 ноября 2018, 12:35
Выключение и включение компьютера через HomeBridge, а так-же через HomeAssistant
12 ноября 2018, 20:49
То, что поможет завести камеры с RTSP-потоком в HomeKit через Homebridge на Raspberry Pi
03 марта 2019, 20:17
Описание подключения стыкуемых модулей к контроллеру Wiren Board
06 ноября 2018, 09:44
Обезопасим себя от внезапной потери данных MicroSD карты на Raspberry Pi. Делаем ежедневный автоматический бэкап
13 марта 2019, 20:16
Описание подключения Modbus модулей к контроллеру Wiren Board
11 октября 2018, 09:47
Небольшой мануал о том как загружать Raspberry PI3 с USB флешки или USB HDD\SSD.