Grafana — платформа визуализации и аналитики данных с открытым исходным кодом. Превращает данные из Prometheus, InfluxDB, Elasticsearch, MySQL и 60+ других источников в интерактивные дашборды с графиками, таблицами и алертами. Стандарт де-факто для мониторинга серверов и приложений.
Как работает
Grafana подключается к источникам данных через плагины Data Source. Пользователь создаёт дашборд из панелей (panels): каждая панель выполняет запрос к источнику и визуализирует результат. Prometheus Query Language (PromQL) позволяет агрегировать, фильтровать и вычислять метрики. Дашборды экспортируются в JSON и публикуются на grafana.com (тысячи готовых шаблонов).
Установка и базовая настройка
# Docker (самый быстрый способ)
docker run -d -p 3000:3000 -e GF_SECURITY_ADMIN_PASSWORD=secret --name grafana grafana/grafana
# apt (Ubuntu/Debian)
apt-get install -y apt-transport-https software-properties-common
wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
apt-get update && apt-get install grafana
systemctl enable --now grafana-server
История
Grafana создан Торкелем Сёренгором в 2013 году как форк Kibana 3, адаптированный для Graphite. Torkel работал в Orbitz (сайт бронирования путешествий) и нуждался в лучшей визуализации серверных метрик. Grafana Labs основана в 2014 году. К 2024 году Grafana насчитывает 10+ миллионов пользователей, компания привлекла $240 млн инвестиций. Grafana Loki (логи), Grafana Tempo (трейсинг) и Grafana Pyroscope (профилирование) составляют единый observability-стек.
Ключевые возможности
Alerting — настройка порогов и уведомлений прямо в дашборде. Алерты отправляются в Telegram, Slack, PagerDuty, email. Silence-правила заглушают алерты в окна техобслуживания.
Variables — переменные в дашбордах: один дашборд для всех серверов с выбором хоста из дропдауна. Переменная $instance в PromQL-запросе фильтрует метрики нужного VPS.
Annotations — метки на графиках: время деплоя, инцидента, конфигурационных изменений. Визуализирует корреляцию между событиями и изменением метрик.
Готовые дашборды
Популярные шаблоны с grafana.com:
- Node Exporter Full (ID: 1860) — полный мониторинг Linux-хоста
- Nginx (ID: 9614) — запросы, коды статусов, время ответа
- MySQL Overview (ID: 7362) — метрики MariaDB/MySQL
- Docker Containers (ID: 893) — ресурсы контейнеров Docker
На что обращать внимание
Grafana — только визуализация, данные хранятся в источниках. Grafana без Prometheus или другого TSDB бесполезна. Защитите интерфейс Grafana от публичного доступа: настройте аутентификацию или закройте порт 3000 через UFW. Grafana Cloud — управляемый хостинг с бесплатным тарифом (10 000 метрик, 50 GB логов) для небольших проектов.
Grafana OnCall и Incident Management
Grafana OnCall — инструмент управления дежурствами и инцидентами. Ротация дежурных, эскалация алертов от первой линии к второй, интеграция с PagerDuty и Opsgenie. Grafana Incident позволяет объявить инцидент прямо из алерта, создать Slack-канал и вести лог действий. Для небольших команд Grafana Alerting с уведомлением в Telegram-бот через webhook-канал — достаточно для начала. Порог входа: настроить бота, создать канал алертов в Grafana Alerting, указать webhook URL — 15 минут.