Введение

В этой лабораторной работе вы изучите основы создания дашборда для мониторинга с помощью Grafana. Grafana — это популярная платформа с открытым исходным кодом для мониторинга и наблюдаемости, которая позволяет запрашивать, визуализировать, отслеживать и анализировать метрики независимо от того, где они хранятся.

Мы будем работать с предварительно настроенной средой, которая включает:

  • Grafana: инструмент визуализации, в котором вы будете создавать свой дашборд.
  • Prometheus: база данных временных рядов, которая будет служить источником данных для Grafana.
  • Node Exporter: агент, который собирает метрики оборудования и ОС с хост-машины и предоставляет их для сбора Prometheus.

Ваша цель — создать с нуля простой дашборд, отображающий текущую загрузку процессора (CPU) в лабораторной среде.

Изучение предварительно настроенной среды

На этом этапе вы ознакомитесь с лабораторной средой. Скрипт настройки уже запустил три контейнера Docker, которые формируют базовый стек мониторинга.

Сначала давайте убедимся, что все контейнеры запущены. Откройте терминал и выполните следующую команду:

docker ps

Вы должны увидеть вывод, похожий на этот, со списком контейнеров grafana, prometheus и node-exporter. Конкретные ID контейнеров будут отличаться.

CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                       NAMES
c1a2b3c4d5e6   grafana/grafana                 "/run.sh"                15 seconds ago   Up 14 seconds   0.0.0.0:8080->3000/tcp                      grafana
f6e5d4c3b2a1   prom/prometheus                 "/bin/prometheus --c…"   20 seconds ago   Up 19 seconds   0.0.0.0:9090->9090/tcp                      prometheus
a9b8c7d6e5f4   prom/node-exporter              "/bin/node_exporter …"   25 seconds ago   Up 24 seconds   0.0.0.0:9100->9100/tcp                      node-exporter

Краткий обзор каждого компонента:

  • node-exporter: собирает системные метрики с виртуальной машины.
  • prometheus: собирает и хранит метрики из node-exporter.
  • grafana: запрашивает данные из Prometheus и визуализирует их.

Теперь давайте перейдем к пользовательскому интерфейсу Grafana.

Из-за настроек обратного прокси-сервера в виртуальной машине LabEx, переключитесь на интерфейс рабочего стола (Desktop Interface), нажмите на браузер Firefox в левом верхнем углу и введите http://localhost:8080 в адресной строке. Вы должны увидеть страницу входа в Grafana.

Войдите, используя учетные данные по умолчанию:

  • Имя пользователя: admin
  • Пароль: admin

Вас могут попросить сменить пароль. Для этой лабораторной работы вы можете нажать Skip (Пропустить).

Страница входа в Grafana с учетными данными администратора

После входа в систему давайте проверим подключение к источнику данных.

Grafana меняет подписи и иконки на левой боковой панели в разных версиях, поэтому ваш экран может не в точности соответствовать скриншоту. Если боковая панель свернута, сначала разверните ее.

  1. Откройте раздел управления источниками данных. В большинстве последних версий Grafana используйте Connections, а затем Data sources. Если вы не видите Connections, воспользуйтесь поиском на боковой панели и откройте Data sources оттуда.
  2. Убедитесь, что присутствует предварительно настроенный источник данных с именем Prometheus. Это соединение было автоматически настроено скриптом инициализации, что позволяет Grafana отправлять запросы к контейнеру Prometheus.

Интерфейс Grafana с выбором источника данных Prometheus

Теперь вы готовы к созданию своего первого дашборда.

Создание нового дашборда в интерфейсе Grafana

На этом этапе вы создадите новый пустой дашборд в интерфейсе Grafana. Дашборд — это коллекция из одной или нескольких панелей, расположенных в сетке.

  1. В интерфейсе Grafana найдите левую боковую панель.
  2. Создайте новый дашборд. Точное название пункта меню зависит от версии Grafana:
    • Если вы видите пункт + Create, откройте его и выберите New dashboard.
    • Если вы видите Dashboards на боковой панели, откройте его и выберите New dashboard.
    • Если макет боковой панели выглядит иначе, воспользуйтесь полем поиска Grafana и откройте New dashboard оттуда.

Создание нового дашборда

Это действие создаст новый пустой дашборд. Вам сразу будет предложено добавить первую панель. Панель — это базовый строительный блок визуализации в Grafana.

Нажмите кнопку Add visualization в центре экрана, чтобы перейти к редактору панелей.

Добавление новой панели

Теперь вы находитесь в редакторе панелей, где на следующем этапе вы определите запрос данных и настроите их визуализацию.

Добавление панели с запросом PromQL для загрузки CPU

На этом этапе вы добавите панель на свой дашборд и используете запрос PromQL (Prometheus Query Language) для получения данных о загрузке процессора.

Вы должны уже находиться в редакторе панелей с предыдущего шага.

  1. В нижней части редактора вы найдете раздел запросов. Источник данных Prometheus должен быть выбран по умолчанию.
  2. В текстовом поле Metrics browser введите следующий запрос PromQL. Вы можете скопировать и вставить его напрямую.
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Разберем этот запрос:

  • node_cpu_seconds_total{mode="idle"}: это метрика из Node Exporter, которая подсчитывает общее количество секунд, в течение которых процессор находился в состоянии "простоя" (idle).
  • rate(...[5m]): эта функция вычисляет среднюю скорость увеличения времени простоя в секунду за последние 5 минут. Результат — значение от 0 до 1, представляющее долю времени, в течение которого процессор простаивал.
  • avg by (instance): это агрегирует результаты, что полезно, если у вас несколько процессоров или машин.
  • * 100: это преобразует дробное значение в проценты (например, 0.95 становится 95%).
  • 100 - ...: наконец, мы вычитаем процент простоя из 100, чтобы получить процент активной загрузки процессора.

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

Панель Grafana с запросом

Ваша панель теперь отображает данные, но ее можно улучшить с помощью более понятных меток и форматирования, что вы и сделаете на следующем этапе.

Настройка и сохранение дашборда

На этом этапе вы настроите внешний вид панели и сохраните дашборд. Правильно настроенная панель гораздо легче читается с первого взгляда.

  1. В правой части редактора панелей найдите раздел Panel options.
  2. В поле Title введите описательное имя для вашей панели, например CPU Usage %. Вы увидите, как заголовок обновится в окне предварительного просмотра.
  3. Прокрутите вниз в правой части параметров, пока не найдете раздел Standard options.
  4. Нажмите на выпадающее меню Unit. В данный момент там указано "None".
  5. В появившемся поле поиска введите percent и выберите Percent (0-100) из списка. Это правильно отформатирует ось Y вашего графика, добавив символ процента.

Настройка параметров панели

Теперь, когда панель настроена, примените изменения и вернитесь к просмотру дашборда.

  1. Нажмите кнопку Save в правом верхнем углу экрана. В некоторых версиях Grafana эта кнопка называется Apply.

Вы вернулись на свой дашборд, который содержит только что созданную панель. Последний шаг — сохранить весь дашборд целиком.

  1. Нажмите иконку Save dashboard (похожа на дискету) в правом верхнем углу заголовка дашборда.
  2. Появится диалоговое окно "Save dashboard". Введите точное имя My System Dashboard, чтобы лаборатория могла проверить сохраненный дашборд.
  3. Нажмите кнопку Save.

Сохранение дашборда

Поздравляем! Вы успешно создали и сохранили свой первый дашборд Grafana.

Резюме

В этой лабораторной работе вы успешно создали дашборд Grafana с нуля. Вы начали с предварительно настроенного стека мониторинга и выполнили следующие ключевые действия:

  • Изучили среду, состоящую из контейнеров Grafana, Prometheus и Node Exporter.
  • Перешли по интерфейсу Grafana для создания нового пустого дашборда.
  • Добавили панель визуализации и написали запрос PromQL для получения данных о загрузке процессора из источника данных Prometheus.
  • Настроили заголовок панели и форматирование единиц измерения для лучшей читаемости.
  • Сохранили готовый дашборд для дальнейшего использования.

Теперь вы освоили базовый рабочий процесс создания визуализаций в Grafana. Вы можете развивать эти знания, добавляя на свой дашборд больше панелей для мониторинга других системных метрик, таких как использование оперативной памяти, ввод-вывод диска или сетевой трафик.