Функция оповещений Grafana обнаруживает, соответствуют ли мониторируемые метрики заданным пороговым условиям, на основе настроенных правил мониторинга. Она помогает уведомлять пользователей и способствует своевременному выявлению и устранению проблем, обеспечивая безопасность и стабильность вашего кластера.
В этом разделе описано, как настраивать и управлять компонентами оповещений. YMatrix поддерживает оповещения для следующих метрик:
Доступны четыре метода уведомлений. Вы можете выбрать один или комбинировать несколько методов по необходимости:
Для использования оповещений сначала необходимо развернуть и включить мониторинг. Подробные инструкции см. в разделе: Развертывание мониторинга
После развертывания вы увидите интерфейс, аналогичный следующему:

Прежде чем импортировать предопределенные дашборды оповещений, необходимо скопировать файл 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.
Панель оповещений работает так же, как панель мониторинга. Вы можете переключаться между ними с помощью выпадающего меню в правом верхнем углу каждого блока.
Сначала настройте каналы уведомлений. Перейдите на страницу конфигурации, как показано:

YMatrix предоставляет встроенную поддержку оповещений по SMS через сервис Alibaba Cloud SMS, что рекомендуется. При срабатывании оповещения SMS-сообщения отправляются на настроенные номера телефонов. Поддерживается массовая рассылка. Перед использованием зарегистрируйте и настройте сервис Alibaba Cloud SMS. Подробности см.:
Документация Alibaba Cloud: Быстрый старт для SMS в Китае
Альтернативно, вы можете реализовать пользовательские SMS-оповещения с помощью Webhook. Для этого потребуется написать логику Webhook. Дополнительную информацию см. в: Документация Grafana: Уведомления через Webhook
Создайте файл 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_", зарегистрированный и утвержденный в консоли SMS Alibaba Cloud.${name}.Пример шаблона:
Dear administrator, your database system has triggered a ${name} alert. Please log in to view details and take action promptly.
Как показано на изображении:

Назовите канал по следующему соглашению:
Aliyun Batch Short Message - For SuperAdministrators
"SuperAdministrators" обозначает группу получателей. Для определения другой группы создайте отдельное правило. Обратите внимание, что параметр phoneNumbers чувствителен к регистру. Можно указать несколько номеров, разделяя их запятыми:
http://
: /api/alert/batch-sms?phoneNumbers=18311111111,13811111111
Помимо SMS, YMatrix поддерживает голосовые оповещения через голосовой сервис Alibaba Cloud. При срабатывании вызовы осуществляются на настроенные номера. Поддерживается массовый вызов. Перед использованием зарегистрируйте и настройте голосовой сервис Alibaba Cloud. Подробности см.: Документация Alibaba Cloud: Быстрый старт для голосового сервиса в Китае
Пользовательские голосовые оповещения через Webhook возможны, но требуют реализации пользовательской логики. Подробности см. в Документации Grafana: Уведомления через Webhook.
Добавьте 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: ID шаблона TTS, начинающийся с "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.

Используйте имя канала в следующем формате:
Aliyun Voice Message - For SuperAdministrators
"SuperAdministrators" обозначает группу получателей. Для других групп создавайте отдельные правила. Параметр phoneNumbers чувствителен к регистру и поддерживает несколько номеров, разделённых запятыми:
http://
: /api/alert/vms?phoneNumbers=18311111111,13811111111
Grafana предоставляет встроенную поддержку оповещений по электронной почте, которая проста в настройке и использовании.
Оповещения по электронной почте используют встроенную поддержку 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
Как показано:

Назовите канал как:
Email - For SuperAdministrators
"SuperAdministrators" обозначает группу получателей. Для других групп создавайте отдельные правила.
Примечание!
Если настройка не удается, проверьте/var/log/grafana/grafana.logна наличие деталей ошибки.
YMatrix поддерживает оповещения через DingTalk. При срабатывании предварительно настроенный бот DingTalk отправляет сообщение в группу. Чтобы использовать эту функцию, настройте как DingTalk, так и Grafana.
Как показано:
Создайте группу DingTalk и добавьте один или несколько ботов для оповещений.


Нажмите «Добавить бота», затем выберите «Пользовательский». Вы можете настроить имя бота, задать ключевые слова для оповещений и сохранить URL вебхука.



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

После настройки нажмите «Тест», чтобы проверить соединение между Grafana и DingTalk. При успешном подключении клик по оповещению в DingTalk должен перенаправить на дашборд Grafana. Если вы видите сообщение «localhost отказал в соединении», замените localhost на ваш реальный IP-адрес.

После настройки каналов уведомлений настройте правила оповещений для каждой панели мониторинга.
Дополнительную информацию о настройке оповещений см. в: Официальная документация Grafana: Оповещения
Наведите курсор на заголовок панели. Справа появится стрелка выпадающего меню. Нажмите «Редактировать», чтобы перейти в режим редактирования.
Переключитесь с вкладки «Запрос» на вкладку «Оповещение» ниже «Редактировать панель». Если появляется всплывающее окно с сообщением «Обнаружен неработающий нотификатор», не нажимайте «Удалить», так как это может удалить всю панель. Вместо этого нажмите «Отмена» и закройте окно.

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

Временные базы данных агрегируют данные за интервалы времени. Состояние «Нет данных» может возникать, если данные не собирались в течение интервала — например, из-за рассогласования времени (время Grafana опережает системное время на 5 минут) или сбоя сбора данных. Условия «Нет данных» обрабатываются через оповещения.

Как показано:

Красная линия на графике «Использованное дисковое пространство» обозначает порог оповещения. Закрашенная красная область превышает этот порог и указывает на критическое состояние. По умолчанию порог установлен на 85%, но вы можете настроить значение «Больше, чем».

Оповещения о чтении и записи диска (Disk IO Reading, Disk IO Writing) отключены по умолчанию, что позволяет задавать пользовательские пороги.
Примечание!
После внесения изменений нажмите Сохранить, чтобы применить настройки оповещений.


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