2012-02-17 13 views
15

Tengo una aplicación ejecutándose en AWS. ¿Cómo configuro Amazon CloudWatch para notificarme cuando la instancia EC2 falla o ya no responde?¿Cómo configuro CloudWatch para detectar cuándo se cae una instancia de EC2?

Revisé las pantallas de CloudWatch, y parece que puede controlar ciertas estadísticas, como la utilización de la CPU o del disco, pero no vi una forma de supervisar un evento como "la instancia obtuvo una solicitud http y tomó más de X segundos para responder ".

Respuesta

7

El monitoreo de CloudWatch es como lo que ha descubierto. Podrá inferir que una de sus instancias está congelada al echarle un vistazo a las métricas, pero CloudWatch no lo hará, p. enviarle un correo electrónico cuando su aplicación esté inactiva o muy lenta, por ejemplo.

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

Buenas prácticas que siempre valen la pena en el largo camino: usando el equilibrio de carga (Amazon ELB), más de una instancia ejecutando su aplicación, ajuste automático de escala (cuando una instancia no funciona, Amazon iniciará una nueva y mantendrá su SLA) y monitoreo personalizado.

Mi equipo ha utilizado una secuencia de comandos de supervisión personalizada durante mucho tiempo, y siempre supimos de fallas tan pronto como se produjeron. 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 de HTTP o cuerpo de respuesta inesperado, el script enviaba un correo electrónico al administradores del sistema. Hoy en día, confiamos en enfoques más robustos, como Nagios, que incluso puede monitorear cosas del sistema operativo (hilos, etc.), servidores de aplicaciones (salud de grupos de conexión, etc.), y así sucesivamente. Vale cada centavo invertido en configurarlo.

1

Siempre podría tener otra instancia para herramientas/pruebas, esa instancia probaría la solicitud http basada en un cronograma y mediría el tiempo de respuesta, luego podría publicar ese tiempo de respuesta con CloudWatch y establecer una alarma cuando revise un cierto umbral.

Incluso podría hacerlo desde la propia instancia.

4

CloudWatch ha agregado 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 hará una solicitud a su servidor web sino una verificación del sistema. Como sugiere la respuesta anterior, use ELB para las comprobaciones de estado HTTP.

10

Para supervisar un evento en CloudWatch, crea una alarma , que supervisa una métrica con un umbral determinado.

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

Por métricas EC2 como CPU o la utilización del disco Esta es la guía de los documentos de AWS: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/US_AlarmAtThresholdEC2.html

Como ya se respondió, utilice 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 el seguimiento de X segundos para la respuesta HTTP, que habría establecido una alarma para supervisar el ELB "latencia".

0

Como Kurst Ursan mencionado anteriormente, el uso de las métricas de "Verificación de estado" es el camino a seguir. En algunos casos, no podrá explorar esas métricas (es decir, si está utilizando AWS OpsWorks), por lo que deberá informar esa métrica personalizada por su cuenta. Sin embargo, puede configurar una alarma basada en una métrica que siempre coincide (en un estado OK) y hacer que la alarma se dispare cuando el estado cambie al estado "DATOS INSUFICIENTES", esto significa técnicamente que CloudWatch no puede decir si el estado está bien. o ALARMA porque no puede llegar a tu instancia, al igual que tu instancia está fuera de línea.

10

Amazon's Route 53 Health Check 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 comprobaciones de recursos HTTP en la Ruta 53 que activarán una notificación por correo electrónico si el servidor no funciona o responde con un error.

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

+0

Gracias Steven, que no se dio cuenta que podría hacer que (incluso para los dominios que no están en la Ruta 53). 50c por chequeo de salud por mes, que es mucho más económico que pingdom y ejecutando su propia instancia de EC2 si solo es uno o dos. – spidie

Cuestiones relacionadas