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

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

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

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

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

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

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

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

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 в Китае

Альтернативно, вы можете реализовать пользовательские SMS-оповещения с помощью Webhook. Для этого потребуется написать логику 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_", зарегистрированный и утвержденный в консоли SMS 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 - For SuperAdministrators

"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: 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.
2.1.2.2 Настройка WebHook в Grafana

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

Используйте имя канала в следующем формате:

Aliyun Voice Message - For SuperAdministrators

"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 - For SuperAdministrators

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

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

2.1.4 Оповещения через DingTalk

YMatrix поддерживает оповещения через DingTalk. При срабатывании предварительно настроенный бот DingTalk отправляет сообщение в группу. Чтобы использовать эту функцию, настройте как DingTalk, так и Grafana.

2.1.4.1 Настройка DingTalk

Как показано:
Создайте группу DingTalk и добавьте один или несколько ботов для оповещений.

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

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

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

2.1.4.2 Создание правила оповещения в Grafana

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

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

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

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

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

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

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

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

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

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

Оповещение — Отправить

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

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

Настройка оповещения о подключении

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

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

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

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

Настройка оповещения о дисковом пространстве

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

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

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

Оповещение о чтении диска
Оповещение о записи диска

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

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