Grafana Cluster Alerts

Функция оповещений Grafana обнаруживает, соответствуют ли мониторируемые метрики заданным пороговым условиям, на основе настроенной системы мониторинга. Она помогает уведомлять пользователей и быстро выявлять или устранять проблемы, обеспечивая безопасность и стабильность вашего кластера.

В этом разделе описано, как развернуть и управлять компонентами оповещений. YMatrix поддерживает оповещения для следующих метрик:

  • Состояние подключения к базе данных
  • Сбой экземпляра в кластере
  • Использование дискового пространства в каталоге данных превышает заданный порог
  • Чтение/запись дискового I/O превышает заданный порог

Доступны четыре метода уведомлений. Вы можете выбрать один или комбинировать несколько методов по необходимости:

  • Оповещения по SMS
  • Голосовые вызовы
  • Оповещения по электронной почте
  • Оповещения в DingTalk

Для использования оповещений необходимо сначала развернуть и включить мониторинг. Подробности см. в разделе: Установка и управление Grafana

После развертывания вы увидите следующий интерфейс:
Панель мониторинга по умолчанию

1 Развертывание

Перед импортом предопределенных панелей оповещений скопируйте файл alert.json с сервера на локальную машину. Процесс аналогичен импорту dashboard.json и database.json в Grafana: необходимо найти файл на сервере, скопировать его и загрузить локально. Выполните следующие шаги:

Войдите на сервер и переключитесь на пользователя mxadmin. Найдите файл alert.json по указанному в изображении пути. Вы можете использовать команду cd, команду find или любой другой предпочитаемый способ.

[mxadmin@mdw ~]$ cd /opt/ymatrix/matrixdb5/share/doc/postgresql/extension

##or

[mxadmin@mdw ~]$ find /opt/ymatrix/matrixdb5/share/doc/postgresql/extension -name alert.json

Затем используйте команду scp, чтобы скопировать файл на вашу локальную машину. Возможны проблемы с правами доступа. Рекомендуется сначала скопировать файл в общую директорию /tmp/, а затем перенести его из /tmp/ на локальную машину.

Примечание!
При копировании из /tmp/ убедитесь, что вы переключились на нужного пользователя, чтобы избежать проблем с правами доступа.

[mxadmin@mdw]$ scp mxadmin@<server IP address>:/opt/ymatrix/matrixdb5/share/doc/postgresql/extension/"alert.json" mxadmin@<server IP address>:/tmp/

~ scp waq@<server IP address>:/tmp/"alert.json" /Users/akkepler/workplace/Grafana

Наконец, откройте локальную папку или используйте командную строку, чтобы убедиться, что файл успешно скопирован. После подтверждения замените все вхождения переменной $host в локальном файле alert.json на фактические имена хостов вашего кластера. Например, если ваш кластер состоит из одного мастера и двух сегментов с именами mdw, sdw1 и sdw2, замените каждое $host на 'mdw', 'sdw1', 'sdw2'. После изменения импортируйте файл в интерфейс Grafana.

Примечание!
Файлы dashboard.json и database.json, загруженные в ваш интерфейс Grafana, также должны быть изменены. Эти файлы необходимо загрузить до alert.json. В dashboard.json замените все ${cluster} на local и $host на фактические имена хостов. В database.json замените только ${cluster} на local.

Выберите файл alert.json, расположенный по пути /opt/ymatrix/matrixdb5/share/doc/postgresql/extension.

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

2 Руководство по настройке

2.1 Настройка каналов уведомлений

Сначала настройте каналы уведомлений. Точка входа показана ниже:
Панель мониторинга по умолчанию — Каналы уведомлений

2.1.1 Оповещения по SMS

YMatrix предоставляет встроенную поддержку оповещений по SMS через сервис Alibaba Cloud SMS — рекомендуемый вариант. При срабатывании оповещения SMS-сообщения отправляются на настроенные номера телефонов. Поддерживается массовая отправка. Перед использованием зарегистрируйте и настройте сервис Alibaba Cloud SMS. Подробности см.:

Документация Alibaba Cloud: Быстрый старт для SMS в Китае

Альтернативно, вы можете настроить Webhook для оповещений по SMS. Это требует написания пользовательской логики Webhook. Подробности см. в Документации Grafana: Уведомления через Webhook

2.1.1.1 Создание файла конфигурации

Создайте файл alert.yaml в директории /etc/matrixdb/:

# aliyun service config
aliyun_service:
  access_key_id: "your access_key_id"
  access_key_secret: " access_key_secret"
  signature: "signature"
  sms_template_code: "SMS_123445678"

Здесь:

  • access_key_id и access_key_secret выдаются при активации сервисов Alibaba Cloud.
  • signature — утвержденный текст подписи, зарегистрированный в консоли SMS Alibaba Cloud.
  • sms_template_code — ID шаблона, начинающийся с "SMS_", зарегистрированный и утвержденный в консоли Alibaba Cloud.
  • Содержимое шаблона можно просмотреть на платформе Alibaba Cloud. Используйте ${name} как переменную для сообщения об оповещении.

Пример шаблона:

Dear Administrator, your database system has triggered a ${name} alert. Please log in to view details and take action promptly.
2.1.1.2 Настройка WebHook в Grafana

Как показано:
Настройка канала уведомлений — Alibaba Cloud SMS

Рекомендуемое имя канала:

Aliyun Batch Short Message - Для суперадминистраторов

"SuperAdministrators" обозначает группу получателей. Для определения другой группы создайте отдельное правило. Обратите внимание, что параметр phoneNumbers чувствителен к регистру. Можно указать несколько номеров, разделяя их запятыми, для массовой отправки:

http://:/api/alert/batch-sms?phoneNumbers=18311111111,13811111111

2.1.2 Голосовые оповещения

Помимо SMS, YMatrix поддерживает голосовые оповещения через голосовой сервис Alibaba Cloud. При срабатывании оповещения осуществляются звонки на настроенные номера телефонов. Поддерживается массовая рассылка. Перед использованием зарегистрируйте и настройте голосовой сервис Alibaba Cloud. Подробности см.: Документация Alibaba Cloud: Быстрый старт для голосовых услуг в Китае

Вы также можете настроить Webhook для голосовых оповещений, однако это требует реализации пользовательской логики. Подробности см. в Документации Grafana: Уведомления через Webhook

2.1.2.1 Создание файла конфигурации

Добавьте tts_template_code и region_id в файл alert.yaml, расположенный в директории /etc/matrixdb/:

# aliyun service config
aliyun_service:
  access_key_id: "your access_key_id"
  access_key_secret: " access_key_secret"
  signature: "signature"
  sms_template_code: "SMS_123445678"
  tts_template_code: "TTS_123456788"
  region_id: "cn-hangzhou"
  • access_key_id и access_key_secret используются совместно с сервисом SMS.
  • tts_template_code начинается с "TTS_" и относится к утвержденному TTS-шаблону в консоли Alibaba Cloud.
  • Используйте ${name} как переменную для сообщения об оповещении в шаблоне.

Пример:

Dear Administrator, your database system has triggered a ${name} alert. Please log in to view details and take action promptly.
2.1.2.2 Настройка WebHook в Grafana

Настройка канала уведомлений — Alibaba Cloud Voice

Рекомендуемое имя канала:

Aliyun Voice Message - Для суперадминистраторов

"SuperAdministrators" обозначает группу получателей. Для других групп создайте отдельные правила. Параметр phoneNumbers чувствителен к регистру. Можно указать несколько номеров, разделяя их запятыми:

http://:/api/alert/vms?phoneNumbers=18311111111,13811111111

2.1.3 Оповещения по электронной почте

Grafana предоставляет встроенную поддержку оповещений по электронной почте. Настройка проста и удобна.

2.1.3.1 Создание файла конфигурации

Оповещения по электронной почте используют встроенную поддержку SMTP в Grafana. Настройте SMTP-сервер в конфигурационном файле Grafana. Путь к файлу может отличаться в зависимости от способа развертывания. Стандартный путь в CentOS 7:

/etc/grafana/grafana.ini

Дополнительные сведения см. в: Официальная документация Grafana: Конфигурация

Пример конфигурации:

#################################### SMTP / Emailing #####################
[smtp]
enabled = true
host = <your smtp host>
user = <your user>
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = <your password>
;cert_file =
;key_file =
skip_verify = true
from_address = <your email address>
from_name = Grafana
;ehlo_identity =
;startTLS_policy =

[emails]
welcome_email_on_sign_up = false
templates_pattern = emails/*.html
2.1.3.2 Настройка канала оповещений по электронной почте в Grafana

Как показано:
Настройка канала уведомлений — Электронная почта

Рекомендуемое имя канала:

Email - Для суперадминистраторов

"SuperAdministrators" обозначает группу получателей. Для других групп создайте отдельные правила.

Примечание!
Если настройка не удается, проверьте /var/log/grafana/grafana.log на наличие деталей ошибки.

2.2 Настройка оповещений

После настройки каналов уведомлений настройте правила оповещений для каждой панели мониторинга.

Подробности о настройке оповещений см. в: Официальная документация Grafana: Оповещения

Наведите курсор на название конкретной панели оповещения. Справа появится стрелка выпадающего меню. Нажмите "Edit", чтобы перейти в режим редактирования.
Редактирование

Переключитесь с вкладки "Query" на вкладку "Alert" в разделе "Edit Panel". Если появится всплывающее окно с сообщением "Обнаружен неработающий нотификатор", не нажимайте "Delete" — это может удалить панель. Вместо этого нажмите "Cancel" и закройте окно.
Отмена

Прокрутите вниз до раздела "Notifications". Введите краткое сообщение об оповещении (рекомендуется 4–6 слов). Это сообщение будет отображаться в письмах и заменять переменную ${name} в шаблонах SMS и голосовых сообщений. Учитывайте ограничения по длине, поэтому сообщение должно быть коротким. Выберите один или несколько каналов уведомлений (настроенных ранее) в разделе "Send to".

Alert-Send-to

2.2.1 Оповещение о подключении

Временные базы данных агрегируют данные по интервалам времени. "No Data" может возникать, если данные не собирались в течение интервала — например, время Grafana опережает системное время на 5 минут, и агрегируются данные последней минуты. Также "No Data" может возникать из-за сбоев сбора данных. Этот сценарий обрабатывается функцией "Alerting".
Настройка оповещения о подключении

2.2.2 Оповещение о статусе экземпляра

Как показано:
Настройка оповещения об экземпляре

2.2.3 Оповещение о дисковом пространстве

Красная линия порога на графике "Используемое дисковое пространство" обозначает уровень срабатывания. Красная заштрихованная область превышает этот порог и сигнализирует об опасности. Значение порога по умолчанию — 85%. Вы можете настроить значение "IS ABOVE" по необходимости.
Настройка оповещения о дисковом пространстве

2.2.4 Оповещения о чтении/записи дискового I/O

Оповещения о чтении и записи дискового I/O (Disk IO Reading, Disk IO Writing) отключены по умолчанию, что позволяет задавать пользовательские пороги.

Примечание!
После внесения изменений нажмите "Save", чтобы применить настройки оповещений.

Оповещение о чтении дискового I/O
Оповещение о записи дискового I/O

Часто задаваемые вопросы

  1. Если вы изменяете файл конфигурации alert.yaml, выполните следующие команды для применения изменений:
    source /opt/ymatrix/matrixdb5/greenplum_path.sh
    supervisorctl stop mxui
    supervisorctl start mxui