Настройка CloudWatch Alarm для нескольких экземпляров - PullRequest
0 голосов
/ 08 июля 2019

Я настраиваю сигнал тревоги для экземпляра из интерфейса командной строки Amazon. например, чтобы вызвать уведомление, когда процессор простаивает в течение 5 минут. но я хочу установить этот сигнал для многих экземпляров.

С помощью этого скрипта Bash я создал один сигнал тревоги для одного экземпляра:

aws cloudwatch put-metric-alarm --alarm-name cpu-mon --alarm-description "Alarm when CPU exceeds 70 percent" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold  --dimensions "Name=InstanceId,Value=i-12345678" --evaluation-periods 2 --alarm-actions arn:aws:sns:us-east-1:111122223333:MyTopic --unit Percent

Итак, я не вижу, как я могу использовать этот сценарий, чтобы выбрать другие экземпляры, или, в конечном итоге, выполнить цикл этого сценария, чтобы выбрать другие экземпляры.

1 Ответ

0 голосов
/ 08 июля 2019

Если у вас есть список идентификаторов экземпляров, для которых вы хотите создать аварийные сигналы, вы можете сделать что-то вроде:

#!/bin/bash
instances=(instanceId1 instanceId2 etc)
for i in "${instances[@]}"; do
    aws cloudwatch put-metric-alarm \
        --alarm-name cpu-mon-${i} \
        --alarm-description "Alarm when CPU exceeds 70 percent" \
        --metric-name CPUUtilization \
        --namespace AWS/EC2 \
        --statistic Average \
        --period 300 \
        --threshold 70 \
        --comparison-operator GreaterThanThreshold  \
        --dimensions "Name=InstanceId,Value=${i}" \
        --evaluation-periods 2 \
        --alarm-actions arn:aws:sns:us-east-1:111122223333:MyTopic \
        --unit Percent
done

Вы также можете изначально использовать интерфейс командной строки AWS для получения идентификаторов экземпляров на основе тегов, имен экземпляров и т. Д., А затем использовать их для создания сигналов тревоги в тех же строках.

...