2015-07-08 12 views
10

Próbuję skonfigurować cloud zegarek alarmu czarownicę ansibl moduł ec2_metric_alarm i nie wiem jak to ustawić, aby wysłać e-mail na alarmAlarm w ec2_metric_alarm modułu ansibl

Kod jest

- 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"] 

Jaka jest składnia lub co mam zrobić, aby wyrazić, że chcę, aby wysyłała e-maile na adres alarm_actions?

Odpowiedz

13

Dokumentacja jest brzydko na tym jednym:

Oto co chciałbym spróbować na podstawie boto:
http://docs.pythonboto.org/en/latest/ref/cloudwatch.html#module-boto.ec2.cloudwatch.alarm

alarm_actions (lista Strs) - Lista od Arns z działania, które należy podjąć w stanie ALARM:

Aktualne obsługiwane ARNS to tematy związane z SNS lub autoskalowaniem.

W twoim przypadku:
Trzeba utworzyć temat SNS i Zapisz swój adres e-mail do tego tematu (również potwierdzić subskrypcję) i po tym umieścić temat ARN SNS jako ciąg w alarm_actions parametr, który przekazujesz do ansible ec2_metric_alarm_module.

Mam nadzieję, że to pomoże.

0

Zgadzam się z odpowiedzią @ Mircea dotyczącą dokumentacji i jej jakości. Ja osobiście znalazł rozwiązanie tego samego/podobnego problemu poprzez stworzenie alarm za pośrednictwem interfejsu użytkownika z pożądanym działania alarmowego, a następnie przy użyciu AWS CLI wyodrębnić ciąg alarmowego do stosowania z ansibla

aws cloudwatch describe-alarms 

W rezultacie możesz następnie znajdź ciąg działanie:

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 

w moim przypadku miałem dwie akcje, jeden napisz do mnie, a drugi, aby zatrzymać instancję EC2

wartości te mogą być następnie wykorzystane w ansibl zadanie:

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"]