Ответ 1
Вы используете Улучшенный мониторинг работоспособности. Благодаря расширенному мониторингу работоспособности agent, установленный на вашем экземпляре EC2, отслеживает жизненно важные показатели работоспособности системы и уровня приложения и отправляет их непосредственно на эластичный beanstalk.
Когда вы видите сообщение об ошибке типа "Ни один из экземпляров не отправляет данные", это означает, что либо агент в экземпляре разбился, либо не смог отправить данные на Эластичный Beanstalk из-за сетевой ошибки или какой-либо другой ошибки.
Для отладки этого, я бы рекомендовал загрузить "Полный журнал" с консоли AWS. Вы можете следовать инструкциям для получения журналов в разделе "Загрузка журналов пакетов из консоли эластичного beanstalk" здесь.
Если вы не можете загружать журналы с помощью консоли по какой-либо причине, вы также можете использовать ssh для экземпляра и посмотреть журналы в /var/log
.
Вы найдете журналы для агента работоспособности в /var/log/healthd/daemon.log
.
Дополнительными журналами, полезными для этой ситуации, являются /var/log/cfn-init.log
, /var/log/eb-cfn-init.log
и /var/log/eb-activity.log
. Можете ли вы посмотреть журналы и дать более подробную информацию об ошибках, которые вы видите?
Это, надеюсь, даст вам более подробную информацию об ошибке "Ни один из экземпляров не отправляет данные".
Относительно других "причин" здоровья, которые вы видите:
-
Состояние окружающей среды перешло от ожидающего к серьезному. Это связано с тем, что изначально состояние состояния вашей среды находится в ожидании. Если экземпляры не улучшатся в течение льготного периода, состояние состояния переходит к "Сильному". В вашем случае, поскольку ни один из этих экземпляров не является здоровым/отправляет данные, состояние здоровья перешло в "Серьезное".
-
100.0% запросов к ELB не работают с HTTP 5xx. Недостаточная частота запросов (0,5 запроса/мин) для определения работоспособности приложения (7 минут назад). Elastic Beanstalk контролирует другие ресурсы в дополнение к вашим экземплярам EC2 при использовании расширенного мониторинга работоспособности. Например, он контролирует показатели облачности для вашего ELB. Эта ошибка означает, что все запросы, отправленные в вашу среду CNAME/load balancer, терпят неудачу с ошибками HTTP 5xx. В то же время скорость запроса очень низкая, всего 0,5 запроса в минуту, поэтому это означает, что, несмотря на то, что все запросы не работают, частота запросов довольно низкая. "7 минут назад" означает, что информация о показателях ELB немного устарела. Потому что Elastic Beanstalk контролирует показатели облачности в секунду, поэтому данные могут быть немного устаревшими. Это в отличие от данных о здоровье, которые мы получаем непосредственно из экземпляров EC2, которые находятся "в режиме реального времени". В вашем случае, поскольку экземпляры не отправляют данные, единственным доступным источником для здоровья является ELB-метрика, которая задерживается примерно на 7 минут.
-
Состояние ELB не работает или недоступно для всех экземпляров Elastic Beanstalk рассматривает состояние вашего ELB, то есть проверяет, сколько экземпляров находится в эксплуатации за ELB. В вашем случае все случаи, за пределами ELB, выходят из строя или здоровье недоступно по какой-то другой причине. Вы должны проверить, правильно ли настроена ваша служебная роль. Вы можете прочитать, как правильно настроить роль службы здесь или в документации . Возможно, ваше приложение не удалось запустить.
В вашем случае я бы предпочел сосредоточиться на первой ошибке "Ни один из экземпляров не отправляет данные". Для этого вам нужно посмотреть журналы, как описано выше. Дайте мне знать, что вы видите в журналах. Агент запускается довольно рано в процессе начальной загрузки экземпляра. Поэтому, если вы видите ошибку типа "Ни один из экземпляров не отправляет данные", очень вероятно, что bootstrap не удался или агент почему-то не запускался по какой-либо причине. Журналы должны сообщать вам больше.
Также убедитесь, что вы используете профиль экземпляра в своей среде. Профиль экземпляра позволяет агенту работоспособности, запущенному на вашем экземпляре EC2, аутентифицироваться с помощью эластичного бобового стежка. Если профиль экземпляра не связан с вашей средой, тогда агент не сможет отправлять данные на Эластичный Beanstalk. Подробнее о профилях экземпляров с эластичным бобовым стеком здесь.
ОбновлениеОдной из распространенных причин причины для здоровья "Ни один из экземпляров не является отправка данных" может быть то, что ваш экземпляр находится в VPC, и ваш VPC не разрешает доступ к NTP. Типичным показателем этой проблемы является следующее сообщение в /var/log/messages: ntpdate: Synchronizing with time server: [FAILED]
. Когда это произойдет, часы на вашем экземпляре EC2 могут выйти из синхронизации, и данные считаются недействительными. Вы также должны увидеть причину, связанную со здоровьем, на экземплярах на странице работоспособности веб-консоли AWS, которая сообщает вам, что часы экземпляра не синхронизированы. Исправление состоит в том, чтобы убедиться, что ваш VPC разрешает доступ к NTP.