Как проверить текущее время работы экземпляра AWS EC2

Каков наилучший способ проверить время работы экземпляра EC2 и, возможно, отправить оповещения, если время работы, например, превышает N часов? Как это можно организовать с помощью инструментов AWS по умолчанию, таких как CloudWatch, Lambda?

3 ответа

Решение

Одним из вариантов является использование AWS CLI и получение времени запуска. Из этого рассчитайте время безотказной работы и отправьте его в Cloudwatch:

aws ec2 describe-instances --instance-ids i-00123458ca3fa2c4f --query 'Reservations[*].Instances[*].LaunchTime' --output text

Выход

2016-05-20T19:23:47.000Z

Другой вариант - периодически запускать cronjob скрипт который:

  • звонки uptime -p команда
  • преобразует вывод в часы
  • отправляет результат в Cloudwatch с измерением Count

После добавления cronjob:

  • добавить тревогу Cloudwatch, которая отправляет оповещение, когда это значение превышает пороговое значение или если имеются НЕДОСТАТОЧНЫЕ ДАННЫЕ
  • НЕДОСТАТОЧНЫЕ ДАННЫЕ означают, что машина не работает

Вот еще один вариант, который можно сделать только в CloudWatch.

Создайте сигнал тревоги для своего экземпляра EC2 с помощью чего-то вроде CPUUtilization - вы всегда получите значение для этого, когда экземпляр работает.

  • Установите будильник на>= 0; это гарантирует, что всякий раз, когда экземпляр работает, он совпадает.
  • Установите период и последовательные периоды в соответствии с требуемым временем безотказной работы оповещения, например, для 24 часов вы можете установить период равным 1 часу, а последовательные периоды равным 24.
  • Установите действие для отправки уведомления, когда будильник находится в состоянии ALARM.

Теперь, когда экземпляр был меньше установленного времени, аварийный сигнал будет в состоянии НЕДОСТАТОЧНЫЕ ДАННЫЕ. Как только он будет включен в рабочее время, он перейдет в состояние ALARM, и уведомление будет отправлено.

Я бы порекомендовал изучить "AWS" родной способ сделать это.

Если он в основном отправляет метрики уровня ОС (например, "Свободная память", "Время безотказной работы", "Использование диска" и т. Д.) В Cloudwatch, то этого можно достичь, следуя инструкциям: Это устанавливает Агента Cloudwatch Logs на ваших экземплярах EC2. http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

Самое замечательное в этом то, что вы получаете отображение метрик в журналах Cloudwatch (см. Прилагаемое изображение, которое показывает интерфейс CW Logs в консоли AWS.).

Другие вопросы по тегам