Налаштування моніторингу інфраструктури через Grafana

Коли Grafana перестає показувати актуальні дані, а алерти мовчать у критичний момент, інфраструктура залишається без захисту. Ми налаштовуємо моніторинг через Grafana з використанням provisioning та контролю версій, щоб ви отримували повну прозорість і надійність. Наша команда реалізує проєкт під ключ — від аудиту до впровадження та подальшої підтримки.
Часті запитання

Ми часто бачимо один і той самий сценарій: Grafana піднята в Docker, дашборди імпортовані з grafana.com, але через місяць половина панелей показує «No data», ще третина — застарілі дані, а алерти мовчать саме тоді, коли диск на продакшн-ноді закінчується. Після обстеження 50+ інфраструктур ми виявили типові помилки: відсутність provisioning, ігнорування версіонування конфігурації та неоптимальне налаштування джерел даних. Наш досвід (понад 30 проєктів з моніторингу за останні роки) показує: правильне налаштування моніторингу — це не про імпорт готових панелей, а про provisioning, контроль версій і продуману архітектуру джерел даних. За 1–3 дні ми впроваджуємо моніторинг, який не потребує ручного втручання, дає повну прозорість інфраструктури та скорочує час на налагодження дашбордів на 70%.

Grafana documentation: «Provisioning is the recommended way to manage datasources and dashboards in production.»

Чому provisioning — стандарт для production?

Provisioning вирішує три ключові проблеми: відтворюваність конфігурації, контроль версій через Git та автоматизація деплою. Замість того щоб щоразу клацати в UI, ви описуєте всі datasource і dashboard в YAML-файлах. Це особливо важливо для Kubernetes-оточень, де поди перестворюються — при ручному налаштуванні конфігурація втрачається. Ми гарантуємо, що після налаштування provisioning ви зможете розгорнути ідентичний моніторинг на новому кластері за 15 хвилин. Детальніше про концепцію можна прочитати в Wikipedia.

Які джерела даних підтримує Grafana?

Grafana працює з datasource — Prometheus, Loki, InfluxDB, CloudWatch, PostgreSQL, Elasticsearch. Кожен підключається через Administration → Data Sources з явним зазначенням URL, credentials і таймаутів. Типова помилка — підключити Prometheus за http://localhost:9090 в докер-контейнері з Grafana. Контейнер не бачить localhost хоста. Використовуй service name в compose (http://prometheus:9090) або зовнішній IP.

Для production-конфігурації джерела даних краще зберігати як code через provisioning. Файл /etc/grafana/provisioning/datasources/prometheus.yaml:

---
apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    url: http://prometheus:9090
    isDefault: true
    jsonData:
      timeInterval: "15s"
      queryTimeout: "60s"

Це дозволяє деплоїти Grafana як immutable-образ — жодних ручних кліків після рестарту контейнера. Перехід на provisioning скорочує час на налагодження дашбордів на 70%.

Як налаштувати алерти, які не пропустять аварію?

З версії 9.x Grafana має власний двигун алертингу, окремий від Prometheus Alertmanager. Він вміє алертити прямо з дашборд-панелей або через Unified Alerting. Різниця принципова: Grafana Alerting оцінює запити сам, а не покладається на rules в Prometheus. Це дає більше гнучкості: можна використовувати будь-які джерела даних, а не тільки Prometheus.

Конфігурація contact point для Telegram через provisioning (alerting/contact-points.yaml):

---
apiVersion: 1
contactPoints:
  - orgId: 1
    name: telegram-ops
    receivers:
      - uid: telegram-ops
        type: telegram
        settings:
          bottoken: "${TELEGRAM_BOT_TOKEN}"
          chatid: "${TELEGRAM_CHAT_ID}"
          message: |
            {{ range .Alerts }}
            🔥 {{ .Labels.alertname }}
            Instance: {{ .Labels.instance }}
            {{ .Annotations.summary }}
            {{ end }}

Шаблони в Go template-синтаксисі. {{ range .Alerts }} ітерує по спрацьованим алертам у групі. Ми рекомендуємо налаштовувати як мінімум три алерти: диск > 85%, RAM > 90%, CPU > 80% sustained. При перевищенні — відправка в Telegram або PagerDuty.

Який стек моніторингу обрати для 20+ нод?

Для інфраструктурного моніторингу зазвичай збирають такий стек:

Компонент Роль
node_exporter Метрики хостів: CPU, RAM, диски, мережа
cAdvisor Метрики контейнерів Docker/containerd
Prometheus Збір і зберігання метрик, evaluation rules
Grafana Візуалізація, алерти, анотації
Alertmanager Маршрутизація та дедуплікація алертів

На невеликих інфраструктурах (до 20 нод) цього вистачає. При зростанні Prometheus починає впиратися в пам'ять — там уже дивляться в бік Thanos або VictoriaMetrics як remote_write endpoint.

Чек-лист для швидкої перевірки готовності моніторингу
Компонент Статус
node_exporter встановлений на всіх нодах ☐
Prometheus бачить всі targets ☐
Grafana підключена до Prometheus через provisioning ☐
Базові алерти налаштовані (диск, RAM, CPU) ☐
Дашборди версіоновані в Git ☐

Що входить у роботу

При замовленні налаштування моніторингу під ключ ми надаємо:

  • Документацію з архітектури моніторингу та структури дашбордів
  • Provisioning-скрипти для відтворюваності конфігурації
  • Дашборди під вашу інфраструктуру (хости, Kubernetes, сервіси)
  • Алерти з інтеграцією в Telegram/Slack/PagerDuty
  • Доступи до Git-репозиторію з конфігурацією
  • Навчання команди (1 година) по роботі з новим моніторингом
  • Підтримку протягом 2 тижнів після впровадження

Як проходить робота

Починаємо з аудиту поточного стану: які джерела даних уже є, які метрики збираються, чи є provisioning або все зроблено руками через UI. Це займає кілька годин.

Далі — проєктування структури дашбордів під конкретну інфраструктуру. Не імпорт generic-дашбордів, а адаптація під реальні сервіси: які хости, які мітки labels у нод, які сервіси потрібно розбити по папках.

Реалізація включає налаштування provisioning datasources і dashboards, базові алерти (диск > 85%, RAM > 90%, CPU > 80% sustained), інтеграцію з Alertmanager або пряму відправку в месенджер. Фінально — документація по структурі дашбордів та інструкція з додавання нових.

Терміни

Орієнтовно: від 1 дня для базового встановлення з готовими шаблонами до 3 днів для повноцінного provisioned-стеку з кастомними дашбордами та алертингом.

Замовте налаштування моніторингу прямо зараз — отримайте консультацію з архітектури стеку та точну оцінку термінів. Зв'яжіться з нами, і ми підберемо оптимальне рішення для вашої інфраструктури. З нами працюють 50+ компаній, і ми гарантуємо прозорість та відмовостійкість вашого моніторингу.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142