2015-07-08 29 views
10

Sto cercando di impostare un orologio strega di allarme nuvola ansible modulo ec2_metric_alarm e non so come impostarlo per inviare una e-mail in caso di allarmeallarme nel modulo ansible ec2_metric_alarm

Il codice è

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

Qual è la sintassi o cosa devo fare per esprimere il fatto che voglio che invii e-mail in alarm_actions?

risposta

13

La documentazione è pessima per questo uno:

Ecco quello che vorrei provare sulla base di boto:
http://docs.pythonboto.org/en/latest/ref/cloudwatch.html#module-boto.ec2.cloudwatch.alarm

alarm_actions (elenco delle segnalazioni di operazioni sospette) - Un elenco delle Arns di le azioni da eseguire in stato di ALLARME

Gli ARNS attualmente supportati sono argomenti SNS o criteri di autoscansione.

Nel tuo caso:
È necessario creare un argomento SNS e sottoscrivere il tuo indirizzo email a tale argomento (anche confermare l'abbonamento) e dopo che mettere il tema ARN SNS come una stringa nelle alarm_actions Parametro passato all'anisibile ec2_metric_alarm_module.

Spero che questo aiuti.

0

Sono d'accordo con la risposta di @ Mircea riguardo la documentazione e la sua qualità. Personalmente ho trovato la soluzione per lo stesso problema/simile creando l'allarme tramite l'interfaccia utente con l'azione di avviso desiderata e quindi utilizzando l'AWS CLI per estrarre la stringa di allarme per l'uso con ansible

aws cloudwatch describe-alarms 

Nel risultato si può poi trovare la stringa di azione:

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 

nel mio caso ho avuto due azioni, una per me e-mail e l'altra per arrestare l'istanza EC2

Questi valori possono poi essere utilizzati nel vostro compito ansible:

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