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

Используйте интеграцию Amazon SNS в точке контакта, чтобы отправлять уведомления об оповещениях в тему SNS. Затем настройте тему SNS на пересылку уведомлений в отдельные каналы подписчиков, используемые в вашей учётной записи SNS.

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

Перед началом убедитесь, что у вас есть следующее:

  • AWS SNS Topic: тема SNS для отправки уведомлений.
  • AWS IAM Identity with necessary access: идентификатор IAM (например, пользователь, роль) с необходимыми разрешениями на публикацию сообщений в теме SNS.

Для минимальной настройки см. Пример с использованием Access Key.

Настройка Amazon SNS для точки контакта

Чтобы создать точку контакта с интеграцией SNS, выполните следующие шаги.

  1. Перейдите в Alerts & IRM -> Alerting -> Notification configuration, затем выберите вкладку Contact points.
  2. Нажмите + Add contact point.
  3. Введите имя точки контакта.
  4. В списке Integration выберите AWS SNS.
  5. Задайте обязательные настройки для вашей конфигурации SNS.
  6. Нажмите Save contact point.

Подробнее о точках контакта, включая их тестирование и включение уведомлений, см. в разделе Настройка точек контакта.

Настройки SNS

  • The Amazon SNS API URL: (необязательно) URL API SNS, например https://sns.us-east-2.amazonaws.com. Если не указан, будет использован URL API SNS из SDK SNS.
  • Signature Version (sigv4): настраивает процесс подписи AWS Signature Verification 4 для подписи запросов.
    • Region: (необязательно) регион AWS. Если пусто, используется регион из цепочки учётных данных по умолчанию.
    • Access Key: (необязательно) ключ доступа AWS API.
    • Secret Key: (необязательно) секретный ключ AWS API.

      И Access Key, и Secret Key должны быть указаны вместе или оставлены пустыми вместе.

      Если оставить пустыми, Grafana ищет учётные данные с помощью цепочки учётных данных по умолчанию, включая переменные среды (AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY), общий файл учётных данных и роли экземпляров EC2.

    • Profile: (необязательно) именованный профиль AWS, используемый для аутентификации.
  • SNS topic ARN: (необязательно) если вы не указываете это значение, вы должны указать значение для Phone number или Target ARN. Если вы используете FIFO-тему SNS, вам следует задать интервал группы сообщений дольше 5 минут, чтобы предотвратить дедупликацию сообщений с одним и тем же ключом группы в окне дедупликации SNS по умолчанию.
  • Phone number: (необязательно) номер телефона, если сообщение доставляется по SMS, в формате E.164. Если вы не указываете это значение, вы должны указать значение для SNS topic ARN или Target ARN.
  • Target ARN: (необязательно) ARN конечной точки мобильной платформы, если сообщение доставляется через мобильные уведомления. Если вы не указываете это значение, вы должны указать значение для SNS topic ARN или Phone number.
  • Subject: (необязательно) настройте тему. Это поле поддерживает шаблоны уведомлений и по умолчанию использует шаблон заголовка по умолчанию (default.title). Оно не может быть пустой строкой.
  • Message: (необязательно) настройте сообщение. Это поле поддерживает шаблоны уведомлений и по умолчанию использует шаблон сообщения по умолчанию (default.message).
  • Attributes: (необязательно) добавьте любые атрибуты сообщения SNS.

Пример с использованием Access Key

В этом разделе описан минимальный набор действий для настройки Amazon SNS с Alerting.

1. Создание темы SNS и подписчика Email

  1. Перейдите в SNS в консоли AWS:

  2. Создайте новую тему:

    • На странице Topics выберите “Create topic”.
    • Выберите “Standard” в качестве типа.
    • Введите Name для вашей темы, например My-Topic.
    • Encryption: для этой минимальной настройки оставьте отключённым.
    • Нажмите “Create topic”.
  3. (Необязательно) Добавьте подписчика Email для помощи в тестировании:

    • Внутри только что созданной темы нажмите “Create subscription”.
    • Protocol: выберите Email.
    • Endpoint: введите ваш адрес электронной почты для получения тестовых уведомлений.
    • Нажмите “Create subscription”.
    • Confirm Subscription: проверьте свою почту и подтвердите подписку, перейдя по предоставленной ссылке.

2. Создание политики IAM, пользователя и ключа доступа

  1. Перейдите в IAM в консоли AWS:

  2. Создайте новую политику:

    • На странице Policies выберите “Create policy”.

    • Переключитесь на вкладку “JSON” и вставьте следующую политику, заменив Resource на ARN вашей темы SNS:

      JSON
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": ["sns:Publish", "sns:GetTopicAttributes"],
            "Resource": "arn:aws:sns:<region>:<account_id>:<topic_name>"
          }
        ]
      }
    • Нажмите “Next”, задайте имя (например, SNSPublishPolicy) и нажмите “Create policy”.

  3. Создайте нового пользователя IAM и назначьте политику

    • В консоли IAM на странице Users выберите “Create user”.
    • Введите User name, например alerting-sns-user.
    • Нажмите “Next”.
    • В Set permissions выберите “Attach policies directly”.
    • Найдите политику, созданную ранее (SNSPublishPolicy), и выберите её.
    • Нажмите “Next” и нажмите “Create user”.
  4. Создайте Access Key:

    • Внутри только что созданного пользователя нажмите “Create access key”.
    • Выберите подходящий сценарий использования, например Application running outside AWS.
    • Нажмите “Next” и нажмите “Create access key”.
    • Save Credentials: запишите Access key ID и Secret access key, которые потребуются на следующем шаге.

3. Настройка точки контакта SNS в Grafana

Выполните шаги из раздела настройка Amazon SNS для точки контакта, используя приведённые ниже настройки и заменяя заполнители значениями SNS и IAM, созданными на предыдущих шагах.

  • The Amazon SNS API URL: https://sns.<region>.amazonaws.com
  • Signature Version (sigv4):
    • Region: <region>
    • Access Key: <YOUR_ACCESS_KEY>.
    • Secret Key: <YOUR_SECRET_ACCESS_KEY>
  • SNS topic ARN: arn:aws:sns:<region>:<account_id>:<topic_name>

Проверьте точку контакта, чтобы убедиться, что она работает, или включите уведомления для неё.

Дополнительные ресурсы