Мониторинг облачного балансировщика нагрузки
Для облачных балансировщиков нагрузки можно настроить мониторинг — собирать и экспортировать метрики OpenStack Octavia в формате Prometheus и подключить Grafana, чтобы отслеживать метрики на дашбордах.
Посмотреть список доступных метрик можно в таблице Метрики Octavia в формате Prometheus.
Настроить мониторинг
Мы не рекомендуем настраивать мониторинг в период максимальной нагрузки вашей инфраструктуры. При увеличении трафика на балансировщике нагрузки растет частота запроса метрик — это влияет на производительность инстансов балансировщика.
- Создайте правило балансировщика нагрузки.
- Создайте облачный сервер для Prometheus и Grafana.
- Установите Prometheus на облачном сервере и настройте сбор метрик.
- Установите Grafana на облачном сервере и авторизуйтесь в Grafana.
- Создайте дашборд в Grafana.
1. Создать правило балансировщика нагрузки
После создания правила с протоколом PROMETHEUS метрики облачного балансировщика нагрузки будут доступны из интернета по IP-адресу и порту без аутентификации, если:
- балансировщик нагрузки находится в приватной подсети и к нему подключен публичный IP-адрес;
- или балансировщик нагрузки находится в публичной подсети.
Панель управления
OpenStack CLI
-
Если балансировщик нагрузки находится в приватной подсети и к нему подключен публичный IP-адрес, создайте облачный файрвол.
Если балансировщик находится в публичной подсети, закрыть доступ к метрикам нельзя.
-
В панели управления перейдите в раздел Облачная платформа → Балансировщики.
-
Откройте вкладку Балансировщики → страница балансировщика.
-
Нажмит е Создать правило.
-
В поле Протокол приема трафика выберите вариант Prometheus.
-
Опционально: измените порт балансировщика, к которому Prometheus будет обращаться для получения метрик. По умолчанию назначается порт 8088.
-
Опционально: измените настройки соединений для входящих запросов на балансировщик, для этого откройте блок Расширенные настройки правила и укажите таймаут соединения и максимум соединений.
-
Нажмите Создать.
-
Если балансировщик нагрузки находится в приватной подсети и к нему подключен публичный IP-адрес, создайте облачный файрвол.
Если балансировщик находится в публичной подсети, закрыть доступ к метрикам нельзя.
-
Создайте правило для балансировщика с протоколом PROMETHEUS и портом 8088:
openstack loadbalancer listener create \
--name <listener_name> \
--protocol PROMETHEUS \
--protocol-port 8088 \
<loadbalancer>Укажите:
<listener_name>
— имя правила;<loadbalancer>
— ID или имя балансировщика нагрузки, можно посмотреть черезopenstack loadbalancer list
.
-
Чтобы посмотреть метрики балансировщика нагрузки в текстовом формате, откройте в браузере страницу:
http://<loadbalancer_ip_address>:8088
Укажите
<loadbalancer_ip_address>
— приватный или публичный IP-адрес балансировщика нагрузки. Можно посмотреть в панели управления в разделе Облачная платформа → Балансировщики → вкладка Балансировщики → страница балансировщика нагрузки.
2. Создать облачный сервер для Prometheus и Grafana
Prometheus и Grafana нужно установить и настроить на облачном сервере, который находится в одной приватной подсети с балансировщиком нагрузки.
Используйте инструкцию Создать облачный сервер.
Выберите:
- источник — любой готовый образ с Ubuntu, например
Ubuntu 22.04 LTS 64-bit
; - конфигурацию — любую конфигурацию (фиксированную или произвольную) с vCPU от 2, RAM от 4 ГБ и объемом загрузочного диска от 10 ГБ;
- сеть — приватную подсеть с публичным IP-адресом, к которой подключен балансировщик нагрузки.
3. Установить Prometheus на облачном сервере и настроить сбор метрик
-
Подключитесь к облачному серверу, который вы создали ранее.
-
Скачайте и установите Prometheus:
sudo apt update
wget https://github.com/prometheus/prometheus/releases/download/v2.45.1/prometheus-2.45.1.linux-amd64.tar.gz
tar xvf prometheus-2.45.1.linux-amd64.tar.gz
cd prometheus-2.45.1.linux-amd64 -
Откройте конфигурационный файл
prometheus.yml
:nano prometheus.yml
-
Измените значение
targets
в блокеscrape_configs
:Пример блока:
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["<loadbalancer_private_ip_address>:8088"]Укажите
<loadbalancer_private_ip_address>
— приватный IP-адрес балансировщика нагрузки. Можно посмотреть в панели управления в разделе Облачная платформа → Балансировщики → вкладка Балан сировщики → страница балансировщика нагрузки. -
Запустите Prometheus локально:
sudo apt install screen
screen -dm ./prometheus --config.file=./prometheus.yml --web.listen-address=localhost:9090
4. Установить Grafana на облачном сервере и авторизоваться в Grafana
-
Подключитесь к облачному серверу, который вы создали ранее.
-
Установите библиотеку fontconfig, которая необходима для работы с Grafana:
sudo apt install -y libfontconfig1
-
Скачайте и установите Grafana:
cd ~
wget https://dl.grafana.com/oss/release/grafana_9.1.0_amd64.deb
sudo dpkg -i grafana_9.1.0_amd64.deb -
Откройте в браузере страницу:
http://<server_ip_address>:3000/login
Укажите
<server_ip_address>
— публичный IP-адрес облачного сервера. Можно посмотреть в панели управления в разделе Облачная платформа → Серверы → страница сервера → вкладка Порты → столбец Публичный IP. -
Авторизуйтесь в Grafana. Для первой авторизации используйте:
- логин —
admin
; - пароль —
admin
.
- логин —
-
Grafana предложит изменить пароль. Введите новый пароль.
-
Нажмите Submit.
5. Создать дашборд в Grafana
Для сбора метрик Octavia существует готовый дашборд. Подробнее на странице OpenStack Octavia Amphora Load Balancer на официальном сайте Grafana.
- Добавьте источник данных (Data Source) в Grafana. Для этого перейдите в раздел Configuration → Data sources.
- Нажмите Add data source.
- Выберите тип источника данных Prometheus.
- В поле URL введите
http://localhost:9090
. - Нажмите Save & test.
- Добавьте готовый дашборд для метрик Octavia. Для этого перейдите в раздел Dashboards → + Import.
- В поле Import via grafana.com введите
15828
. - Нажмите Load.
- В поле Prometheus выберите источник данных Prometheus, который вы создали на шаге 5.
- Нажмите Import.
- Убедитесь, что дашборд создан. Для этого перейдите в раздел Dashboards → Browse.
- Откройте страницу дашборда OpenStack Octavia Amphora Load Balancer.
Метрики Octavia в формате Prometheus
Метрики собираются для всех компонентов балансировщика нагрузки:
octavia_loadbalancer
,octavia_memory_pool
— метрики балансировщика нагрузки;octavia_listener
— метрики правила. Собираются для каждого правила отдельно, различаются по ID;octavia_pool
— метрики целевой группы. Собираются для каждой целевой группы отдельно, различаются по ID;octavia_member
— метрики сервера. Собираются для каждого сервера отдельно, различаются по ID.
Подробнее о компонентах балансировщика и модели OpenStack Octavia в подразделе Как работает балансировщик.
Метрики балансировщика
Метрики правила
Метрики целевой группы
Метрики сервера