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

Перед импортом предопределенных дашбордов оповещений необходимо скопировать файл alert.json с сервера на локальную машину. Процесс аналогичен импорту dashboard.json и database.json в Grafana: найдите файл на сервере, скопируйте его и загрузите локально. Выполните следующие шаги:
Войдите на сервер и переключитесь на пользователя mxadmin. Найдите файл alert.json по указанному в изображении пути. Вы можете использовать команду cd, команду find или любой другой предпочитаемый метод.
[mxadmin@mdw ~]$ cd /usr/local/matrixdb/share/doc/postgresql/extension
##or
[mxadmin@mdw ~]$ find /usr/local/matrixdb/share/doc/postgresql/extension -name alert.json
Затем используйте команду scp, чтобы скопировать файл на локальную машину. Возможны проблемы с правами доступа, поэтому рекомендуется сначала скопировать файл в общую директорию /tmp/, а затем перенести его из /tmp/ на локальную систему.
Примечание!
При копировании из/tmp/убедитесь, что вы корректно переключаете пользователей, чтобы избежать ошибок прав доступа.
[mxadmin@mdw]$ scp mxadmin@<server IP>:/usr/local/matrixdb/share/doc/postgresql/extension/"alert.json" mxadmin@<server IP>:/tmp/
~ scp waq@<server IP>:/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}.

Дашборд оповещений работает так же, как дашборд мониторинга, и переключаться между ними можно с помощью выпадающего меню в правом верхнем углу каждой панели.
Сначала настройте каналы оповещений (Notification Channels). Точка входа показана ниже:

MatrixDB включает встроенную поддержку оповещений по SMS через сервис Alibaba Cloud SMS, которая рекомендуется. При срабатывании оповещения сообщение отправляется на ваши настроенные номера телефонов. Поддерживается массовая рассылка. Перед использованием этой функции необходимо зарегистрировать и настроить сервис Alibaba Cloud SMS. Подробности см.:
Документация Alibaba Cloud: Быстрый старт для SMS в Китае
Альтернативно, вы можете реализовать пользовательские SMS-оповещения с помощью вебхуков, написав собственную логику вебхука. Дополнительную информацию см. в: Документация Grafana: Уведомления через вебхук
Создайте файл 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. Содержимое шаблона можно просмотреть на платформе Alibaba Cloud. Используйте ${name} как заполнитель переменной для сообщения оповещения.Пример шаблона:
尊敬的管理员您好,贵公司的数据库系统发生${name}报警,请登陆网站查看详情,并及时处理。
Как показано:

Рекомендуем называть канал в следующем формате:
Aliyun Batch Short Message - For SuperAdministrators
"SuperAdministrators" обозначает группу получателей. Для определения другой группы создайте отдельное правило. Обратите внимание, что параметр phoneNumbers чувствителен к регистру. Можно указать несколько номеров, разделяя их запятыми:
http://
: /api/alert/batch-sms?phoneNumbers=18311111111,13811111111
Помимо SMS, MatrixDB поддерживает голосовые оповещения через голосовой сервис Alibaba Cloud. При срабатывании вызов осуществляется на ваши настроенные номера. Поддерживается массовый вызов. Перед использованием зарегистрируйте и настройте голосовой сервис Alibaba Cloud. Подробности см.: Документация Alibaba Cloud: Быстрый старт для голосового сервиса в Китае
Пользовательские голосовые оповещения через вебхук возможны, но требуют пользовательской программной реализации. Подробности см. в Документации Grafana: Уведомления через вебхук.
Добавьте 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} как переменную для сообщения оповещения.Пример шаблона:
尊敬的管理员您好,贵公司的数据库系统发生${name}报警,请登陆网站查看详情,并及时处理。

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


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



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

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

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

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

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

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

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

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


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