Мониторинг и оповещения с Prometheus и Grafana
Selena предоставляет решение для мониторинга и оповещений с использованием Prometheus и Grafana. Это позволяет визуализировать работу вашего кластера, облегчая мониторинг и устранение неполадок.
Обзор
Selena предоставляет совместимый с Prometheus интерфейс для сбора информации. Prometheus может получать метрическую информацию Selena, подключаясь к HTTP-портам узлов BE и FE и сохраняя информацию в своей собственной базе данных временных рядов. Grafana затем может использовать Prometheus в качестве источника данных для визуализации метрической информации. Используя шаблоны панелей мониторинга, предоставляемые Selena, вы можете легко отслеживать свой кластер Selena и настраивать для него оповещения с помощью Grafana.

Выполните следующие шаги для интеграции вашего кластера Selena с Prometheus и Grafana:
- Установите необходимые компоненты - Prometheus и Grafana.
- Изучите основные метрики мониторинга Selena.
- Настройте канал оповещений и правила оповещений.
Шаг 1: Установка компонентов мониторинга
Порты по умолчанию Prometheus и Grafana не конфликтуют с портами Selena. Однако для продакшена рекомендуется развертывать их на отдельном сервере от ваших кластеров Selena. Это снижает риск конфликтов ресурсов и избегает потенциального сбоя оповещений из-за аномального отключения сервера.
Кроме того, обратите внимание, что Prometheus и Grafana не могут отслеживать доступность своих собственных сервисов. Поэтому в продакшн-среде рекомендуется использовать Supervisor для настройки службы heartbeat для них.
Следующий учебник развертывает компоненты мониторинга на узле мониторинга (IP: 192.168.110.23) с использованием пользователя ОС root. Они отслеживают следующий кластер Selena (который использует порты по умолчанию). При настройке службы мониторинга для вашего собственного кластера Selena на основе этого учебника вам нужно только заменить IP-адреса.
| Хост | IP | Пользователь ОС | Сервисы |
|---|---|---|---|
| node01 | 192.168.110.101 | root | 1 FE + 1 BE |
| node02 | 192.168.110.102 | root | 1 FE + 1 BE |
| node03 | 192.168.110.103 | root | 1 FE + 1 BE |
ПРИМЕЧАНИЕ
Prometheus и Grafana могут отслеживать только узлы FE, BE и CN, но не узлы Broker.
1.1 Развертывание Prometheus
1.1.1 Загрузка Prometheus
Для Selena вам нужно только загрузить установочный пакет сервера Prometheus. Загрузите пакет на узел мониторинга.
Нажмите здесь, чтобы загрузить Prometheus.
Возьмем в качестве примера LTS версию v1.5.2, нажмите на пакет, чтобы загрузить его.

Альтернативно, вы можете загрузить его с помощью команды wget:
# Следующий пример загружает LTS версию v1.5.2.
# Вы можете загрузить другие версии, заменив номер версии в команде.
wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-2.45.0.linux-amd64.tar.gz
После завершения загрузки загрузите или скопируйте установочный пакет в каталог /opt на узле мониторинга.
1.1.2 Установка Prometheus
-
Перейдите в /opt и распакуйте установочный пакет Prometheus.
cd /opt
tar xvf prometheus-2.45.0.linux-amd64.tar.gz -
Для удобства управления переименуйте распакованный каталог в prometheus.
mv prometheus-2.45.0.linux-amd64 prometheus -
Создайте путь для хранения данных для Prometheus.
mkdir prometheus/data -
Для удобства управления вы можете создать файл запуска системной службы для Prometheus.
vim /etc/systemd/system/prometheus.serviceДобавьте следующее содержимое в файл:
[Unit]
Description=Prometheus service
After=network.target
[Service]
User=root
Type=simple
ExecReload=/bin/sh -c "/bin/kill -1 `/usr/bin/pgrep prometheus`"
ExecStop=/bin/sh -c "/bin/kill -9 `/usr/bin/pgrep prometheus`"
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data --storage.tsdb.retention.time=30d --storage.tsdb.retention.size=30GB
[Install]
WantedBy=multi-user.targetЗатем сохраните и выйдите из редактора.
ПРИМЕЧАНИЕ
Если вы развертываете Prometheus по другому пути, убедитесь, что синхронизируете путь в команде ExecStart в файле выше. Кроме того, файл настраивает условия истечения срока действия для хранения данных Prometheus как "30 дней или более" или "больше 30 ГБ". Вы можете изменить это в соответствии с вашими потребностями.
-
Измените конфигурационный файл Prometheus prometheus/prometheus.yml. Этот файл имеет строгие требования к формату содержимого. Обратите особое внимание на пробелы и отступы при внесении изменений.
vim prometheus/prometheus.ymlДобавьте следующее содержимое в файл:
global:
scrape_interval: 15s # Установить глобальный интервал сбора данных в 15 секунд. По умолчанию 1 минута.
evaluation_interval: 15s # Установить глобальный интервал оценки правил в 15 секунд. По умолчанию 1 минута.
scrape_configs:
- job_name: 'Selena_Cluster01' # Отслеживаемый кластер соответствует заданию. Здесь вы можете настроить имя кластера Selena.
metrics_path: '/metrics' # Указать Restful API для получения метрик мониторинга.
static_configs:
# Следующая конфигурация указывает группу FE, которая включает 3 узла FE.
# Здесь вам нужно заполнить IP и HTTP-порты, соответствующие каждому FE.
# Если вы изменили HTTP-порты во время развертывания кластера, обязательно настройте их соответственно.
- targets: ['192.168.110.101:8030','192.168.110.102:8030','192.168.110.103:8030']
labels:
group: fe
# Следующая конфигурация указывает группу BE, которая включает 3 узла BE.
# Здесь вам нужно заполнить IP и HTTP-порты, соответствующие каждому BE.
# Если вы изменили HTTP-порты во время развертывания кластера, обязательно настройте их соответственно.
- targets: ['192.168.110.101:8040','192.168.110.102:8040','192.168.110.103:8040']
labels:
group: beПосле изменения конфигурационного файла вы можете использовать
promtoolдля проверки действительности изменения../prometheus/promtool check config prometheus/prometheus.ymlСледующее сообщение указывает, что проверка прошла успешно. Затем вы можете продолжить.
SUCCESS: prometheus/prometheus.yml is valid prometheus config file syntax -
Запустите Prometheus.
systemctl daemon-reload
systemctl start prometheus.service -
Проверьте статус Prometheus.
systemctl status prometheus.serviceЕсли возвращается
Active: active (running), это означает, что Prometheus успешно запущен.Вы также можете использовать
netstatдля проверки статуса порта Prometheus по умолчанию (9090).netstat -nltp | grep 9090 -
Настройте Prometheus для запуска при загрузке.
systemctl enable prometheus.service
Другие команды:
-
Остановить Prometheus.
systemctl stop prometheus.service -
Перезапустить Prometheus.
systemctl restart prometheus.service -
Перезагрузить конфигурации во время выполнения.
systemctl reload prometheus.service -
Отключить запуск при загрузке.
systemctl disable prometheus.service
1.1.3 Доступ к Prometheus
Вы можете получить доступ к веб-интерфейсу Prometheus через браузер, порт по умолчанию - 9090. Для узла мониторинга в этом учебнике вам нужно посетить 192.168.110.23:9090.
На главной странице Prometheus перейдите в Status --> Targets в верхнем меню. Здесь вы можете увидеть все отслеживаемые узлы для каждого группового задания, настроенного в файле prometheus.yml. Обычно статус всех узлов должен быть UP, указывая на нормальную связь службы.

На этом этапе Prometheus настроен и установлен. Для получения более подробной информации вы можете обратиться к Документации Prometheus.
1.2 Развертывание Grafana
1.2.1 Загрузка Grafana
Нажмите здесь, чтобы загрузить Grafana.
Альтернативно, вы можете использовать команду wget для загрузки установочного пакета Grafana RPM.
# Следующий пример загружает LTS версию v10.0.3.
# Вы можете загрузить другие версии, заменив номер версии в команде.
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.3-1.x86_64.rpm
1.2.2 Установка Grafana
-
Используйте команду
yumдля установки Grafana. Эта команда автоматически установит зависимости, необходимые для Grafana.yum -y install grafana-enterprise-10.0.3-1.x86_64.rpm -
Запустите Grafana.
systemctl start grafana-server.service -
Проверьте статус Grafana.
systemctl status grafana-server.serviceЕсли возвращается
Active: active (running), это означает, что Grafana успешно запущена.Вы также можете использовать
netstatдля проверки статуса порта Grafana по умолчанию (3000).netstat -nltp | grep 3000 -
Настройте Grafana для запуска при загрузке.
systemctl enable grafana-server.service
Другие команды:
-
Остановить Grafana.
systemctl stop grafana-server.service -
Перезапустить Grafana.
systemctl restart grafana-server.service -
Отключить запуск при загрузке.
systemctl disable grafana-server.service
Для получения дополнительной информации обратитесь к Документации Grafana.
1.2.3 Доступ к Grafana
Вы можете получить доступ к веб-интерфейсу Grafana через браузер, порт по умолчанию - 3000. Для узла мониторинга в этом учебнике вам нужно посетить 192.168.110.23:3000. Имя пользователя и пароль по умолчанию, необходимые для входа, оба установлены как admin. При первом входе Grafana предложит вам изменить пароль входа по умолчанию. Если вы хотите пропустить это сейчас, вы можете нажать Skip. Затем вы будете пере направлены на главную страницу веб-интерфейса Grafana.

1.2.4 Настройка источников данных
Нажмите на кнопку меню в верхнем левом углу, разверните Administration, а затем нажмите Data sources.

На появившейся странице нажмите Add data source, а затем выберите Prometheus.


Для интеграции Grafana с вашей службой Prometheus вам нужно изменить следующую конфигурацию:
-
Name: Имя источника данных. Вы можете настроить имя для источника данных.
-
Prometheus Server URL: URL сервера Prometheus, который в этом учебнике
http://192.168.110.23:9090.
После завершения конфигурации нажмите Save & Test, чтобы сохранить и протестировать конфигурацию. Если отображается Successfully queried the Prometheus API, это означает, что источник данных доступен.

1.2.5 Настройка Dashboard
-
Загрузите соответствующий шаблон Dashboard на основе вашей версии Selena.
- Шаблон Dashboard для Selena-2.4.0 и позже
- Шаблон shared-data dashboard - General
- Шаблон shared-data dashboard - Starlet
ПРИМЕЧАНИЕ
Файл шаблона нужно загрузить через веб-интерфейс Grafana. Поэтому вам нужно загрузить файл шаблона на машину, которую вы используете для доступа к Grafana, а не на сам узел мониторинга.
-
Настройте шаблон Dashboard.
Нажмите на кнопку меню в верхнем левом углу и нажмите Dashboards.

На появившейся странице разверните кнопку New и нажмите Import.

На новой странице нажмите на Upload Dashboard JSON file и загрузите файл шаблона, который вы загрузили ранее.

После загрузки файла вы можете переименовать Dashboard. По умолчанию он называется
Selena Overview. Затем выберите источник данных, который вы создали ранее (starrocks_monitor). Затем нажмите Import.
После з авершения импорта вы должны увидеть отображенный Dashboard Selena.

1.2.6 Мониторинг Selena через Grafana
Войдите в веб-интерфейс Grafana, нажмите на кнопку меню в верхнем левом углу и нажмите Dashboards.

На появившейся странице выберите Selena Overview из каталога General.

После входа в Dashboard мониторинга Selena вы можете вручную обновить страницу в верхнем правом углу или установить интервал автоматического обновления для мониторинга статуса кластера Selena.
