Informes y monitoreo de estado mejorados de Elastic Beanstalk - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Informes y monitoreo de estado mejorados de Elastic Beanstalk

En esta sección se explica la funcionalidad de la función Enhanced Health de Elastic Beanstalk.

Los informes de estado mejorados son una función que puede habilitar en su entorno AWS Elastic Beanstalk para recopilar información adicional sobre los recursos de su entorno. Elastic Beanstalk analiza la información recopilada para proporcionar una imagen más completa del estado general del entorno y ayudar a identificar los problemas que pueden causar que su aplicación deje de estar disponible.

Además de cambiar el funcionamiento de la codificación por colores del estado, los informes de estado mejorados agregan un descriptor de estado que proporciona un indicador de la gravedad de los problemas detectados cuando un entorno tiene el color amarillo o rojo. Cuando haya más información disponible sobre el estado actual, puede elegir el botón Causes para ver información detallada sobre el estado en la página Health.

Para proporcionar información de estado detallada sobre las EC2 instancias de Amazon que se ejecutan en su entorno, Elastic Beanstalk incluye un agente de estado en Amazon Machine AMI Image () para cada versión de plataforma que admite un estado mejorado. El agente de estado monitoriza los logs del servidor web y las métricas del sistema, y envía esta información al servicio de Elastic Beanstalk. Elastic Beanstalk analiza estas métricas y datos de Elastic Load Balancing y Amazon EC2 Auto Scaling para ofrecer una visión general del estado de un entorno.

Además de recopilar y presentar información sobre los recursos de su entorno, Elastic Beanstalk monitoriza los recursos de su entorno en relación con varias condiciones de error y proporciona notificaciones que le ayudan a evitar los errores y resolver los problemas de configuración. Entre los factores que influyen en el estado del entorno se incluyen los resultados de cada solicitud servida por la aplicación, las métricas del sistema operativo de las instancias y el estado de la implementación más reciente.

Puede ver el estado de salud en tiempo real mediante la página de información general del entorno de la consola de Elastic Beanstalk o el comando eb health de la interfaz de línea de comandos (EB) de Elastic Beanstalk. CLI Para registrar y realizar un seguimiento del estado del entorno y de las instancias a lo largo del tiempo, puede configurar su entorno para publicar la información recopilada por Elastic Beanstalk a fin de mejorar los informes de estado para CloudWatch Amazon como métricas personalizadas. CloudWatch Los cargos por las métricas personalizadas se aplican a todas las demás métricasEnvironmentHealth, que son gratuitas.

Notas sobre la plataforma de Windows

Al habilitar los informes de estado mejorados en un entorno de Windows Server, no cambie la configuración de IIS registro. Para que la supervisión mejorada del estado funcione correctamente, el IIS registro debe configurarse con el formato W3C y solo con el destino del ETW evento o con los destinos tanto del archivo de registro como del registro de eventos. ETW

Además, no deshabilitar o detener el servicio de Windows agente de estado de Elastic Beanstalk en cualquiera de las instancias de su entorno. Para recopilar y notificar información de estado avanzados en una instancia, este servicio debe estar habilitado y en ejecución.

La primera vez que crea un entorno, Elastic Beanstalk le pide que cree las funciones necesarias y habilita informes de estado mejorados de forma predeterminada. Siga leyendo para obtener más información acerca de cómo funcionan los informes de estado mejorados o consulte Habilitación de informes de estado mejorado de Elastic Beanstalk para empezar a utilizarlos inmediatamente.

El agente de estado de Elastic Beanstalk

El agente de estado de Elastic Beanstalk es un proceso daemon (o servicio, en entornos Windows) que se ejecuta en cada instancia de EC2 Amazon del entorno, monitoriza las métricas de estado del sistema operativo y de las aplicaciones y notifica los problemas a Elastic Beanstalk. El agente de estado se incluye en todas las versiones de la plataforma Linux a partir de la versión 2.0 de cada plataforma.

El agente de estado informa de métricas similares a las publicadas CloudWatch por Amazon EC2 Auto Scaling y Elastic Load Balancing como parte de los informes de estado básicos, incluidos la CPU carga, HTTP los códigos y la latencia. El agente de estado, sin embargo, registra las métricas directamente en Elastic Beanstalk, con mayor detalle y más a menudo que los informes de estado básicos.

Para los informes de estado básicos, estas métricas se publican cada cinco minutos y se pueden monitorear con gráficos en la consola de administración del entorno. Con un estado mejorado, el agente de estado de Elastic Beanstalk notifica métricas a Elastic Beanstalk cada 10 segundos. Elastic Beanstalk utiliza las métricas proporcionadas por el agente de estado para determinar el estado de cada instancia del entorno y, en combinación con otros factores, determinar el estado general del entorno.

El estado general del entorno se puede ver en tiempo real en la página de información general del entorno de la consola de Elastic Beanstalk, y Elastic Beanstalk lo publica CloudWatch cada 60 segundos. Puede ver las métricas detalladas informadas por el agente de estado en tiempo real con el comando en el EB. eb healthCLI

Por un cargo adicional, puede optar por publicar métricas individuales a nivel de instancia y entorno CloudWatch cada 60 segundos. Luego, las métricas publicadas se CloudWatch pueden usar para crear gráficos de monitoreo en la consola de administración del entorno.

Los informes de salud mejorados solo conllevan un coste si decide publicar las métricas de salud mejoradas en. CloudWatch Cuando se utilizan los informes de estado mejorados, puede publicar igualmente las métricas de estado básicas de forma gratuita, aunque no decida publicar métricas de estado mejoradas.

Consulte Métricas de la instancia para obtener más información sobre las métricas registradas por el agente de estado. Para obtener más información sobre cómo publicar métricas de salud mejoradas en CloudWatch, consultePublicación de métricas personalizadas de un entorno en Amazon CloudWatch.

Factores que determinan el estado de las instancias y del entorno

Además de las comprobaciones del sistema de informes de estado básicos, incluida Comprobaciones de estado Elastic Load Balancing y el monitoreo de recursos, los informes de estado avanzados de Elastic Beanstalk recopilan datos adicionales sobre el estado de las instancias del entorno. Esto incluye las métricas del sistema operativo, los registros del servidor y el estado de las operaciones del entorno en curso, como las implementaciones y las actualizaciones. El servicio de informes de estado de Elastic Beanstalk combina la información de todos los orígenes disponibles y la analiza para determinar el estado general del entorno.

Operaciones y comandos

Cuando realiza una operación en su entorno, como implementar una nueva versión de una aplicación, Elastic Beanstalk realiza varios cambios que afectan al estado del entorno.

Por ejemplo, al implementar una nueva versión de una aplicación en un entorno que ejecuta varias instancias, es posible que veas mensajes similares a los siguientes al supervisar el estado del entorno con el EB CLI.

id status cause Overall Info Command is executing on 3 out of 5 instances i-bb65c145 Pending 91 % of CPU is in use. 24 % in I/O wait Performing application deployment (running for 31 seconds) i-ba65c144 Pending Performing initialization (running for 12 seconds) i-f6a2d525 Ok Application deployment completed 23 seconds ago and took 26 seconds i-e8a2d53b Pending 94 % of CPU is in use. 52 % in I/O wait Performing application deployment (running for 33 seconds) i-e81cca40 Ok

En este ejemplo, el estado general del entorno es Ok y la causa de este estado es que el comando está ejecutando 3 de 5 instancias. Tres de las instancias del entorno tienen el estado Pending, lo que indica que una operación está en curso.

Cuando se completa una operación, Elastic Beanstalk registra información adicional sobre la operación. En el ejemplo, Elastic Beanstalk muestra la siguiente información sobre una instancia que ya se ha actualizado con la nueva versión de la aplicación:

i-f6a2d525 Ok Application deployment completed 23 seconds ago and took 26 seconds

La información de estado de la instancia incluye también detalles sobre la implementación más reciente en cada instancia del entorno. Cada instancia registra un ID y un estado de implementación. El ID de implementación es un entero que aumenta en uno cada vez que implementa una nueva versión de la aplicación o cambia las opciones de configuración de una instancia como las variables de entorno. Puede utilizar la información de implementación para identificar las instancias que ejecutan la versión incorrecta de la aplicación después de una implementación continua que ha producido un error.

En la columna de causa, Elastic Beanstalk incluye mensajes informativos sobre las operaciones realizadas correctamente y otros estados correctos de varias comprobaciones de estado, pero esta información no se conserva de forma indefinida. Las causas de los estados del entorno incorrectos se mantienen hasta que el entorno vuelve a tener un estado correcto.

Tiempo de espera del comando

Elastic Beanstalk aplica un tiempo de espera del comando desde el momento en que comienza una operación para permitir la transición de una instancia a un estado correcto. Este tiempo de espera se establece en la configuración de la actualización e implementación del entorno (en el espacio de nombres aws:elasticbeanstalk:command) y su valor predeterminado es de 10 minutos.

Durante las actualizaciones continuas, Elastic Beanstalk aplica un tiempo de espera distinto a cada lote de la operación. Este tiempo de espera se establece como parte de la configuración de las actualizaciones continuas del entorno (en el espacio de nombres aws:autoscaling:updatepolicy:rollingupdate). Si todas las instancias del lote están en buen estado dentro del tiempo de espera de la implementación, la operación continúa con el siguiente lote. De lo contrario, la operación produce un error.

nota

Si la aplicación no supera las comprobaciones de estado con el estado OK pero está estable en otro nivel, puede definir la opción HealthCheckSuccessThreshold en el espacio de nombres aws:elasticbeanstalk:command namespace para cambiar el nivel en el que Elastic Beanstalk considera que una instancia está en buen estado.

Para que un entorno de servidor web se considere que está en buen estado, cada instancia del entorno o lote debe superar 12 comprobaciones de estado consecutivas en el transcurso de dos minutos. Para el entorno de una capa de trabajo, cada instancia debe superar 18 comprobaciones de estado. Antes de que se agote el tiempo de espera del comando, Elastic Beanstalk no rebaja el estado del entorno cuando no se superan las comprobaciones de estado. Si las instancias del entorno estén en buen estado durante el tiempo de espera del comando, la operación se realizará correctamente.

HTTPsolicitudes

Cuando no hay ninguna operación en curso en un entorno, la fuente principal de información sobre el estado de las instancias y del entorno son los logs del servidor web de cada instancia. Para determinar el estado de una instancia y el estado general del entorno, Elastic Beanstalk considera el número de solicitudes, el resultado de cada solicitud y la velocidad a la que se resolvió cada solicitud.

En las plataformas basadas en Linux, Elastic Beanstalk lee y analiza los registros del servidor web para obtener información sobre las solicitudes. HTTP En la plataforma Windows Server, Elastic Beanstalk recibe esta información directamente del servidor web. IIS

Puede que su entorno no tenga un servidor web activo. Por ejemplo, la plataforma Docker Multicontainer no incluye un servidor web. Otras plataformas incluyen un servidor web y su aplicación podría deshabilitarlo. En estos casos, el entorno requiere configuración adicional para proporcionar al agente de estado de Elastic Beanstalk los registros en el formato que se necesita para transmitir la información de estado al servicio de Elastic Beanstalk. Para obtener más información, consulte Formato de los registros de estado avanzados.

Métricas del sistema operativo

Elastic Beanstalk monitoriza las métricas del sistema operativo registradas por el agente de estado para identificar las instancias que se quedan sin recursos del sistema de forma sistemática.

Consulte Métricas de la instancia para obtener más información sobre las métricas registradas por el agente de estado.

Personalización de reglas de comprobación de estado

Los informes de estado avanzados de Elastic Beanstalk se basan en un conjunto de reglas para determinar el estado de su entorno. Algunas de estas reglas podrían no ser adecuadas para su aplicación específica. Un caso habitual es el de una aplicación que, por diseño, devuelve errores HTTP 4xx frecuentes. Elastic Beanstalk con una de sus reglas predeterminadas, llega a la conclusión de que algo va mal y cambia el estado del entorno OK (Correcto) a Warning (Advertencia), Degraded (Degradado) o Severe (Grave), en función del porcentaje de errores. Para gestionar este caso correctamente, Elastic Beanstalk le permite configurar esta regla e ignorar los errores 4xx de la aplicación. HTTP Para obtener más información, consulte Configuración de las reglas de informes de estado avanzados de un entorno.

Roles de estado mejorados

Los informes de estado mejorados requieren dos roles: un rol de servicio para Elastic Beanstalk y un perfil de instancia para el entorno. El rol de servicio permite a Elastic Beanstalk interactuar AWS con otros servicios en su nombre para recopilar información sobre los recursos de su entorno. El perfil de instancia permite que las instancias del entorno escriban registros en Amazon S3 y comuniquen información de estado mejorada al servicio de Elastic Beanstalk.

Al crear un entorno de Elastic Beanstalk mediante la consola de Elastic Beanstalk o el CLI EB, Elastic Beanstalk crea un rol de servicio predeterminado y adjunta las políticas administradas necesarias a un perfil de instancia predeterminado para su entorno.

Si utiliza elAPI, un o el AWS CLI para crear entornosSDK, debe crear estos roles con antelación y especificarlos durante la creación del entorno para aprovechar el estado mejorado. Para obtener instrucciones sobre cómo crear los roles adecuados para sus entornos, consulte Funciones, perfiles de instancia y políticas de usuario del servicio Elastic Beanstalk.

Se recomienda utilizar políticas administradas para el perfil de instancia y el rol de servicio. Las políticas administradas son AWS Identity and Access Management (IAM) políticas que mantiene Elastic Beanstalk. El uso de políticas administradas garantiza que el entorno tenga todos los permisos necesarios para funcionar correctamente.

Para el perfil de instancia, puede utilizar la política administrada AWSElasticBeanstalkWebTier o AWSElasticBeanstalkWorkerTier, para un entorno de nivel de servidor web o de nivel de trabajo respectivamente. Para obtener más información acerca de estas dos políticas de perfil de instancia administrada, consulte Administración de perfiles de instancia de Elastic Beanstalk.

Autorización de estado mejorada

Las políticas administradas por el perfil de instancias de Elastic Beanstalk contienen permisos para la elasticbeanstalk:PutInstanceStatistics acción . Esta acción no forma parte de Elastic Beanstalk. API Forma parte de un entorno diferente API que las instancias utilizan internamente para comunicar información de salud mejorada al servicio Elastic Beanstalk. A esto no se le llama directamente. API

Cuando crea un nuevo entorno, la autorización para la acción elasticbeanstalk:PutInstanceStatistics está habilitada de forma predeterminada. Con el fin de aumentar la seguridad del entorno y evitar la suplantación de datos de estado en su nombre, recomendamos mantener habilitada la autorización para esta acción. Si utiliza políticas administradas para el perfil de instancias, esta característica está disponible en el nuevo entorno sin necesidad de configuraciones adicionales. Sin embargo, si utiliza un perfil de instancias personalizado en lugar de una política administrada, el entorno podría mostrar un estado sin datos. Esto ocurre porque las instancias no están autorizadas para la acción que comunica datos de estado mejorados al servicio.

Para autorizar la acción, incluya la siguiente instrucción en su perfil de instancia.

{ "Sid": "ElasticBeanstalkHealthAccess", "Action": [ "elasticbeanstalk:PutInstanceStatistics" ], "Effect": "Allow", "Resource": [ "arn:aws:elasticbeanstalk:*:*:application/*", "arn:aws:elasticbeanstalk:*:*:environment/*" ] }

Si no desea utilizar la autorización de estado mejorada en este momento, desactívela configurando la opción EnhancedHealthAuthEnabled en el espacio de nombre aws:elasticbeanstalk:healthreporting:system como false. Si esta opción está desactivada, los permisos descritos anteriormente no son necesarios. Puede eliminarlos del perfil de instancia para acceso a los privilegios mínimos en sus aplicaciones y entornos.

nota

Anteriormente, la configuración predeterminada para EnhancedHealthAuthEnabled era false, lo que dio lugar a que la autorización de la acción elasticbeanstalk:PutInstanceStatistics también se deshabilitara de forma predeterminada. A fin de habilitar esta acción para un entorno existente, configure la opción EnhancedHealthAuthEnabled en el espacio de nombres aws:elasticbeanstalk:healthreporting:system en true. Puede configurar esta opción utilizando una configuración de opción en un archivo de configuración.

Eventos de estado mejorados

El sistema de informes de estado mejorados genera eventos cuando un entorno cambia de un estado a otro. El siguiente ejemplo muestra los eventos generados por un entorno que pasa por los estados Info, OK y Severe.

La página de información general del entorno de Elastic Beanstalk de la consola de Elastic Beanstalk muestra eventos recientes de estado mejorado

Cuando el entorno pasa a un estado peor, el evento de estado avanzado incluye un mensaje que indica la causa de la transición.

No todos los cambios en el estado a nivel de instancia hacen que Elastic Beanstalk emita un evento. Para evitar falsas alarmas, Elastic Beanstalk solo genera un evento relacionado con el estado si el problema persiste en varias comprobaciones.

La información sobre el estado del entorno en tiempo real, incluidos el estado, el color y la causa, está disponible en la página de información general del entorno de la consola de Elastic Beanstalk y del EB. CLI Al conectar el EB CLI a su entorno y ejecutar el eb healthcomando, también puede ver los estados en tiempo real de cada una de las instancias de su entorno.

Comportamiento de los informes de estado mejorados durante las actualizaciones, implementaciones y escala

Si se habilitan los informes de estado mejorados, el comportamiento del entorno durante las actualizaciones de configuración y las implementaciones puede resultar afectado. Elastic Beanstalk no completará un lote de actualizaciones hasta que todas las instancias superen las comprobaciones de estado de forma consistente. Además, dado que los informes de estado mejorados aplican un estándar de salud más alto y monitorean más factores, las instancias que superen el chequeo de estado de los informes de ELB estado básicos no necesariamente pasarán los informes de estado mejorados. Consulte los temas sobre las actualizaciones de configuración continuas y las implementaciones continuas para obtener más información acerca de cómo las comprobaciones de estado afectan al proceso de actualización.

Los informes de estado mejorados también pueden resaltar la necesidad de establecer una verificación de estado adecuada URL para Elastic Load Balancing. Cuando su entorno se amplíe para satisfacer la demanda, las nuevas instancias comenzarán a recibir solicitudes en cuanto pasen suficientes controles de ELB estado. Si no URL se ha configurado una comprobación de estado, esto puede ocurrir tan solo 20 segundos después de que una nueva instancia pueda aceptar una TCP conexión.

Si la aplicación no ha terminado de iniciarse en el momento en que el balanceador de carga considera que tiene un estado lo suficientemente bueno como para recibir tráfico, verá un flujo de solicitudes fallidas, y su entorno empezará a no superar las comprobaciones de estado. Una comprobación de estado URL que llegue a una ruta servida por la aplicación puede evitar este problema. ELBLos controles de estado no se aprobarán hasta que una GET solicitud al control de estado URL devuelva un código de estado 200.