#статьи
-
0
Разбираемся с дашбордами, графиками и диаграммами.
Иллюстрация: Оля Ежак для Skillbox Media
Редактор в IT. Пишет про виртуализацию и облачные технологии.
Любое приложение каждую минуту обрабатывает горы запросов, но как уследить за этим потоком данных и не сойти с ума? Рассказываем про возможности Grafana — открытой платформы для сбора информации и анализа метрик.
Содержание
- Что такое Grafana
- С чем работает Grafana
- Визуализация в Grafana
- Что ещё может Grafana
- Установка
Эксперт
Старший аналитик DWH, «Тинькофф». В Skillbox — спикер курса по синтезированию данных в профессии BI-аналитика. Ведёт телеграм-канал о лайфхаках в аналитике
Grafana — это открытая платформа мониторинга и анализа данных, адаптированная под IT-системы. С её помощью разработчики могут собирать дашборды со всей важной информацией, которая может понадобиться администраторам или бизнес-аналитикам.
Представьте компанию, в которой идеально налажен мониторинг приложения на всех уровнях. Отдельные системы собирают данные о производительности и эффективности использования ресурсов, исправно приходят коды ошибок, а бизнес-аналитики получают данные о продажах и метрики активности пользователей.
Главный минус такого подхода в том, что вся важная информация находится в разных источниках. Если надо посмотреть, как работают все системы, то придётся переключаться между сервисами сбора данных и аналитики. Намного удобнее видеть все метрики на одном экране.
Собрать такой дашборд можно с помощью Grafana — открытой платформы визуализации данных. Она собирает данные из назначенных источников и отображает её в удобном для пользователя формате. При этом сама платформа ничего не хранит, а только отображает графики и диаграммы.
К Grafana можно подключать сторонние системы мониторинга, облачные платформы и базы данных. Это делает платформу адаптируемой под требования конкретного проекта. Разработчикам не надо выбирать стек под требования платформы аналитики и придумывать «костыли» для обмена данными.
Скриншот: Grafana / Skillbox Media
С помощью плагинов можно передавать данные из более чем 150 сторонних сервисов, вот некоторые популярные и интересные:
- Jira — позволяет отслеживать активные тикеты и выводить статистику по завершённым, чтобы команда наглядно видела результат своей работы.
- GitHub — получает данные из популярного хостинга опенсорс-проектов и отображает их в виде графиков. Есть похожий плагин и для пользователей GitLab.
- Strava — плагин для любителей спорта и активного отдыха, позволяющий получать данные из одноимённого сервиса отслеживания активности. Можно выводить показатели тренировок и следить за прогрессом.
- Google Sheets — визуализирует данные из вашей онлайн-таблицы. С его помощью можно создать собственный трекер финансов или настроить дашборд для бухгалтерии.
- Sun and Moon — полезное расширение для отслеживания положения Солнца и Луны. Может пригодиться в дашборде с данными о погоде.
У Grafana есть SDK для разработки собственных плагинов, что позволяет импортировать данные из любых источников. Расширение можно сделать приватным и использовать только в контуре компании или опубликовать в специальном магазине.
Скриншот: Grafana / Skillbox Media
К платформе можно подключить одну или несколько поддерживаемых систем или баз данных. Из них платформа будет брать данные и визуализировать. Например, на одном дашборде можно отображать информацию о производительности серверов, регистрации новых пользователей и заказах, поступающих с сайта.
Скриншот: Grafana / Skillbox Media
Grafana используют не только для мониторинга IT-систем. Платформа позволяет визуализировать любые типы данных. Энтузиасты проектируют дашборды для учёта личных финансов, спортивных успехов, прогресса обучения новым навыкам и управления умным домом.
Скриншот: Grafana / Skillbox Media
Все данные Grafana отображает на дашбордах и панелях:
- Панель — базовый блок, получающий данные из определённого источника и выводящий их в виде графика, гистограммы, таблицы или тепловой карты. Есть возможность объединять несколько показателей на одном графике.
- Дашборд — набор из нескольких панелей, произвольно отобранных пользователем. Их можно создавать с нуля и настраивать под свои задачи или воспользоваться уже готовыми шаблонами под определённые типы данных.
- Аннотации — красные вертикальные линии, которые отмечают на графиках особенные события, например сбои или аномалии. С их помощью можно отследить, когда была обнаружена ошибка и как она повлияла на работу всей системы.
Скриншот: Grafana / Skillbox Media
По умолчанию платформа поддерживает множество способов визуализации данных. Помимо этого можно подключать сторонние методы отображения, которые доступны в магазине плагинов. Их разрабатывают и публикуют независимые разработчики.
Дашборды в Grafana не просто собирают данные и визуализируют их, а делают это в реальном времени. Платформа фиксирует любые изменения и сразу отображает их. Благодаря этому можно создавать системы анализа производительности и нагрузки серверов или приложений.
Кроме того, дашборды хранят историю изменения данных, что позволяет оценивать, как развивается продукт и что влияет на показатели. К примеру, если Grafana используется для того, чтобы следить за количеством новых пользователей, то на дашборде можно отследить, какая рекламная кампания была наиболее удачной.
Ещё один плюс Grafana заключается в том, что с её помощью разработчики могут проводить диагностику IT-систем и устранять неполадки. Обычно для этого создают дашборд, анализирующий данные о производительности сервера или приложения. Если произошёл сбой, то на графике появится специальная отметка, которая поможет выяснить, что его вызвало.
В Grafana есть и другие функции, облегчающие работу:
- Шаблоны дашбордов. Если вы создали идеальный дашборд, то его можно сохранить в виде шаблона и использовать повторно или поделиться с другими пользователями.
- Автоматизация. Платформа умеет обрабатывать скрипты, поэтому любые действия можно автоматизировать. К примеру, сделать так, чтобы платформа сама фиксировала аномалии в нерабочее время сотрудников.
- Вывод данных. Широкие настройки отображения позволяют выводить дашборды на телевизоры или массивы из нескольких мониторов. Кроме того, можно скрыть элементы пользовательского интерфейса, чтобы ничего не отвлекало от данных.
- API. Сторонним разработчикам доступны публичные API. Они позволяют создавать собственные плагины, приложения и ботов для управления анализом.
- Оповещения. Встроенная система уведомлений присылает оповещения, исходя из пороговых значений, установленных пользователем. Уведомления приходят на электронную почту, в мессенджеры или на другие платформы управления IT-инфраструктурой.
- PromQL. Grafana поддерживает работу с PromQL — специальным языком запросов. Это позволяет быстро обрабатывать большие наборы данных и извлекать из них больше полезной информации.
- Разграничение прав. У администраторов есть возможность настроить уровни доступа к дашбордам, чтобы каждый сотрудник видел только то, что нужно для его работы.
Grafana — гибкий инструмент, который можно адаптировать для команд любого размера и даже использовать в одиночку. Поэтому разработчики платформы предлагают несколько способов установки и использования:
- Grafana Cloud. Для изучения и интеграции в пет-проекты подойдёт облачная платформа. Чтобы получить к ней доступ, надо просто зарегистрироваться. После этого можно будет подключить источники данных и настроить дашборды. В бесплатном тарифе есть ограничения по трафику, количеству запросов, выделенному хранилищу на сервер и количеству пользователей.
Скриншот: Grafana / Skillbox Media
- Самохостинг. Grafana — платформа с открытым кодом. Это значит, что можно скачать всё необходимое и установить на собственном сервере. Это даёт больше свободы и снимает любые ограничения, но придётся платить за аренду сервера. Grafana работает на Linux, Windows и macOS. Кроме того, есть уже готовый Docker-контейнер для быстрой установки всего необходимого. Разработчики платформы отмечают, что платформа будет шустро работать даже на 512 МБ оперативной памяти.
При выборе способа работы с Grafana надо учитывать свои возможности и свободное время. Самостоятельная установка потребует постоянного контроля, обслуживания и решения ошибок. Облачная версия работает на удалённом сервере и обслуживается разработчиками платформы.
Grafana — масштабная платформа со множеством функций, поэтому разработчики постоянно выпускают обучающие материалы. С их помощью новички могут быстро разобраться с настройкой и основными принципами работы.
Более подробно про установку и подключение источников данных можно узнать из официальной документации. Она доступна на английском языке, но есть встроенный переводчик.
Научиться создавать информативные и аккуратные дашборды можно с помощью видео от команды разработчиков. Кроме того, компания ведёт блог, в котором часто публикует статьи для начинающих пользователей и анонсирует бесплатные вебинары.
Список всех доступных плагинов можно найти в магазине расширений. На странице каждого плагина публикуют скриншоты, инструкции по установке и подробную документацию по работе.
Бесплатный курс: «SQL и Excel с нуля: работаем с данными»
Учиться бесплатно
Что такое Grafana
Grafana — инструмент с открытым исходным кодом для визуализации данных из различных систем сбора статистики. Его используют для представления в графическом виде временных рядов и текстовой информации.
Grafana поддерживает установку на самые популярные операционные системы: Linux (Debian, Ubuntu, CentOS, Fedora, OpenSuse, RedHat), Mac и Windows. Доступные базы данных, в которых можно хранить информацию о пользователях и дашбордах, — SQLite (используется по умолчанию), MySQL и PostgreSQL.
Подготовка серверов
В качестве демонстрации инструмента будем использовать облачные серверы на CentOS Stream и Ubuntu, на которые установим Grafana с базой данных SQLite.
1. В панели управления перейдем в раздел Облачная платформа и нажмем кнопку Создать сервер.
2. Регион и пул рекомендуем выбрать исходя из местоположения ваших пользователей и других обстоятельств. В рамках инструкции использовали регион Москва с пулом ru-7a. Конфигурацию сервера выбираем фиксированную с 1 vCPU и 1 ГБ RAM. В качестве ОС используем CentOS 8 64-bit. Для демонстрации будет достаточно жесткого диска на 10 ГБ (выбран по умолчанию).
3. Прокручиваем страницу вниз и нажимаем кнопку Создать.
4. Аналогичным образом создаем сервер с Ubuntu 20.04 LTS 64-bit. Здесь меняем только разделы Источник и Имя.
5. Готово. Оба сервера появятся в разделе Облачная платформа → Серверы.
Установка Grafana на Ubuntu
1. Скачиваем GPG-ключ из репозитория производителя и добавляем его в список надежных:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
2. Добавляем в систему репозиторий Grafana:
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
3. Обновляем кэш APT и установим Grafana:
sudo apt update
sudo apt install grafana
4. Включаем автозагрузку и запускаем демон Grafana:
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
5. Установка завершена. Grafana на Ubuntu 20.04 готова к использованию. Проверим текущий статус сервиса:
sudo systemctl status grafana-server
6. Получаем вывод:
grafana-server.service - Grafana instance
Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-01-25 09:44:26 MSK; 10s ago
Установка Grafana на CentOS Stream
Установка Grafana на CentOS Stream выполняется из репозитория разработчиков. Скачать дистрибутив можно с официального сайта.
1. Создаем новую конфигурацию репозитория:
sudo nano /etc/yum.repos.d/grafana.repo
2. Вписываем в файл следующие переменные со значениями:
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
3. Устанавливаем Grafana:
sudo yum install grafana -y
4. Включаем автозагрузку и запускаем демон Grafana:
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
5. Установка завершена и Grafana на CentOS Stream готова к использованию. Проверяем статус сервиса:
sudo systemctl status grafana-server
6. Получаем вывод, что Grafana работает корректно:
grafana-server.service - Grafana instance
Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-01-25 09:48:04 MSK; 5s ago
Настройка брандмауэра для доступа к Grafana
По умолчанию Grafana доступна на порте 3000. При использовании firewalld или iptables необходимо разрешить сетевой доступ к этому порту из внешнего мира. Опишем наборы команд для каждого случая.
Команды для firewalld. Они добавляют новое правило и перезагружают сервис для применения конфигурации:
firewall-cmd --zone=public --add-port=3000/tcp --permanent
systemctl reload firewalld
Набор команд для iptables:
nano /etc/sysconfig/iptables
Также вписываем строку в раздел OUTPUT ACCEPT, после чего перезапускаем iptables:
-A INPUT -p tcp -m tcp --dport 3000 -m state --state NEW -j ACCEPT
sudo systemctl restart iptables
После выполнения описанных шагов сетевой экран будет разрешать подключения по порте 3000. В этом можно убедиться, открыв в браузере интерфейс Grafana. Логин и пароль по умолчанию — admin.
Если же войти в Grafana не удается или вы поменяли пароль и не можете его вспомнить, то через CLI можно сбросить административный пароль веб-интерфейса:
grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" новый_пароль
Теперь можно входить с новым паролем.
Источники данных Grafana и установка плагинов
Мониторинг — одно из основных назначений использования Grafana. Сервис «из коробки» поддерживает различные источники данных. Среди наиболее популярных:
- Prometheus,
- Graphite,
- OpenTSDB,
- InfluxDB,
- Elasticsearch.
Полный список можно посмотреть в официальной документации. Однако и он может быть расширен сторонними плагинами — например, Zabbix.
1. Установим плагин в Grafana и перезагрузим сервис:
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server
2. В Grafana переходим в Configuration → Plugins. Находим здесь плагин для Zabbix.
3. Переходим на страницу плагина и нажимаем на кнопку Enable.
4. После включения плагина в меню Data Sources появится новый источник данных. Нажимаем на кнопку Select и переходим к его настройке.
5. В настройках плагина указываем URL-адрес, имя пользователя и пароль для доступа по API.
6. Нажимаем на кнопку Save & Test и получаем подтверждение, что произвели настройку корректно.
6. Готово. Теперь данные из Zabbix можно использовать для создания визуализаций.
Создание и настройка панелей и дашбордов
Панели и дашборды — основные сущности представлений внутри Grafana. Каждый дашборд состоит из набора панелей. Для создания дашбордов переходим в представление Dashboards и нажимаем на кнопку New Dashboard.
На следующем шаге будет предложено добавить на дашборд новую панель.
В Grafana есть встроенные панели, которые можно использовать сразу. Разберемся в их типах.
- Graph — панель с графиками. Можно комбинировать несколько метрик на одной панели.
- Stat (ранее SingleStat) — одиночный график с возможностью отображения моментального значения метрики.
- Gauge — панель в формате спидометра, в которой можно ограничить верхнее значение на шкале.
- Bar Gauge — отображает несколько метрик на вертикальной гистограмме.
- Table — представлена в виде таблицы, где можно отображать значения нескольких метрик.
- Text — отображает произвольного текста (подписи).
- Heatmap — визуализирует тепловую карту значений метрик.
- Alert list — демонстрирует события из внешних систем.
- Dashboard list — комбинированная панель, которая отображает избранные дашборды.
- News — показывает новостную ленты из внешних источников.
- Zabbix problems — демонстрирует события из системы мониторинга Zabbix.
- Logs — показывает строки лога, которые собираются одной из внешних систем.
Выберем в выпадающем меню источник данных Zabbix и укажем группу, хост, приложение и элемент данных. Если все выполнено верно — на графике появятся данные.
Grafana поддерживает различные типы визуализаций, среди которых:
- графические,
- табличные,
- гистограммы,
- тепловые карты,
- карты сетевого взаимодействия в Grafana.
При создании новой панели в разделе Visualization можно выбрать тип визуализации. Перейдем к созданию SingleStat (отображается как Stat) — панели с комбинацией численного и графического представлений. После ввода данных для Zabbix нажмем кнопку Apply.
Видим интерфейс с двумя панелями. У каждой из них набор настроек, как и у каждого дашборда в Grafana. Настройки первой панели открываются через выпадающее меню. Чтобы открыть настройки второй, нужно нажать на шестеренку в верхнем правом углу экрана.
Импорт и экспорт дашбордов
В Grafana можно импортировать и экспортировать дашборды. Для импорта нужно перейти в представление Dashboards и нажать кнопку Import.
Здесь доступно две опции: загрузка произвольного JSON и импорт готовых дашбордов из официального сайта. Во втором случае нужно указывать ID дашборда.
Чтобы экспортировать любой дашборд, необходимо открыть окно Share с помощью иконки в верхней части экрана и нажать Save to file. Дашборд будет сохранен в формате JSON.
Обратный прокси-сервер и SSL
Для настройки SSL в Grafana нужно использовать обратный прокси-сервер. В рамках инструкции расскажем, как настроить его на базе Nginx. Для демонстрации мы зарегистрировали домен grafana.tk, для которого выпустили сертификат Let’s Encrypt.
После создания сервера мы настроили веб-сервер Nginx для работы через SSL. Теперь перенаправим трафик на порт 3000, по которому доступна Grafana.
1. Открываем конфигурационный файл веб-сервера:
sudo nano /etc/nginx/sites-available/grafana.tk
2. Здесь будем работать со следующим блоком конфигурации:
...
location / {
try_files $uri $uri/ =404;
}
...
3. Заменяем его на другой, чтобы настроить переадресацию на локальный порт 3000.
...
location / {
try_files $uri $uri/ =404;
}
...
4. Проверяем корректность конфигурации Nginx и перезапускаем его:
sudo nginx -t
sudo systemctl reload nginx
5. Теперь тестовая Grafana доступна по URL. Проверим:
Кроме настроек SSL, для повышения безопасности в Grafana можно отключить анонимный доступ и создание новых учетных записей.
Конфигурационный файл Grafana
Конфигурационный файл (по умолчанию /etc/grafana/grafana.ini) позволяет добиться тонкой настройки Grafana. Здесь хранятся параметры, которые можно менять в зависимости от задач. Рассмотрим основные блоки файла.
[paths]
В директории data Grafana хранит БД sqlite3 и другие данные. Для хранения логов сервис использует logs. Обе директории задаются в стартовом скрипте init.d.
[server]
http_addr — IP-адрес, на котором будет доступен веб-интерфейс Grafana. Если параметр не указан, то веб-версия будет доступна по всем сетевым интерфейсам сервера.
http_port — порт, на котором будет доступен веб-интерфейс Grafana. По умолчанию номер порта 3000. Если нужно использовать порт 80, можно настроить переадресацию в iptables:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
Для переадресации можно также использовать веб-сервер Nginx или Apache.
protocol — протокол, по которому будет доступна Grafana, — HTTP или HTTPS.
domain — может использоваться только вместе с опцией root_url (см. ниже). Важно, если вы используете аутентификацию через GitHub или Google OAuth.
enforce_domain — переадресация на корректный домен, если заголовок хоста не соответствует домену. По умолчанию в значении false.
root_url — полный URL-адрес для доступа к Grafana через веб-браузер. Важно, если вы используете аутентификацию через GitHub или Google OAuth.
static_root_path — путь к директории, в которой находятся файлы HTML, JS и CSS.
cert_file — директория с файлом сертификата (если доступ к Grafana по HTTPS).
cert_key — директория с файлом ключа (если доступ к Grafana осуществляется по протоколу HTTPS).
[database]
Grafana нужна база данных для хранения пользователей, дашбордов и других данных. По умолчанию используется sqlite3, которая включена в дистрибутив Grafana. Рассмотрим параметры блока database.
type — тип БД на выбор. Поддерживаются mysql, postgres и sqlite3.
path — параметр применим только к базе данных sqlite3. Путь к файлу данных.
host — параметр применим только к MySQL или Postgres. Включает IP-адрес или hostname и номер порта. Например, для MySQL запущенной на одном сервере с Grafana, host = 127.0.0.1:3306
name — имя базы данных Grafana.
user — имя пользователя базы данных (не применимо к sqlite3).
password — пароль пользователя базы данных (не применимо к sqlite3).
ssl_mode — применимо только к postgres. Доступны опции: disable, require или verify-full.
[security]
admin_user — имя привилегированного пользователя Grafana. По умолчанию admin.
admin_password — пароль привилегированного пользователя Grafana. По умолчанию admin.
login_remember_days — количество дней, в течении которых не требуется повторный ввод логина и пароля.
disable_gravatar — отключение пользовательской иконки. Для отключения нужно установить в значение true.
[users]
allow_sign_up — устанавливается в false для предотвращения создания новых учетных записей действующими пользователями.
allow_org_create — устанавливается в false для предотвращения создания новых организаций действующими пользователями. По умолчанию в значении true.
auto_assign_org — устанавливается в true для автоматического добавления новых пользователей в основную организацию (id 1). Когда установлено в false, созданные пользователи добавляются в новые организации, которые создаются автоматически.
auto_assign_org_role — роль новых пользователей будет привязана к основной организации.
[auth.anonymous]
enabled — для включения анонимного доступа нужно установить в значение true. По умолчанию false.
org_name — устанавливает имя организации, которое будет использоваться для анонимных пользователей.
org_role — указывает роль для анонимных пользователей. По умолчанию — Viewer, но для выбора доступны Editor и Admin.
[auth.basic]
enabled — когда установлено значение true (по умолчанию), HTTP API будет принимать соединения с флагом basic authentication.
[auth.ldap]
enabled — устанавливается в true для включения интеграции с LDAP.
config_file — путь к конфигурационному файлу LDAP. По умолчанию /etc/grafana/ldap.toml.
[auth.proxy]
Функция разрешает аутентифицироваться в обратном прокси.
enabled — параметр включения. По умолчанию установлен в false.
header_name — по умолчанию установлено в X-WEBAUTH-USER.
header_property — по умолчанию имя пользователя, но также может принимать значение адреса электронной почты.
auto_sign_up — устанавливается в значение true для включения автоматического входа пользователей, которые отсутствуют в Grafana DB. По умолчанию установлено значение true.
[session]
provider — валидные значения: memory, file, mysql, postgres. По умолчанию установлено значение file.
provider_config — опция должна быть сконфигурирована отдельно в зависимости от того, какой тип провайдера сессии установлен.
- file — путь к файлу с сессиям. Например, data/sessions.
- mysql — go-sql-driver/mysql dsn config string. Например, user:password@tcp(127.0.0.1:3306)/database_name
- postgres — ex: user=a password=b host=localhost port=5432 dbname=c sslmode=disable
cookie_name — имя сессионного cookie в Grafana.
cookie_secure — устанавливается в true, если Grafana находится только за HTTPS-прокси. По умолчанию установлено в значение false.
session_life_time — параметр длины сессии в секундах. По умолчанию — 86 400 секунд (24 часа).
[analytics]
reporting_enabled — когда опция включена, Grafana будет отправлять анонимную статистику на stats.grafana.org. Никакие IP-адреса не записываются. Данные отправляются каждые 24 часа. По умолчанию установлено в true.
google_analytics_ua_id — если вы хотите отслеживать активности в Grafana при помощи Google analytics, укажите ваш Universal Analytics ID. По умолчанию функция отключена.
[dashboards.json]
Если у вас есть система, которая автоматически строит дашборды из JSON-файлов, вы можете включить эту опцию. Так новые дашборды будут доступны через поиск в Grafana.
enabled — значение true или false. По умолчанию выключено.
path — полный путь к директории, которая содержит JSON-файлы с дашбордами.
Заключение
Мы рассмотрели подходы к установке, настройке и работе с Grafana. Этот популярный инструмент имеет большое сообщество разработчиков, которые поддерживают и развивают проект, создавая новые плагины и дашборды. У Grafana регулярно выходят обновления и улучшения, поэтому можно без опасений использовать этот инструмент в продакшн-средах.
Графана: что это такое и зачем нужна – полное руководство
Пройдите тест, узнайте какой профессии подходите
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы
Для кого эта статья:
- специалисты в области IT и DevOps
- аналитики данных и инженеры по мониторингу
- руководители проектов и системы администраторы
Представьте, что вы открываете консоль мониторинга и сразу видите: красной линией ползёт вверх время отклика базы данных, жёлтым мигает график нагрузки на CPU, а синий индикатор памяти замер в критической зоне. Не просто набор чисел, а визуальная карта здоровья вашей системы — именно так работает Grafana. Этот инструмент давно перестал быть просто «красивыми графиками для гиков» и превратился в незаменимый элемент экосистемы любого серьёзного IT-проекта. Давайте разберёмся, почему Grafana стала стандартом де-факто для визуализации метрик и как она может трансформировать ваш подход к мониторингу инфраструктуры. 🚀
Хотите не просто разобраться с Grafana, но и получить комплексное понимание работы с данными? Курс «Аналитик данных» с нуля от Skypro поможет освоить полный цикл работы с информацией — от сбора до создания интерактивных дашбордов. Вы научитесь не только визуализировать данные в инструментах вроде Grafana, но и правильно их интерпретировать, что критически важно для принятия решений в современной IT-инфраструктуре.
Графана: основы платформы для визуализации данных
Grafana — это открытая платформа для мониторинга и визуализации данных, которая позволяет собирать информацию из различных источников и представлять её в виде интерактивных дашбордов. Впервые выпущенная в 2014 году, Grafana быстро стала стандартом в мире аналитики и мониторинга. 📊
В основе философии Grafana лежит концепция «одно окно для всех данных». Вместо того чтобы переключаться между разными инструментами для мониторинга различных аспектов системы, Grafana позволяет создать единую консоль, где все важные метрики доступны в реальном времени.
Дмитрий Соколов, Lead DevOps инженер
Мой путь к Grafana начался с маленькой катастрофы. Четыре года назад наша компания пережила 6-часовой простой основного сервиса из-за проблем с базой данных. Постмортем показал, что сигналы о проблеме были видны за 2 дня до инцидента — медленно росло время выполнения запросов. Но мы упустили эти сигналы, потому что смотрели на разрозненные логи и не видели общей картины.
После этого я инициировал внедрение Grafana. Первый дашборд мы собрали за день, подключив Prometheus для сбора метрик. Через месяц у нас уже было 15 дашбордов, покрывающих все критические системы. Самым впечатляющим стало то, что следующую потенциальную проблему — утечку памяти на одном из сервисов — мы заметили за неделю до того, как она могла привести к отказу. График в Grafana показывал аномальный рост потребления RAM, который невозможно было заметить при обычном просмотре логов.
Сейчас для нашей команды немыслимо запускать сервис без подключения его к системе мониторинга. Grafana стала нашими глазами, которые никогда не моргают.
Архитектура Grafana спроектирована для масштабируемости и построена на трёх ключевых компонентах:
- Источники данных (Data Sources) — коннекторы к различным хранилищам: от баз данных до специализированных систем мониторинга
- Дашборды (Dashboards) — настраиваемые интерфейсы с панелями визуализации
- Панели (Panels) — отдельные элементы визуализации (графики, таблицы, тепловые карты)
Grafana работает по принципу «запрос-ответ». Система отправляет запросы к подключенным источникам данных, получает результаты и трансформирует их в визуальные представления согласно настройкам пользователя.
Одно из главных преимуществ Grafana — её оптимизация для временных рядов. В отличие от общих инструментов визуализации, Grafana специально создана для работы с данными, имеющими временную привязку, что делает её идеальной для мониторинга производительности и анализа трендов.
Ключевые возможности и функции Графаны в мониторинге
Grafana выделяется среди других инструментов мониторинга благодаря ряду уникальных функций, которые позволяют создавать комплексные системы наблюдения за инфраструктурой. Рассмотрим ключевые возможности, которые делают Grafana незаменимым инструментом для DevOps-команд и системных администраторов. 🔍
- Многообразие визуализаций — графики, гистограммы, диаграммы, тепловые карты, таблицы, одиночные статистики и другие типы панелей для представления данных
- Интерактивность — возможность изменения временных диапазонов, наведения для получения деталей, масштабирование графиков
- Система оповещений — настройка уведомлений на основе пороговых значений метрик с интеграцией со множеством каналов связи
- Аннотации — возможность отмечать на графиках важные события (деплои, инциденты, плановые работы)
- Шаблонизация — использование переменных для создания динамических дашбордов, которые могут отображать данные для разных серверов, сервисов или окружений
Особенно стоит отметить систему алертинга Grafana, которая с версии 8.0 была полностью переработана. Теперь она позволяет создавать комплексные условия для оповещений, использующие множество метрик одновременно, что повышает точность детекции проблем и снижает количество ложных срабатываний.
Интересным аспектом Grafana является её экосистема расширений. В 2025 году официальный каталог плагинов насчитывает более 150 интеграций, включая специализированные источники данных и уникальные типы визуализации, созданные как командой Grafana Labs, так и сообществом.
Максим Петров, Инженер по мониторингу
Помню случай с крупным финтех-проектом, где я настраивал мониторинг платформы микросервисов. На старте у сервиса был базовый мониторинг через CloudWatch — строки логов и редкие графики. После увеличения нагрузки в два раза команда столкнулась с непредсказуемыми задержками в API, которые не удавалось локализовать.
Мы развернули Grafana и интегрировали её с Prometheus для сбора метрик и Loki для агрегации логов. Ключевым моментом стало создание единого дашборда «Service Health», где каждому микросервису соответствовал набор панелей: время отклика, количество ошибок, CPU/RAM, число запросов в секунду и специфичные для сервиса метрики.
Уникальная функция Grafana, которая нас выручила — шаблонные переменные. Мы создали выпадающее меню для выбора окружения (dev/stage/prod) и сервиса, что позволяло инженерам мгновенно переключаться между разными представлениями без создания отдельных дашбордов.
Спустя неделю паттерн проблемы стал очевиден — задержки возникали при синхронных вызовах сервиса авторизации в момент наплыва новых пользователей. Графики в Grafana показывали не только симптом, но и причину: рост времени выполнения SQL-запросов в базе данных, который приводил к исчерпанию пула соединений.
Без визуализации в Grafana эта проблема могла оставаться незаметной ещё месяцы, постепенно ухудшая пользовательский опыт.
В 2025 году Grafana активно развивает направление распределённого трейсинга, интегрируя в свою экосистему Grafana Tempo — систему хранения и визуализации трассировок. Это позволяет не только видеть состояние системы, но и отслеживать путь конкретных запросов через микросервисную архитектуру, что критически важно для отладки комплексных систем.
Настройка дашбордов и визуализации в Графане
Дашборды — сердце Grafana. Именно через них происходит взаимодействие с данными и получение ценных инсайтов о состоянии инфраструктуры. Создание эффективных дашбордов — это сочетание технических знаний и визуального дизайна. 🎨
Базовый процесс создания дашборда в Grafana выглядит так:
- Создание нового дашборда через меню «Create Dashboard»
- Добавление панелей с помощью кнопки «Add panel»
- Выбор источника данных для панели
- Написание запроса для извлечения нужных данных
- Настройка визуализации (тип графика, цвета, масштаб, легенда)
- Сохранение дашборда с уникальным именем и описанием
Однако истинная мощь Grafana раскрывается при использовании продвинутых техник:
При настройке визуализаций важно учитывать несколько ключевых принципов:
- Информационная плотность — баланс между количеством информации на экране и её читабельностью
- Контекст — добавление пороговых значений и сравнительных метрик для оценки текущих показателей
- Группировка — логическое объединение связанных метрик в разделы или отдельные строки панелей
- Согласованность — использование одинаковых цветовых схем и временных интервалов для сопоставимых метрик
- Интерактивность — настройка переменных для фильтрации и детализации данных «на лету»
Для комплексных систем рекомендуется создавать иерархию дашбордов: от обзорных (показывающих общее состояние системы) до детализированных (для глубокого анализа конкретных компонентов).
Вот пример структуры дашбордов для типичного веб-приложения:
- Обзорный дашборд — ключевые бизнес-метрики, общее здоровье системы, SLI/SLO
- Инфраструктурный дашборд — состояние серверов, контейнеров, сетевой активности
- Дашборд приложения — производительность кода, время ответа API, ошибки
- Дашборд базы данных — задержки запросов, кеширование, блокировки
- Дашборд для бизнес-метрик — конверсии, активность пользователей, продажи
Одной из наиболее полезных функций Grafana при создании дашбордов является система переменных. Переменные позволяют создавать динамические дашборды, которые могут показывать данные для разных сред, серверов или сервисов.
В 2025 году Grafana также предлагает функцию «Explore», которая позволяет быстро исследовать и визуализировать данные без необходимости создания полноценного дашборда. Это особенно полезно при отладке проблем или при первичном анализе новых источников данных.
Хотите не просто строить графики, но и принимать стратегические решения на основе данных? Тест на профориентацию от Skypro поможет определить, насколько аналитические навыки соответствуют вашим карьерным амбициям. Пройдите короткий тест и узнайте, подходит ли вам работа с инструментами визуализации данных вроде Grafana, или ваши таланты больше раскроются в другой IT-специализации.
Интеграция Графаны с источниками данных и системами
Универсальность Grafana во многом обеспечивается её способностью подключаться к широкому спектру источников данных. Эта гибкость позволяет создавать единую панель мониторинга для разнородных систем и сервисов. 🔌
Grafana поддерживает три основных типа источников данных:
- Временные ряды (Time Series DB) — Prometheus, InfluxDB, Graphite, TimescaleDB
- Логи — Loki, Elasticsearch, CloudWatch Logs
- Трассировки — Jaeger, Zipkin, Tempo
Кроме того, Grafana может работать с традиционными базами данных (MySQL, PostgreSQL, Microsoft SQL Server), облачными провайдерами (AWS CloudWatch, Azure Monitor, Google Cloud Monitoring) и даже с простыми CSV-файлами.
Рассмотрим наиболее популярные интеграции и их особенности:
Интеграция Grafana с источниками данных осуществляется через специальные коннекторы, которые определяют, как система будет запрашивать, обрабатывать и визуализировать информацию. Для каждого типа источника Grafana предлагает оптимальные инструменты визуализации и редакторы запросов.
Особую ценность представляет возможность комбинирования данных из разных источников на одном дашборде. Например, вы можете визуализировать метрики производительности из Prometheus рядом с логами ошибок из Loki и бизнес-метриками из PostgreSQL.
В 2025 году Grafana существенно расширила возможности федерации данных. Теперь система может не только подключаться к разным источникам, но и объединять данные из них в одном запросе, что открывает новые возможности для корреляционного анализа.
- Корреляция событий — связывание скачков нагрузки системы с активностями пользователей
- Причинно-следственный анализ — отслеживание влияния инфраструктурных изменений на бизнес-показатели
- Комплексный мониторинг — единый взгляд на всю технологическую цепочку от инфраструктуры до бизнес-результатов
Важным аспектом интеграции является безопасность. Grafana поддерживает различные методы аутентификации для источников данных, включая API-ключи, базовую аутентификацию и OAuth. Чувствительные данные, такие как пароли и токены, хранятся в зашифрованном виде.
Для корпоративных сред, где требуется централизованное управление доступом, Grafana Enterprise предлагает расширенные возможности интеграции с LDAP, Active Directory и системами единого входа (SSO).
Оптимальные практики использования Графаны в IT-проектах
После настройки и интеграции Grafana важно организовать работу с ней таким образом, чтобы максимизировать пользу для IT-проектов. Многолетний опыт сообщества позволил сформировать набор лучших практик, следование которым повышает эффективность мониторинга. 🏆
Вот ключевые рекомендации для оптимального использования Grafana:
- Иерархическая организация дашбордов — структурирование от общего к частному, с четкой навигацией между уровнями
- Стандартизация дизайна — единые принципы оформления для всех дашбордов, облегчающие восприятие
- Документирование метрик — пояснения к каждому графику, формулам расчета и источникам данных
- Оптимизация запросов — минимизация нагрузки на источники данных через агрегацию и правильные интервалы обновления
- Управление версиями — хранение конфигураций дашбордов в системе контроля версий (как код)
Особенно важно наладить процесс «мониторинга как кода» (Monitoring as Code). Этот подход подразумевает хранение всех конфигураций дашбордов в виде JSON-файлов в репозитории, что обеспечивает:
Для крупных организаций рекомендуется создать центр компетенций по мониторингу, который будет отвечать за:
- Разработку и поддержание стандартов визуализации
- Создание библиотеки готовых панелей и дашбордов
- Обучение команд эффективному использованию инструментов мониторинга
- Аудит существующих дашбордов на предмет актуальности и полезности
В 2025 году особую ценность приобретает практика «проактивного мониторинга», когда система не только фиксирует проблемы, но и предсказывает их. Grafana предлагает для этого несколько инструментов:
- Прогнозирование временных рядов — экстраполяция трендов для предсказания будущих значений
- Обнаружение аномалий — автоматическое выявление отклонений от нормального поведения
- Корреляционный анализ — выявление связей между различными метриками
Важным аспектом является также интеграция Grafana в общие процессы операционной деятельности:
- Интеграция с системами управления инцидентами — автоматическое создание тикетов при срабатывании алертов
- Связь с CI/CD — маркировка моментов деплоя на графиках для отслеживания влияния изменений
- Использование в процессах постмортемов — анализ исторических данных для выяснения причин инцидентов
И наконец, не стоит забывать об оптимизации самой Grafana. По мере роста числа дашбордов и источников данных необходимо следить за ресурсами, которые потребляет система:
- Регулярное обновление до актуальных версий
- Мониторинг производительности Grafana (да, мониторинг системы мониторинга!)
- Архивирование или удаление устаревших дашбордов
- Оптимизация запросов, особенно к «тяжелым» источникам данных
- Рассмотрение возможности горизонтального масштабирования для крупных инсталляций
Grafana превратилась из простого инструмента визуализации в комплексную платформу, которая меняет подход к работе с датаметриками. Главное достижение Grafana — это не просто красивые графики, а фундаментальный сдвиг в культуре мониторинга. Она делает данные доступными и понятными для всех членов команды, от системных администраторов до руководителей проектов, создавая единый язык обсуждения производительности систем. Внедрив Grafana, вы не просто получаете инструмент — вы меняете философию работы с инфраструктурой, переходя от реактивного устранения проблем к проактивному управлению. В мире, где минута простоя может стоить тысячи долларов, этот переход становится не просто техническим улучшением, а стратегическим конкурентным преимуществом.
Работать с любым IT-проектом становится проще, если у администратора под рукой есть масса различных метрик и результатов мониторинга. Еще лучше, если получаемые данные отображаются в удобном для изучения виде – визуально. С этой целью применяют инструменты вроде Grafana – решение с открытым исходным кодом, предназначенное для сбора информации из разных источников и ее консолидации в виде визуальных отчетов.
Продукт поддерживает разные платформы – Windows, macOS, Linux (популярные сборки вроде Debian, Ubuntu, CentOS, Fedora, OpenSuse или RedHat). В качестве базы данных возможна работа с SQLite, MySQL, PostgreSQL. Выбор богатый, в большинстве случаев администратору не требуется адаптироваться к решению.
На примерах далее рассмотрим установку программы, ее базовые настройки, особенности работы с дашбордами.
Инсталляция Grafana на CentOS Stream
При аренде виртуальной машины или выделенного сервера на timeweb.cloud пользователь вправе устанавливать на удаленный компьютер любую операционную систему. Чаще это одна из распространенных сборок Linux, вроде CentOS или Ubuntu, поэтому в качестве примера и возьмем последние версии этих ОС. И будем считать, что платформа уже установлена, готова к инсталляции утилита Графана и другие прикладные программы.
Последовательность действий:
1. Создадим новую конфигурацию официального репозитория:
sudo nano /etc/yum.repos.d/grafana.repo
2. Внесем в сгенерированный файл данные по переменным:
[grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm repo_gpgcheck=1 enabled=1 gp
3. Проведем инсталляцию приложения:
sudo yum install grafana –y
4. Включим автозагрузку программы и запустим ее:
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
Инсталляция завершена, приложение готово к эксплуатации. Но перед этим желательно проверить его текущий статус. Выполним это командой:
sudo systemctl status grafana-server
После ввода на экране компьютера должно появиться сообщение:
grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
Оно означает, что продукт установлен, активен, находится в заводских настройках и готов к работе. Проверка нужна на случай, если предыдущий администратор уже работал с программой или на сервер была установлена какая-либо нестандартная сборка Linux, в которой уже был интегрирован целый перечень дополнительных утилит.
Инсталляция Grafana на Ubuntu
Процедура установки на Ubuntu та же – Grafana берется из официального репозитория и ставится на платформу после подготовки. Последняя заключается во внесении адреса нужного сайта в список доверенных, чтобы система не блокировала скачивание файлов.
Последовательность команд:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add –
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt update
sudo apt install grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
После инсталляции и включения автозагрузки приложения остается проверить текущий статус:
sudo systemctl status grafana-server
Сходным образом процедура инсталляции Grafana выглядит и для Docker. В любом случае перед использованием его функционала требуется настройка брандмауэра IPTables или Firewalld, если их уже активировали (рекомендуется).
vds
Рассмотрим команды на примере популярного сетевого экрана IPTables. В нем необходимо открыть доступ по сети к «стандартному» порту (для Grafana таковым является Port 3000). Процедура будет включать добавление новых правил и перезагрузку сервиса для применения изменений.
Вносим правило:
nano /etc/sysconfig/iptables
Добавляем строку в раздел OUTPUT ACCEPT:
-A INPUT -p tcp -m tcp --dport 3000 -m state --state NEW -j ACCEPT
Перезагружаем приложение:
sudo systemctl restart iptables
Остается проверить запуск программы с удаленного хоста, чтобы убедиться в открытии порта 3000.
Если администратор предпочитает пользоваться брандмауэром Firewalld, изменение конфигурации будет выглядеть так:
firewall-cmd --zone=public --add-port=3000/tcp --permanent
systemctl reload firewalld
По умолчанию в Графана логин и пароль простые – admin. Если пользователь их поменял и забыл, есть возможность сброса защиты доступа:
grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" новый_пароль
После ввода команды можно входить в программу, логин останется прежним.
Источники данных и инсталляция плагинов
Графана поддерживает подключение целого перечня источников данных – Prometheus, Graphite, OpenTSDB, InfluxDB и пр. Полный перечень вариантов приведен в инструкции от разработчика, но этим возможности программы не ограничены. Пользователь может подключать различные Grafana Plugins – дополнения, расширяющие возможности мониторинга, например популярный плагин Zabbix Grafana Dashboard.
Процедура установки:
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server
После перезагрузки приложения в подразделе Plugins раздела Configuration появится новый пункт Zabbix. Нужно кликнуть по кнопке Enabled, чтобы активировать новый функционал, после этого в меню Data Sources появится новый источник данных, который настраивается нажатием на Select. Та же схема применяется для других плагинов, например для Grafana PostgreSQL, который нужен для работы с одноименной базой данных, или Grafana ElasticsSearch.
Работа с дашбордами
Основа работы программы Графана – дашборды, наборы панелей с визуальным отображением полученных данных. По умолчанию на главный экран выводится часть основной информации, но каждый пользователь настраивает систему «под себя». Для этого достаточно кликнуть на кнопку New Dashboard и создать новую панель нужного вида (и так по кругу, пока на экран не будут выведены все необходимые данные).
Варианты дашбордов:
- Graph – несколько метрик на одной панели.
- Stat – одиночный график.
- Gauge – формат спидометра.
- Bar Gauge – вертикальная гистограмма.
- Table – таблица с несколькими метриками.
- Text – произвольный текст.
- Heatmap – тепловая карта значений.
- Alert List – перечень событий Grafana Alert.
- Dashboard List – дашборды, добавленные в избранное.
Также в Grafana есть возможность включить отображение данных типа Logs, строчек лог-файлов из внешних источников. На выбор пользователя различные методы визуализации – графические и табличные, тепловые карты, гистограммы и т.д. Grafana Logs можно импортировать или экспортировать, чтобы не создавать каждый раз с нуля, а просто перенести с однажды грамотно настроенной системы.
В случае необходимости «тонкого» управления программой рекомендуется обратиться к подробной документации разработчика. Там приведена схема конфигурирования путем внесения различных параметров напрямую в файл Grafana.ini. При помощи такого способа администратор меняет папки для хранения логов, порт по умолчанию, другие настройки доступа, включая прокси, добавление и блокировку новых пользователей.
Заключение
Программа Grafana представляет собой универсальный продукт для мониторинга событий. Чтобы хорошо разобраться в нем, есть смысл поэкспериментировать с внешним видом дашбордов или их сочетанием, опробовать «ручной режим» конфигурирования путем внесения изменений в файл INI. Плюс стоит знакомиться с плагинами сторонних разработчиков, они заметно расширяют перечень функций приложения. Проект постоянно развивается, поэтому этот инструмент мониторинга будет оставаться в топе популярных.
Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров43K
Немного расскажу про установку Grafana на windows и настройку базовых метрик системы.
Пару слов о самой Grafana и для чего она нужна.
Grafana – это платформа для мониторинга, анализа данных и визуализации собранных данных с открытым исходным кодом. По сути она используется для визуального представления собранных метрик для более комфортного слежения за состоянием системы.
В данной статье буду использовать:
-
Grafana
-
Prometheus
-
Windows_exporter
-
Blackbox_exporter
Для начала скачаем актуальный дистрибутив самой Grafana и установим его (Для скачивания, может потребоваться VPN).
Переходим по ссылке: https://grafana.com/grafana/download и выбираем необходимую версию для скачивания.
Затем скачаем и установим Prometheus.
Prometheus по сути является сборщиком метрик. Установив на один пк, который будет выступать в качестве сервера для Grafana, достаточно будет только запускать сбор метрик с других машин (вносить соответствующий блок в файл конфигурации Prometheus), а Prometheus в свою очередь подготовит метрики уже для самой Grafana.
Prometheus: https://prometheus.io/download
Для установки потребуется NSSM — это сервисный помощник, который помогает установить служебные вспомогательные программы.
Ссылка NSSM: https://www.nssm.cc/download
Приступим к установке Prometheus.
Переходим в CMD и вводим следующие команды (запускаем CMD от админа):
-
Переходим в директорию с пакетом NSSM:
cd C:\GrafanaSetup\nssm-2.24\win64 -
Выполняем установку сервиса Prometheus:
nssm.exe install prometheus C:\GrafanaSetup\prometheus-2.43.0.windows-amd64\prometheus.exe
На данном этапе служба Prometheus должны быть установлена, Далее установим службы для сбора метрик.
Установим Windows_exporter – сборщик метрик, который как раз собирает статистику с системы и составляет своего рода «логи».
Ссылка для скачивания Windows exporter: https://github.com/prometheus-community/windows_exporter/releases
Выбираем подходящую нам версию и устанавливаем
После установки, так же проверяем в службах, что установка прошла успешно и служба запущена (название службы по умолчанию windows_exporter).
Теперь можно проверить сбор метрик по ссылке к порту службы: http://localhost:9182/metrics
На данном этапе можем установить Blackbock exporter — используется для мониторинга статуса доступности URL-ов. Переходим по ссылка и скачиваем нужную нам версию Blackbox: https://prometheus.io/download/ и устанавливаем.
Теперь приступим к настройке установленных сервисов.
Начинаем с Grafana:
Переходим в папку C:\Program Files\GrafanaLabs\grafana\conf и открываем файл defaults.ini при помощи текстового редактора и меняем значение в блоке smtp в поле enabled на true и сохраняем изменения. Запускаем службу Grafana, если она уже запущена, просто делаем перезапуск для вступления изменений в силу.
Перейдя по ссылке: http://localhost:3000 увидим активный интерфейс Grafana. Для входа по умолчанию используется комбинация admin / admin, затем попопросит Вас изменить пароль и направит на домашнюю страницу управления Grafana.
Далее приступаем к настройке Prometheus:Нам необходимо внести изменения в конфигурацию, включив метрики в конфиг. Для этого переходим в каталог prometheus») и открываем файл prometheus.yml и вносим следующие изменения:
Добавляем блок для подключения windows_exporter:
- job_name: "Любое комфортное имя"
static_configs:
#IP-адрес и порт, где собираются метрики window_exporter\
- targets: ["localhost:9182”]
При добавлении нескольких машин, можно добавить блок lables, который изменит отображаемый IP-адрес на свое описание:
static_configs:
- targets: ["localhost:9182"]
labels:
instance: Server-1
- targets: ["192.168.0.254:9182"]
labels:
instance: Server-2
Сразу добавим блок для blackbox_exporter:
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
-https://youtube.com
-https://google.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: localhost:9115 # The blackbox exporter's real hostname:port
В блоке targets перечисляем необходимые URL-адреса.
Только обратите внимание, для того, что бы блок корректно заработал и не было ошибок при запуске службы, необходимо строго соблюдать табуляцию строк.
Добавив необходимые блоки можем запускать prometheus.
Затем убедитесь, что все службы запущены:
-
Grafana
-
Prometheus
-
Windows_ exporter
-
Blackbox_exporter
и теперь проверяем статус сервисов по ссылке: http://localhost:9090/targets
В целом мы настроили базовые метрики, осталось включить отображение метрик в Grafana.
Переходим на главную страницу grafana ( По умолчанию: http://localhost:3000 ).
Подключаем источник данных Prometheus:
На главной странице, переходим в меню Data sources
Выбираем наш Prometheus
И указываем наш URL. В нашем случае, всё находится на одной локальной машине и можем прописывать через формат: http://localhost:port/
И нажимаем кнопку: Save & test
Теперь необходимо настроить панели мониторинга для метрик windows exporter. Для настройки переходим на главную страницу и добавляем панель:
На момент написания статьи, нашёл два наиболее охватывающих Dashboard`а:
-
14510
-
14694
Можете использовать их или же настроить всё самостоятельно.
Для добавления Dashboard`а указываем в поле ID и нажимаем на кнопку Load.
Затем нас направляет на панель настроек, где мы указываем источник данных Prometheus и можем изменить имя самой панели. Затем жмём кнопку Import
И у нас уже готовая, настроенная панель мониторинга, которую уже можно добавлять необходимым функционалом. Не нужные графики можно удалить или расставить в нужном для себя порядке.
При добавлении новых пк для мониторинга, достаточно внести строки в конфигурационный файл Prometheus.yml и перезапустить службу Prometheus. Служба самостоятельно разберёт метрики и добавить новый пк к мониторингу на уже готовый dashboard, где уже не составит труда переключаться между пк.
Далее уже можно поиграть с конкретными метриками, и отображением конкретных служб с различных машин. К примеру: На главном экране нажимаем ADD > Visualization и попадаем в меню создания панели. В поле Metrics browser вносим выбранную метрику и указываем параметры, которые хотим получить (ну или отобразить). Сделаем на примере службы windows:
-
Name — имя службы
-
State — вид статуса, который относится к метрике windows_service_state
-
Instance — с какой конкретной машины брать метрику.
windows_service_state{name="нужная служба", state="running", instance="Server-1"}
и в правом верхнем углу выбираем нужный вид панели, в моем случае это Stat:
В параметрах панели в меню Value mappings и меняем цифровые значения метрик на удобные для восприятия слова, к примеру: Ok/Bad Up/Down.
Сохраняем и получаем такую панель :
Ну и настроим метрику для получения статусов HTTP:
Используем метрику: probe_http_status_code и настроим Value mapping:
probe_http_status_code{instance="https://youtube.com"}
И в итоге получаем такую панель:
Далее можно самостоятельно зайти в http://localhost:9090/targets выбрать нужные для своих задач метрики и настроить нужные под свои задачи.
Думаю, на этом можно закончить. Базовая настройка не так сложна, но когда ты сталкиваешься с этим в первый раз, могут возникнуть трудности, поэтому хотел поделиться пошаговой настройкой. Надеюсь, кому-то это поможет и сократить достаточно времени на поиске информации и первичной настройки.
