Grafana - это инструмент для визуализации и анализа данных, разработанный компанией Grafana Labs. Он позволяет создавать различные типы графиков и диаграмм для отображения метрик, собираемых системами мониторинга, такими как Prometheus. Grafana может работать с различными источниками данных, включая базы данных, очереди сообщений, API сервисов и другие. Она также имеет встроенный язык запросов, который позволяет создавать сложные визуализации и анализировать большие объемы данных.
Grafana имеет удобный интерфейс для создания и редактирования графиков. Она поддерживает множество типов графиков, таких как линейные графики, столбчатые графики, круговые диаграммы, тепловые карты и другие. Grafana также позволяет настраивать цвета, шрифты, размеры графиков и другие параметры для создания красивых и информативных визуализаций. Она также поддерживает экспорт графиков в различные форматы, такие как PNG, JPEG, SVG и другие, что позволяет использовать Grafana не только для анализа данных, но и для создания отчетов и презентаций.
Для начала создадим в корне проекта Makefile (подробнее тут)
Теперь выполним предварительные действия.
Если на вашем сервере работает брандмауэр, необходимо открыть порт:
В зависимости от утилиты управления брандмауэром, наши действия будут отличаться.
Для iptables (как правило, на системах Deb)
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save
Для firewalld (как правило, на системах RPM)
firewall-cmd --permanent --add-port={3000}/tcp
firewall-cmd --reload
Созданим в корне папке grafana (там у нас будут хранится различные данные для Grafana) Также создадим docker-compose.yml:
version: "3.9"
networks:
app:
driver: bridge
services:
grafana:
image: grafana/grafana
user: root
depends_on:
- prometheus
ports:
- 3000:3000
volumes:
- ./grafana:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
container_name: grafana
hostname: grafana
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- app
Теперь можно запускать команду make init
После запуска переходим по ссылке http://127.0.0.1:3000 и увидим web-интерфейс Grafana. Логин и пароль: admin/admin После Grafana предложит сменить пароль
Перед тем, как делать интеграцию, выполните действия из этой статьи
Немного модифицируем настройки prometheus.yml Добавим еще один target
- job_name: 'prometheus'
scrape_interval: 15s
static_configs:
- targets: ['localhost:9090']
basic_auth:
username: <user>
password: <password>
Если Вы не настраивали базовую аутентификацию, то секцию basic_auth можно удалить.
После переходим по ссылке http://127.0.0.1:3000
Кликаем по иконке Connections - Data Sources:
и нажимаем Add data source
Среди списка источников данных находим и выбираем Prometheus, кликнув по Select переходим к настройкам:
HTTP
После нажмите Save and Test
Добавим дашборд для мониторинга с node exporter. Для этого уже есть готовый вариант. Выбираем в левой панели Dashboards и выбираем Import
Вводим идентификатор дашборда. Для Node Exporter это 1860. Нажимаем Load — Grafana подгрузит дашборд из своего репозитория — выбираем в разделе Prometheus наш источник данных и кликаем по Import.
В результате мы увидим Dashboard с метриками, которые нам отправил Node exporter