Иногда интересно посмотреть статистику по некоторым параметрам, например, температуру в помещении, входное напряжение, потребление. Простой и удобный способ - это использовать Grafana. Поиском находится разрозненная информация. Пока в памяти свежо, как это делается, и что бы потом самому не вспоминать, описал поэтапно, что, где и как. На сайте производителя, а также сайте Grafana есть инструкции. Также есть хорошая видеоинструкция. Их и будем использовать.
1. Установим Docker по инструкции.
Установим необходимые зависимости:
apt update && apt install ca-certificates curl gnupg lsb-release iptables
Добавим репозиторий с пакетами docker:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
Добавим GPG ключ для репозитория:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Настроим возможность Docker настраивать виртуальные сети и пробрасывать порты.
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
Настроим симлинк для папки конфигурации
mkdir /mnt/data/etc/docker && ln -s /mnt/data/etc/docker /etc/docker
Создаем файл конфигурации
mcedit /etc/docker/daemon.json
Добавим в него ранее созданную папку
{
"data-root": "/mnt/data/.docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
Устанавливаем сам Docker
apt update && apt install docker-ce docker-ce-cli containerd.io
Если все прошло успешно, то для проверки можно установить контейнер Hello World
docker run hello-world
После его установки, в консоли появится сообщение
Hello from Docker!
This message shows that your installation appears to be working correctly.
значит докер установлен корректно и работает
2. Теперь перейдем к установке Grafana по инструкции
Создаем папку, где будут сохранятся данные из Grafana и даем права на запись
mkdir /mnt/data/grafana
chmod 777 /mnt/data/grafana
Устанавливаем
docker run -d -p 3000:3000 --name=grafana --volume /mnt/data/grafana:/var/lib/grafana --restart=always grafana/grafana
Если все прошло успешно, то можно в браузере открыть веб-интерфейс Grafana
Он доступен по ссылке http://ip_вашего_компьютера:3000
Логин и пароль при первом подключении: Admin:Admin
3. Устанавливаем базу данных Influx
Создаем папку, где будут сохранятся данные и даем права на запись
mkdir /mnt/data/influxdb
chmod 777 /mnt/data/influxdb
Устанавливаем
docker run -d -p 8086:8086 --name=influxdb -v /mnt/data/influxdb:/var/lib/influxdb --restart=always influxdb:1.12
Заходим в influx
docker exec -ti influxdb bash
и создаем нашу базу данных
create database telegraf
4. Устанавливаем Telegraf.
Он необходим, что бы передавать данные из MQTT в базу Influx
Создаем папку для конфигурации Telegraf
mkdir /mnt/data/telegraf
Создаем в ней файл конфигурации Telegraf
mcedit /mnt/data/telegraf/telegraf.conf
В данном файле описывается данные о сервере, откуда брать данные, список топиков для чтения, а также параметры базы Influx.
[[inputs.mqtt_consumer]]
servers = ["tcp://ip_вашего_сервера:1883"]
topics = [
"/devices/контролируемый_топик_1",
"/devices/контролируемый_топик_2",
]
data_format = "value"
data_type = "float"
[[outputs.influxdb]]
urls = ["http://ip_вашего_сервера:8086"]
Устанавливаем Telegraf
docker run -d --name=telegraf -v /mnt/data/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro --restart=always telegraf
Если установлено верно, можно переходить к веб-интерфейсу Grafana.
5. Настраиваем подключение к базе данных в веб-интерфейсе.
- переходим на вкладку Connection,
- далее Data Source,
- нажимаем Add Data Source,
- выбираем InfuxDB.
Далее в настройках указываем:
в поле URL - http://ip_вашего_компьютера:8086
в поле Database - telegraf.
B нажимаем Save&Test.
6. Создаем дашборды.
- переходим на вкладку Dashboards
- нажимаем Create Dashboards,
- выбираем Add visualization
И теперь уже можем настраивать вывод информации с топиков, которые мы указали в конфиге telegraf.
выбираем базу Influxdb
в поле From Select measurement выбираем нашу базу mqtt_consumer
выбираем значение topic::tag
в поле select tag value выбираем нужный топик
Повторяем столько раз, сколько нужно топиков добавить на данный Dashboard.
В правой части можно настроить стили отображения.
Вот собственно и все.
p.s.: если необходимо добавить топик, то надо добавить его в конфигурационный файл telegraf, и рестартовать telegraf.
Комментарии (5)
oleg_km
29.09.2025 09:20А ини файлы и прочие базы данных? Там сокеты всякие создаются. Я в линуксах не очень
Vilos
Окей, а докер-то зачем??!?? Хоспаде, ну пихают его куда попадя и не попадя!
Korleone74 Автор
Прим настройке/тестирование удобно