Вот и дошла очередь до главных задач которые должна решать моя Raspberry PI3.
Это будет домашний сервер для хранения и визуализации данных которые собирают и присылают модули ESP8266 находящиеся у меня дома и на даче. В любой момент можно посмотреть что реально происходит в контролируемых зонах, что было, как изменяется и чего можно ожидать. Например мне очень важно знать количество воды в колодце и скорость ее расходования и восстановления.
Есть много разных баз данных и графических оболочек для них, но я как настоящий чайник выбрал самую простую и конечно красивую систему, ну на мой взгляд.
Итак смотрим - Grafana, представляет собой удобный дашборд для выборки и визуализации данных, для их хранения используется база данных InfluxDB
Все манипуляции делаем из консоли Linux (примерное описание для чайников смотри в соседней теме). Примечание для чайников - текст с таким шрифтом можно скопировать и вставить правым кликом мышки в окно терминала Raspberry.
Это будет домашний сервер для хранения и визуализации данных которые собирают и присылают модули ESP8266 находящиеся у меня дома и на даче. В любой момент можно посмотреть что реально происходит в контролируемых зонах, что было, как изменяется и чего можно ожидать. Например мне очень важно знать количество воды в колодце и скорость ее расходования и восстановления.
Есть много разных баз данных и графических оболочек для них, но я как настоящий чайник выбрал самую простую и конечно красивую систему, ну на мой взгляд.
Итак смотрим - Grafana, представляет собой удобный дашборд для выборки и визуализации данных, для их хранения используется база данных InfluxDB
Все манипуляции делаем из консоли Linux (примерное описание для чайников смотри в соседней теме). Примечание для чайников - текст с таким шрифтом можно скопировать и вставить правым кликом мышки в окно терминала Raspberry.
Первое, что мы должны сделать перед установкой InfluxDB на Raspberry Pi, — это убедиться, что все установленные на данный момент пакеты ОС обновлены.
Выполняем следующие две команды:
sudo apt update
sudo apt upgrade
****************************************************************************
InfluxDB 1.8
https://portal.influxdata.com/downloads/
Are you interested in InfluxDB 1.x Open Source?
InfluxDB is an open source time series database. It has everything you need from a time series platform in a single binary – a multi-tenanted time series database, UI and dashboarding tools, background processing and monitoring agent. All this makes deployment and setup a breeze and easier to secure.
The InfluxDB Platform also includes APIs, tools, and an ecosystem that includes 10 client and server libraries, Telegraf plugins, visualization integrations with Grafana, Google Data Studio, and data sources integrations with Google Bigtable, Bigquery, and more.
Version
InfluxDB v1.8.10
Platform
Ubuntu & Debian
SHA256: b2ace09231575df7309a41cea6f9dc7ad716fe4389dc06ac04470a14bd411456
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.8.10_amd64.deb
sudo dpkg -i influxdb_1.8.10_amd64.deb
***********************************************************************
Установка и настройка InfluxDB 1.8 на Raspberry Pi
Следующий шаг — добавить ключ репозитория InfluxDB в наш Raspberry Pi.
Добавление ключа позволит диспетчеру пакетов Raspbian выполнять поиск в репозитории и проверять пакеты, которые он устанавливает.
Добавляем ключ InfluxDB, выполнив следующую команду.
curl https://repos.influxdata.com/influxdb.key | gpg --dearmor | sudo tee /usr/share/keyrings/influxdb-archive-keyring.gpg >/dev/null
Теперь добавляем репозиторий InfluxDB в список источников.
echo "deb [signed-by=/usr/share/keyrings/influxdb-archive-keyring.gpg] https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Снова обновим список пакетов
sudo apt update
Теперь произведем непосредственную установку InfluxDB
sudo apt install influxdb
Установили, чтобы InfluxDB запускался при загрузке Raspberry Pi введем следующие команды:
sudo systemctl unmask influxdb
sudo systemctl enable influxdb
Все установили!
Теперь запускаем InfluxDB сервер в работу.
sudo systemctl start influxdb
Настройка конфигуфация InfluxDB заключается в настройке текстового файла influxdb.conf
Будем его редактировать в редакторе, имеющемся по умолчанию в нашем Linux
sudo nano /etc/influxdb/influxdb.conf
Все строки там закомментированы #. Смотрим и открываем нужные настройки.
Для нашей дальнейшей работы необходимо указать время хранения данных и разрешить работу по протоколу UDP.
Смотрим и правим :
...
[meta]
# Where the metadata/raft database is stored
dir = "/var/lib/influxdb/meta"
...
[data]
# The directory where the TSM storage engine stores TSM files
dir = "/var/lib/influxdb/data"
...
# The directory where the TSM storage engine stores WAL files.
wal-dir = "/var/lib/influxdb/wal" ...
...
[retention]
# Determines whether retention policy enforcment enabled.
enabled = true
# The interval of time when retention policy enforcement checks run.
check-interval = "30m"
[udp]
enabled = true
bind-address = "0.0.0.0:45454" # 45454 адрес на который будут отправляться данные
database = "MO" # имя нашей базы
batch-size = 1000 # will flush if this many points get buffered
batch-timeout = "1s" # will flush at least this often even if the batch-size is not reached
batch-pending = 5 # number of batches that may be pending in memory
read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
...
Выходим из редактора Ctrl-X и не забываем сохранить изменения Yes ...EnterДля принятия настроек требуется перезагрузка!
Для входа InfluxDB пишем sudo influx
И вот мы в командной строке.
Connected to http://localhost:8086 version 1.2.x
InfluxDB shell 1.2.x
>
Для выхода в консоль команда - пишем команду Exit.Для управления, после символа > пишем соответствующие команды.
Создаем собственную базу данных mydb
> CREATE DATABASE mydb
>
Убедимся что все получилось> SHOW DATABASES
name: databases
---------------
name
_internal
mydb
>
Для начала войдем в свою базу > USE mydb
Using database mydb
>
> INSERT node,t1=rssi rssi=-70i,temp=21.0,gpio13=0i,gpio14=0i,mem=1054i
>
Эти данные я взял из прошивки модуля ESP8266. Именно их я и буду в дальнейшем пересылать в InfluxDB. Формат строки четко определен правилами, не фантазируйте тут.
Проверяем результат
Посмотрим ВСЕ данные
> SELECT * FROM /.*/ LIMIT 1
name: node
-----------------
time gpio13 gpio14 mem rssi t1 temp
1485698285375475611 0 0 1054 -70 rssi 21.0
>
Ура! У нас все получилось и работает.Для того чтобы база данных не переполнила флешку можно поставить ограничение на время хранения данных, по умолчанию стоит бесконечность. При переполнении памяти InfluxDB не запускается. Вот пример на 300 дней.
>
CREATE RETENTION POLICY "10 months" ON "MO" DURATION 300d REPLICATION 1 DEFAULT
Вот хелп по InfluxDB.
Переполнение флешки лечится стиранием всей базы и созданием ее заново ;)
> DROP DATABASE "mydb"
>
==============================================
Если войти в InfluxDB уже не получается, то шаманим в линуксе.
Посмотреть объем занимаемый базой данных можно так:
sudo du -h /var/lib/influxdb/data/
Удалить папку с базой данных можно так :
sudo rm -R /var/lib/influxdb/data/mydb
Стартуем заново
sudo service influxdb start
Про переустановку писал выше.
================================================
================================================
Перезапускаем всю систему и все проверяем ))
Установка и настройка Grafana на Raspberry Pi
Традиционно мы должны перед установкой Grafana на Raspberry Pi, убедиться, что все установленные на данный момент пакеты ОС обновлены.
Выполняем следующие две команды:
sudo apt update
sudo apt upgrade
А затем начинаем танцы с бубнами!
В связи с санкциями - Sorry, our service is currently not available in your region.
Поэтому!
Идем сюда - https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1&platform=arm
и через любой анонимайзер скачиваем текущую версию на PC для вашей ОС - https://dl.grafana.com/enterprise/release/grafana-enterprise_9.2.6_arm64.deb
Устанавливаем WinSCP и непринужденно перекидываем файл на малинку, в - корень/home/Pi
sudo dpkg -i grafana-enterprise_9.2.4_arm64.deb
Распаковка идет достаточно долго, наберитесь терпения .....
Распаковка идет достаточно долго, наберитесь терпения .....
Теперь включаем сервер командой:
Добавляем автозапуск при старте системы :
sudo systemctl enable grafana-server
Перезапускаем всю систему и все проверяем ))
Доступ к Grafana через Web интерфейс
https:// /локальный адрес/:3000
Стандартные логин и пароль — admin/admin
Подключение к нашей базе данных InfluxDB
Пароль и юзер вводить не обязательно, т.к. наша база данных была не запоролена и все доступно.
Создаем новый Dashboard
Вот вроде и все дела.
Учить вас пользоваться приложением я не буду, там много чего есть интересного и все достаточно интуитивно понятно. Да я и сам многого не знаю )))
Настраиваем уведомления о событиях :
Используем мессенджер «Telegram»
с помощью робота BotFather , там же получаем BOT API Token
который выглядит приблизительно так -
Chat ID можно узнать с помощью специального Show Json Botкоторый выглядит приблизительно так -
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
При его запуске получите следующую информацию :
"chat": {
"id": 123456789 ......
Заполняем полученные значения
Установка уведомлений о событиях через Яндекс
Смотрим инструкцию у Яндекса!!!!!!
Настроить отправку по протоколу SMTP
Настройка одного протокола SMTP обычно требуется на устройствах, которые только отправляют письма, но не принимают их.
Шаг 1. Настройте ящик
Откройте раздел «Почтовые программы» в настройках Яндекс Почты.
Выберите опции С сервера imap.yandex.ru по протоколу IMAP и Пароли приложений и OAuth-токены.
Сохраните изменения.
Шаг 2. Создайте пароль приложения
Откройте страницу Управление аккаунтом.
В разделе Пароли и авторизация выберите Включить пароли приложений. Подтвердите действие и нажмите Создать новый пароль.
Если вы включили двухфакторную аутентификацию, просто нажмите Создать пароль приложения.
Выберите тип приложения Почта.
Придумайте название пароля, например укажите название приложения, для которого вы создаете пароль. С этим названием пароль будет отображаться в списке.
Нажмите кнопку Создать. Пароль приложения отобразится во всплывающем окне.
Ограничение. Созданный пароль можно увидеть только один раз. Если вы ввели его неправильно и закрыли окно, удалите текущий пароль и создайте новый.
Шаг 3. Настройте программу
адрес почтового сервера — smtp.yandex.ru;
защита соединения — SSL;
порт — 465;
Для доступа к почтовому серверу укажите ваш логин и пароль приложения. Используйте тот пароль, который вы создали для почтового приложения на предыдущем шаге.
sudo nano /etc/grafana/grafana.ini
Конфигурирование ini файла :
[smtp]
enabled = true
host = smtp.yandex.ru:465
user = XXXX
password = XXXX
;cert_file =
;key_file =
skip_verify = true
from_address = XXXX@yandex.ru
[smtp]
;enabled = false
;host = localhost:25
;user =
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
;password =
;cert_file =
;key_file =
;skip_verify = false
;from_address = admin@grafana.localhost
;from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
Рестарт Grafana-server service
Успехов !!
Респект и уважуха ! ;)
ОтветитьУдалитьвсе пашет )
ОтветитьУдалить