2014-11-24 3 views
1

Моя текущая настройка имеет аварийный сигнал AWS Couldwatch, вызывающий отправку уведомления по электронной почте, когда, например. Использование процессора ниже x% за n минут. Это достаточно просто настроить через консоль управления AWS. Тем не менее, в соответствии с этой договоренностью, мне тогда необходимо удаленное вхождение в экземпляр и перезапуск моего неудавшегося приложения вручную. Я хотел бы автоматизировать это с тем же сигналом тревоги Cloudwatch, вместо этого запуская запуск сценария (в том же экземпляре EC2 как мое приложение), который затем перезапустил мое приложение. Как это сделать?Как перезапустить приложение, запущенное на экземпляре EC2, когда срабатывает сигнализация Cloudwatch?

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

Здесь есть аналогичный вопрос (How to restart EC2 instance from CloudWatch alarm). В моем случае, однако, я не думаю, что Auto Scaling - жизнеспособный вариант; из-за лицензионных ограничений на другое программное обеспечение, запущенное на экземпляре.

Я запускаю экземпляр EC2 с окнами.

Спасибо, Yug

+0

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

+0

@ Джейсон. Это может быть вариант, но я думаю, что это обязательно приведет к написанию сценария мониторинга, который проверяет использование ЦП на заданный интервал и отслеживает, если это ниже установленного порога в течение n минут (в основном функция, выполняемая Cloud Watch, так проще, если там это способ просто поймать это событие). Кроме того, я не хочу триггерного события, если заявить, что приложение никогда не запускалось (например.я делаю некоторые работы по обслуживанию экземпляра). Все возможно, но надеясь, что есть более легкое решение. Спасибо – Yugmorf

+0

По существу, чтобы выполнять автоматические действия с помощью Cloudwatch, вам нужен сценарий/служба, контролирующая очередь SQS. Скорее всего, это сложнее, чем мониторинг сервиса напрямую. – datasage

ответ

0

AWS CloudWatch сигнализация может использоваться для запуска:

  • политику автоматического масштабирования (например, добавлять/удалять экземпляры в авто масштабирование группы)
  • Stop/Завершить экземпляр EC2
  • Отправить уведомление через Служба простых уведомлений Amazon (SNS)

SNS может отправить уведомление подписчикам в различных форматах:

  • Отправить SMS (только для США)
  • принудительных сообщений к/S конечной точке HTTP (например, приложение, которое вы написали)
  • Нажмите сообщение на Amazon Simple Queue Service (SQS)
  • Отправить уведомление на мобильное устройство (например, Android, iPhone)

На основе вашего сценария могут быть использованы уведомления HTTP или SQS, но вам нужно будет написать программу для ответа на уведомления. Тем не менее, вы использовали бы только прокси-сервер для вашего приложения (например, использование процессора), а не для мониторинга работоспособности вашего приложения.

Вы можете отправить пользовательскую метрику из приложения в CloudWatch, а затем настроить будильник для запуска на основе этой пользовательской метрики. Но, если вы столкнулись со всей этой проблемой, тогда код, который обнаруживает проблему, должен, вероятно, исправить это напрямую, а не проходить через CloudWatch.

Смежные вопросы