Настройка Slack для Alerting

Используйте интеграцию Grafana Alerting — Slack, чтобы отправлять уведомления Slack при срабатывании ваших оповещений.

Есть два способа интеграции Slack в Grafana Alerting.

  1. Использовать Slack API token

    Включите доступ вашего приложения к Slack API. Например, если вам нужен более детальный контроль над разрешениями или ожидается регулярное масштабирование вашего проекта, приводящее к созданию новых каналов, это лучший вариант.

  2. Использовать Webhook URL

    Webhooks — более простой способ публиковать сообщения в Slack. Slack автоматически создаёт бота-пользователя со всеми необходимыми разрешениями на публикацию сообщений в одном выбранном канале.

Обратите внимание, что для одной точки контакта можно настроить только один канал Slack.

Вы можете настроить title и body сообщения Slack с помощью шаблонов уведомлений; однако вы не можете изменить его внешний вид с помощью пользовательских блоков. Доступны дополнительные необязательные настройки для настройки внешнего вида бота, упоминаний и форматирования сообщений. Дополнительные сведения см. в разделе Необязательные настройки.

Перед началом

Slack API Token

Если вы используете Slack API Token, выполните следующие шаги.

  1. Следуйте шагу 1 из Slack API Quickstart, чтобы создать приложение.

  2. Перейдите ко второму шагу Slack API Quickstart и добавьте область chat:write.public, как описано, чтобы дать вашему приложению возможность публиковать во всех публичных каналах без присоединения.

  3. В OAuth Tokens for Your Workspace скопируйте Bot User OAuth Token.

  4. Откройте ваше рабочее пространство Slack.

  5. Щёлкните правой кнопкой мыши канал, в котором хотите получать уведомления.

  6. Нажмите View channel details.

  7. Прокрутите вниз и скопируйте Channel ID.

    Обратите внимание, что при выполнении этих шагов Slack может предложить вам переустановить ваше приложение, чтобы изменения вступили в силу.

Webhook URL

Если вы используете Webhook URL, выполните следующие шаги.

  1. Следуйте разделу Creating an app из Slack API Quickstart, чтобы создать приложение.
  2. Следуйте разделу Create an incoming webhook из руководства Slack Incoming Webhooks, чтобы включить входящие webhooks для вашего приложения и создать webhook для вашего рабочего пространства.
  3. Скопируйте Webhook URL, начинающийся с https://hooks.slack.com/services/. Он нужен вам при настройке интеграции точки контакта в Grafana Alerting.

Процедура

Чтобы создать вашу интеграцию Slack в Grafana Alerting, выполните следующие шаги.

  1. Перейдите в Alerts & IRM -> Alerting -> Notification configuration, затем выберите вкладку Contact points.

  2. Нажмите + Add contact point.

  3. Введите имя точки контакта.

  4. В списке Integration выберите Slack.

  5. Если вы используете Slack API token:

    • В поле Recipient вставьте channel ID.
    • В поле Token вставьте Bot User OAuth Token, начинающийся с “xoxb-”.
  6. Если вы используете Webhook URL, в поле Webhook вставьте Webhook URL вашего приложения Slack.

  7. Нажмите Test, чтобы проверить работу вашей интеграции.

    Только для Grafana Alertmanager.

  8. Нажмите Save contact point.

Необязательные настройки

Вы можете настроить дополнительные параметры для настройки ваших уведомлений Slack помимо обязательных полей.

Настройка внешнего вида бота

Вы можете настроить то, как бот отображается в каналах Slack:

Опция Описание
Username Переопределить имя бота по умолчанию, отображаемое в Slack. Задайте поле username, чтобы настроить отображаемое имя.
Icon emoji Укажите эмодзи для использования в качестве значка сообщения. Задайте поле icon_emoji (например, :rocket:). Это переопределяет URL значка.
Icon URL Укажите URL изображения для использования в качестве значка сообщения. Задайте поле icon_url с URL изображения.

Настройка упоминаний

Вы можете автоматически упоминать пользователей, группы или весь канал при отправке уведомлений:

Опция Описание
Mention users Упоминать одного или нескольких конкретных пользователей в уведомлении. Задайте поле mentionUsers со списком ID пользователей через запятую (например, U024BE7LH,U024BE7LJ). Чтобы найти ID пользователя, обратитесь к документации Slack по поиску ID участников.
Mention groups Упоминать одну или несколько групп пользователей в уведомлении. Задайте поле mentionGroups со списком ID групп через запятую. ID групп можно скопировать из URL профиля группы в Slack.
Mention channel Упоминать весь канал или активных участников. Задайте поле mentionChannel одним из следующих значений:
- Пусто или опущено, чтобы отключить упоминания канала
- here, чтобы упомянуть всех активных участников канала
- channel, чтобы упомянуть всех участников канала

Настройка содержимого сообщения

Вы можете настроить уведомительное сообщение с помощью шаблонов уведомлений:

Опция Описание
Title Задать пользовательский заголовок для сообщения Slack. Используйте поле title с переменными шаблона (например, {{ template "slack.default.title" . }}).
Text body Задать пользовательский текст тела для сообщения Slack. Используйте поле text с переменными шаблона (например, {{ template "slack.default.text" . }}).
Color Задать цвет вертикальной полосы слева от вложения сообщения. Используйте поле color.

Расширенная конфигурация

Для специализированных сред вы можете переопределить конечную точку Slack API по умолчанию:

Опция Описание
Endpoint URL Укажите пользовательскую конечную точку Slack API для запросов, не являющихся webhook. Задайте поле endpointUrl вашей пользовательской конечной точкой. По умолчанию — https://slack.com/api/chat.postMessage.

Дальнейшие шаги

Точка контакта Slack готова принимать уведомления об оповещениях.

Чтобы добавить эту точку контакта к вашему оповещению, выполните следующие шаги.

  1. В Grafana перейдите в Alerting > Alert rules.
  2. Отредактируйте или создайте новое правило оповещения.
  3. Прокрутите вниз до раздела Configure labels and notifications.
  4. В разделе Notifications нажмите Select contact point.
  5. В выпадающем меню выберите ранее созданную точку контакта.
  6. Нажмите Save rule and exit.