Определение действия сигнала тревоги в модуле ec2_metric_alarm

Я пытаюсь настроить модуль наблюдения за облачными часами без помощи ec2_metric_alarm, и я не знаю, как настроить его для отправки электронной почты по тревоге

Код

- name: add alarm
  ec2_metric_alarm:
    state: present
    region: eu-west-1
    name: "LoadAverage"
    metric: "LoadAverage"
    statistic: Average
    comparison: ">"
    threshold: 3.0
    evaluation_periods: 3
    period: 60
    unit: "None"
    description: "Load Average"
    dimensions: {'Role':{{itme[0]}}, Node:{{item[1]}} }
    alarm_actions: ["action1","action2"]

Каков синтаксис или что мне делать, чтобы выразить, что я хочу, чтобы он отправлял электронные письма в alarm_actions?

Ответ 1

Документация дерьмовая для этого:
http://docs.ansible.com/ec2_metric_alarm_module.html

Вот что я хотел бы попробовать на основе boto:
http://docs.pythonboto.org/en/latest/ref/cloudwatch.html#module-boto.ec2.cloudwatch.alarm

alarm_actions (список strs) - список ARN для действий, которые необходимо выполнить в состоянии ALARM

Текущие поддерживаемые ARNS - это темы SNS или политики автосохранения.

В вашем случае:
Вам нужно создать тему SNS и подписаться на ваш адрес электронной почты на эту тему (также подтвердите подписку), а после этого поместите тему SNS ARN в виде строки в Параметр alarm_actions, который вы передаете в незанятый ec2_metric_alarm_module.

Надеюсь, это поможет.

Ответ 2

Я согласен с ответом @Mircea относительно документации и ее качества. Я лично нашел решение той же/подобной проблемы, создав сигнал тревоги через пользовательский интерфейс с желаемым действием предупреждения, а затем используя AWS CLI, чтобы извлечь строку аварийного сигнала для использования с невозможным

aws cloudwatch describe-alarms

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

ALARMACTIONS    arn:aws:sns:us-east-1:**Cust Account ID Here**:NotifyMe
ALARMACTIONS    arn:aws:swf:us-east-1:**Cust Account ID Here**:action/actions/AWS_EC2.InstanceId.Stop/1.0

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

Эти значения затем могут использоваться в вашей задаче:

alarm_actions: ["arn:aws:swf:{{ aws_region }}:{{ aws_cust_account_id }}:action/actions/AWS_EC2.InstanceId.Stop/1.0", "arn:aws:sns:{{ aws_region }}:{{ aws_cust_account_id }}:NotifyMe"]