Когда речь заходит о мониторинге с открытым исходным кодом, довольно часто упоминаются два инструмента для создания стеков мониторинга для таких задач, как мониторинг инфраструктуры (хранилище, масштабирование, производительность и т. д.), мониторинг облачных сервисов, метрики приложений и многое другое в вашей среде — InfluxDB и Grafana, но в этой статье мы будем использовать конфигурацию Docker-compose для InfluxDB и Grafana.
Настройка Docker-Compose
Мы можем легко использовать docker-compose для настройки рабочего стека для InfluxDB и Grafana. В файле docker-compose.yml вы определите сервисы для InfluxDB и Grafana. Сервис InfluxDB включает настройки для корзины по умолчанию и учетных данных пользователя, а сервис Grafana описывает…конфигурация для доступа к пользовательскому интерфейсу Grafana и подключения использовать для этого источник данных InfluxDB.
Обратите внимание на следующий код Docker Compose для развертывания обоих контейнеризированных приложений в стеке развертывания для этого руководства. Ниже мы создаем новую сеть для стека контейнеров для настройки IP-адресов.
На моём хосте Docker под управлением Linux я создал папку «Docker» для подготовки сервисов, клонировав репозиторий Github файлы в система также организация ресурсов на диске, таких как установочные файлы, например, файлы .env, содержащие переменные.
Создаем docker-compose.yml файл с таким содержанием.
services:
grafana:
image: grafana/grafana
container_name: grafana
restart: always
ports:
- 3000:3000
networks:
- monitor
volumes:
- "./grafana/grafana-volume:/var/lib/grafana"
user: "0"
influxdb:
image: influxdb:latest
container_name: influxdb
restart: always
ports:
- 8086:8086
- 8089:8089/udp
networks:
- monitor
volumes:
- "./influxdb/influxdb-volume:/var/lib/influxdb"
networks:
monitor:
Сохраните в конфигурационный файл docker-compose.yml и выполняем команду:
docker compose up -d
Это позволит загрузить образы из репозитория Docker и подготовить контейнеры для приложения.

Чтобы проверить состояние контейнеров, выполните следующую команду
docker-compose ps

Настройка InfluxDB
После запуска контейнера InfluxDB в рамках кода Docker-compose одним из первых шагов является прохождение мастера начальной настройки.
Переходим по адресу ваш ip:8086. Который отображался при команде docker compose ps на каких портах висит приложение. Видим веб панель InfluxDB.
На странице первоначальной настройки необходимо указать имя пользователя , пароль , подтвердить пароль, указать первоначальное имя организации и, наконец, первоначальное имя хранилища . Нажмите «Продолжить» .

После нажатия кнопки «Продолжить» вы увидите токен доступа к API по умолчанию, созданный для доступа к данным InfluxDB, который принадлежит администратору. В InfluxDB v2 по умолчанию используется аутентификация по токену, поэтому вам необходимо убедиться, что ваша интеграция может передавать токен API в InfluxDB. Токены API — это более безопасный способ подключения к вашим системам.
Ниже я выбрал опцию «Настроить позже» , поскольку мы вручную настроим соединение для потоковой передачи данных в Influx немного позже.

После этого вы войдете в систему. Вы увидите возможность загрузки данных из различных источников.

Передача данных из Proxmox в InfluxDB
Теперь нам нужно, что бы Proxmox передавал данные в Influxdb для этого переходим
В Proxmox перейдите в раздел Datacenter > Metric Server > Add > InfluxDB .

Откроется диалоговое окно «Редактировать InfluxDB» , где мы сможем заполнить конфигурацию InfluxDB. Обратите внимание на следующие поля:
- Сервер – ваш хост InfluxDB (адрес вашей машины Docker, если вы используете Docker, как показано выше).
- Порты : 8086 для HTTP, 8089 для UDP.
- Протокол — выберите здесь свой протокол. Если вы выберете HTTP, вы сможете указать свою организацию и сегмент в Proxmox.
- Организация – Ваша организация, настроенная в InfluxDB
- Корзина (Bucket) – Корзина, которую вы хотите использовать для потоковой передачи данных в InfluxDB.
- Токен – это токен, который вы создали изначально, или вы также можете создать другой токен для аутентификации.

Проверка поступления данных в InfluxDB.
Теперь, когда у нас есть метрики Proxmox сервер настроен. Мы можем войти в InfluxDB и убедиться, что метрики поступают в InfluxDB.
Как видно ниже, при нажатии на значок Proxmox bucket на панели мониторинга Data Explorer. В bucket Monitoring стали отображается под пункты метрик, таких как ballooninfo, blockstat, cpustat и т. д. Это говорит о том, что конфигурация работает благодаря настройке метрик.

Настройка Grafana
Переходим по адресу ваш ip:3000. Который отображался при команде docker compose ps на каких портах висит приложение. Видим веб панель grafana. Вводим первоначальные настройки для авторизации которые по умолчанию
Пользователь: Admin
Пароль: Admin

Подключение Grafana к источникам данных InfluxDB
Давайте подключим пользовательский интерфейс Grafana к источнику данных InfluxDB. В этом примере мы будем использовать метод HTTP для подключения и аутентификацию с помощью сгенерированного токена.
Перейдите в раздел «Подключения» .

В строке поиска набираем influxdb.

Создайте новый источник данных InfluxDB, нажав кнопку «Добавить новый источник данных» .

Убедитесь, что в качестве языка запросов выбран Flux. В этом случае конфигурация URL-адреса должна указывать на ваш адрес InfluxDB. Если вы используете HTTPS и самоподписанный сертификат, вы можете включить опцию «Пропустить проверку TLS» , чтобы избежать ошибок SSL с вашими URL-адресами.

После нажатия кнопки «Сохранить и протестировать» будет предпринята попытка подключить Grafana к InfluxDB. Выдаст сообщение datasource is working. 3 buckets found Next, you can start to visualize data by building a dashboard from scratch or by querying data in the Explore view. В моем случаи нашло 3 buckets.

Нажмите на значок плюса в правом верхнем углу, а затем выберите пункт «Импорт конфигурации панели мониторинга».

Ниже мы загружаем панель мониторинга сообщества Proxmox и нажимаем кнопку « Загрузить» . Вы можете просмотреть все панели мониторинга сообщества здесь: Панели мониторинга.

При импорте панели мониторинга выберите источник данных, который вы создали для своей базы данных InfluxDB.

После загрузки панели мониторинга выберите правильный сегмент (Bucket) для получения информации. Ниже вы можете увидеть данные, собираемые с одного из моих кластеров Proxmox.
