Авария Amazon EC2 ELB - какой случай вреден для здоровья?

Мы разместили некоторые приложения на Amazon EC2 и используем Elastic Load Balancer (ELB) для управления несколькими экземплярами одного приложения. Кроме того, мы установили аварийные сигналы ELB, чтобы получить уведомление о нездоровых хостах, то есть когда экземпляр опустился.

До сих пор я не мог понять, где проверить, какой экземпляр точно упал, когда будильник погас, за исключением страницы состояния ELB в консоли AWS. Однако, если экземпляр снова возвращается в состояние "Обслуживание", это тоже не поможет. Уведомление электронной почты, отправленное ELB, не содержит этой информации; и я не мог найти его нигде в истории аварийных сигналов в консоли.

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

Приветствия, Алекс

Ответ 1

Печально Amazon не предоставляет журнал проверки работоспособности, поэтому невозможно выяснить, какой экземпляр не прошел проверку работоспособности после этого, предполагая, что сервер уже нездоровый. Вы можете использовать только показатели Per-Az, чтобы знать, в каком случае AZ является экземпляром.

Но вы могли бы знать, какой экземпляр недоступен, если вы запрашиваете AWS api во время проблемы. Итак, я подумал о возможном обходном пути:

  • Настройте новую тему SNS и добавьте действие HTTP к настраиваемому URL-адресу, который запускает задание, которое перечисляет экземпляры и отправляет вам эту информацию по почте.
  • Затем настройте будильник CloudWatch для UnHealthyHostCount > 0 и настройте действие в тему SNS.

Трудная часть заключается в том, что ваш URL должен обрабатывать подписку SNS и подтверждение, описанное здесь.

Команда, чтобы узнать, какой экземпляр в настоящее время является OutOfService:

elb-describe-instance-health *LoadBalancerName* --region *YourRegion*

Ответ 2

Возможно, вы можете использовать жемчужину AWS SDK или другую библиотеку AWS, которая может получить статус. Используйте его для создания задачи cron, которая регулярно получает статус каждого экземпляра и записывает его где-то. Либо это даст вам то, что вам нужно, либо исчезновение статуса для одного экземпляра скажет вам, какой из них плохой.

Ответ 3

Нет. Показатели ELB в CloudWatch не предоставляют вам этот уровень детализации и IMHO с точки зрения дизайна, которой они не должны. Если хост нездоровый, мониторинг на конкретном хосте должен сообщить подробности об этом, а не о ELB. Если a node выходит из строя в ELB, это не должно быть проблемой для ELB. Хотя в балансировщике нагрузки имеет смысл разобраться в тревожном состоянии, когда 3 из 6 ваших компьютеров входят в состояние "Не в состоянии обслуживания". Взгляните на показатели CloudWatch

Ответ 4

Перейдите к балансировщику нагрузки и найдите балансировку нагрузки, связанную с вами ELB. Затем посмотрите на экземпляры, которые OutofService