network cloudwatch aws amazon-web-services amazon-cloudwatch

amazon-web-services - aws - cloudwatch default metrics



¿Cómo configuro CloudWatch para detectar cuando una instancia de EC2 falla? (6)

Tengo una aplicación que se ejecuta en AWS. ¿Cómo configuro Amazon CloudWatch para que me notifique cuando la instancia de EC2 falla o deja de responder?

Pasé por las pantallas de CloudWatch y parece que puede monitorear ciertas estadísticas, como la utilización de la CPU o el disco, pero no vi una manera de monitorear un evento como "la instancia obtuvo una solicitud http y tomó más de X segundos responder."


CloudWatch agregó recientemente métricas de "comprobación de estado" que responderán a una de sus preguntas sobre si una instancia está inactiva o no. No realizará una solicitud a su servidor web, sino una comprobación del sistema. Como sugiere la respuesta anterior, use ELB para las comprobaciones de estado de HTTP.


Como Kurst Ursan mencionó anteriormente, usar las métricas de "Comprobación de estado" es el camino a seguir. En algunos casos, no podrá examinar esas métricas (es decir, si está utilizando AWS OpsWorks), por lo que tendrá que informar esa métrica personalizada por su cuenta. Sin embargo, puede configurar una alarma construida en una métrica que siempre coincida (en un estado OK) y tener la alarma activada cuando el estado cambie al estado "DATOS INSUFICIENTES", esto técnicamente significa que CloudWatch no puede saber si el estado es correcto o ALARMA porque no puede alcanzar su instancia, también conocida como su instancia está fuera de línea.


La supervisión de CloudWatch es igual que usted ha descubierto. Podrás inferir que una de tus instancias está congelada al observar las métricas, pero CloudWatch no te enviará un correo electrónico cuando tu aplicación esté inactiva o sea demasiado lenta, por ejemplo.

Si está buscando algún tipo de notificación cuando su aplicación o instancia está inactiva, le sugiero que utilice un servicio de monitoreo. Pingdom es una buena opción. También puede configurar una nueva instancia en AWS e instalar una herramienta de monitoreo, como Nagios , que sería mi opción preferida.

Buenas prácticas que siempre valen la pena, en el largo camino: usar el equilibrio de carga ( Amazon ELB ), más de una instancia ejecutando su aplicación, Autoscaling (cuando una instancia está inactiva, Amazon iniciará automáticamente una nueva y mantendrá su SLA), y monitoreo personalizado

Mi equipo ha usado un script de monitoreo personalizado durante mucho tiempo, y siempre supimos de las fallas tan pronto como ocurrieron. Básicamente, si teníamos dos nodos ejecutando nuestra aplicación, el nodo 1 enviaba solicitudes HTTP al nodo 2 y el nodo 2 a 1. Si alguna solicitud tomaba más de lo esperado, o devolvía un estado HTTP inesperado o un cuerpo de respuesta, el script enviaba un correo electrónico a administradores del sistema. Hoy en día, confiamos en enfoques más robustos, como Nagios, que puede incluso monitorear cosas del sistema operativo (subprocesos, etc.), servidores de aplicaciones (salud de grupos de conexiones, etc.) y así sucesivamente. Vale la pena cada centavo invertido en configurarlo.


Para monitorear un evento en CloudWatch usted crea una Alarma , que monitorea una métrica contra un umbral dado.

Al crear una alarma, puede agregar una "acción" para enviar una notificación. AWS maneja las notificaciones a través de SNS (Servicio de notificación simple). Puede suscribirse a un tema de notificación y luego recibirá un correo electrónico para su alarma.

Para métricas de EC2 como CPU o uso de disco, esta es la guía de los documentos de AWS: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/US_AlarmAtThresholdEC2.html

Como ya respondió, use un ELB para monitorear HTTP.

Esta es la lista de métricas disponibles para ELB: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_MonitoringLoadBalancerWithCW.html#available_metrics

Para responder a su pregunta específica, para monitorear X segundos para la respuesta http, debe configurar una alarma para monitorear la "Latencia" de ELB.


Route 53 Health Check de Amazon es la herramienta adecuada para el trabajo.

Route 53 puede supervisar el estado y el rendimiento de su aplicación, así como sus servidores web y otros recursos.

Puede configurar verificaciones de recursos HTTP en la Ruta 53 que activarán una notificación por correo electrónico si el servidor está inactivo o responde con un error.

http://eladnava.com/monitoring-http-health-email-alerts-aws/


Siempre podría tener otra instancia para herramientas / pruebas, esa instancia probaría la solicitud http basándose en un programa y mediría el tiempo de respuesta, luego podría publicar ese tiempo de respuesta con CloudWatch y establecer una alarma cuando supera un determinado umbral.

Incluso se podría hacer eso desde la propia instancia.