2010-05-23 7 views
5

Tenemos un servidor web al que estamos a punto de lanzar una serie de aplicaciones. Todos compartirán bases de datos y servidores de memcached, pero cada aplicación tiene su propia base de datos mySQL y todas las claves memcached por aplicación tienen el prefijo.Supervisión/manejo de errores en servidores web

escenario posible:

Si un servidor memcached en nuestro grupo va auge, queremos que alguien (el sistema operativo de administración) para ser contactado automáticamente por correo electrónico/iphone notificación de inserción o de cualquier otra manera apropiada.

Si vamos a instalar 150 aplicaciones idénticas para nuestros clientes en nuestros servidores, y un servidor de memcached muere, las 150 aplicaciones lo descubrirán individualmente y se comunicarán con nuestro administrador del sistema, lo que sin duda va a pensar conseguir un nuevo trabajo en el que él o ella no va a despertarse al recibir 150 mensajes enviados a las 4:15 de la mañana.

Posible solución:

Una idea es configurar un servidor externo para el tratamiento de errores que recibe una solicitud de $ _POST o rizo enviado, y maneja el almacenamiento del mensaje de error en función de la gravedad del mensaje de error real. Sería, por supuesto, comprobar después de recibir la llamada de error, que si el mismo servidor memcached ya han sido reportados como fuera de línea, no habría necesidad de spam en el administrador del sistema con recordatorios adicionales ...

Las preguntas:

  • ¿Cuál es un buen enfoque sobre cómo manejar los errores?
  • ¿Cómo manejan esto los chicos grandes de la industria?

Gracias!

+0

¡La recompensa está activada! – Industrial

Respuesta

3

Puede considerar el uso de un marco de supervisión de código abierto como Hyperic, por lo que no necesita reinventar la rueda.

Hyperic puede monitorear muchos aspectos de su sistema de fábrica y es muy fácil conectar nuevos puntos de monitoreo. Proporciona alertas basadas en reglas y puede configurar qué tipos de alertas son una sola vez hasta que se restablece una vez cada vez que ocurre.

No lo he usado para monitorear una aplicación PHP (aunque supongo que sí), pero la he usado con mucho éxito para monitorear una aplicación java y MySQL DB asociada.

+0

Hyperic se ve súper dulce. ¡Definitivamente le echaré un vistazo! – Industrial

+0

Gracias por la propina, Eric. Hyperic ya está funcionando :) ¡Muchas gracias! – Industrial

+1

@Industrial: Me alegro de que funcionó para usted. Lo hemos usado en producción por alrededor de 18 meses y bastante feliz. –

2

Bueno, creo que su problema se resuelve mejor fuera de la aplicación.

Desea supervisar los servidores/servicios físicos y de software. Recomendaría algo como http://www.nagios.org/ o http://www.opennms.org/. Configúrelo para ver cada servidor memcached, servidor mysql, apache, etc. y envíe notificaciones sobre cambios de estado (abajo, bajos recursos, recuperación, etc.)

Cuestiones relacionadas