2009-12-16 9 views
6

Disculpe si esto suena como una pregunta básica, pero soy nuevo en el desarrollo web.Registros desde servidores con equilibrio de carga

Cargamos el equilibrio en varios servidores. Las aplicaciones están configuradas para registrarse usando log4j. Cada uno de ellos escribe en archivos de registro en sus respectivos servidores. Eso significa que investigar problemas significa obtener registros de todos estos servidores, lo cual es tedioso, y significa pasar por Ops mientras controlan el equilibrio de carga, e introduce retrasos.

¿Es esta la norma para el registro de aplicaciones web? ¿O hay soluciones fáciles para consolidar el registro en un solo lugar? ¿Cuáles son las prácticas estándar para que los registros estén fácilmente disponibles para los desarrolladores?

+0

Esto me parece una pregunta de ServerFault. –

Respuesta

2

Hay una gran variedad de registros que puede hacer y que están disponibles automáticamente.

Algunos tipos son:

  • registro para construir en los registros de la máquina, (registros de sucesos o similar.).
    Para estos, obtenga acceso para que pueda acceder a ellos remotamente, y cotejar/examinar según sea necesario.
  • Registro por aplicaciones que generalmente registran archivos de texto en la máquina local. (IIS, u otro.)
    Obtenga acceso a las carpetas para que pueda analizarlas usted mismo.
  • Registro personalizado.
    Recomiendo iniciar sesión en una base de datos. (Aunque estos deben borrarse/resumirse con frecuencia)
    Si el registro en la base de datos falla, se inicia el registro en los registros de la máquina.
    Nota: Esto puede tener un impacto en el rendimiento, así que ten cuidado con la cantidad de registros que haces.

Si las operaciones no están dispuestas a darle acceso directo, vea si se puede realizar un volcado rutinario de estos archivos a una ubicación a la que pueda acceder.

2

Log4J tiene tanto un JMS appender (para que pueda enviar los registros a una cola de mensajes - no es tan tonto como suena, dependiendo de cuánto/qué tipo de procesamiento que tiene que hacer) y un syslog appender (local o remoto) . Cualquiera de estos te ayudará a recolectar registros en una sola ubicación. El apilador Syslog podría ser su mejor opción solo para recopilar cosas en un solo lugar, ya que los sistemas Unix-ish han estado haciendo syslog durante mucho tiempo y hay muchas características estables de las que puede aprovechar.

El registro en una base de datos puede ser difícil de escalar en función de su tráfico, a menos que sea inteligente con los insertos de procesamiento por lotes. Te recomendaría que guardes estas cosas en archivos planos (fusionados, por supuesto) en alguna parte para que tengas la flexibilidad de importarlos a la base de datos más adelante o experimentar con cosas como Hadoop (muchos ejemplos basados ​​en analizar archivos de registro) - siempre que tenga el volumen para justificar esta complejidad, por supuesto.

1

Una opción posible para hacer que los registros sean más accesibles es escribirlos en una unidad compartida a través de NFS. Podría hacer algunos malabares con directorios separados por servidor, pero tener ambos directorios visibles en el servidor en el que desea evaluar los registros.

2

Tenemos una granja de servidores web con un registro robusto y así es cómo se implementa.

Cada aplicación web genera mensajes de eventos de registro. Al usar MSMQ, estos mensajes se envían a una cola privada alojada en una máquina separada. Esta máquina tiene una aplicación que copia los mensajes y los escribe en una base de datos Sqlite.

El uso de MSMQ desacopla la aplicación web del servidor de registro. Si el servidor está fuera de línea, los mensajes se sientan en el servidor web hasta que se restablezca la conexión. MSMQ se encarga de mover los mensajes al servidor de destino. De esta manera, el sitio web puede continuar haciendo su trabajo sin interrupción.

El servidor de registro tiene su propia interfaz web para consultar la base de datos de registro y también puede recibir mensajes de registro de otras aplicaciones.

Asignamos una clasificación a cada mensaje. Para los mensajes con una clasificación de error fatal, el servidor de registro genera automáticamente un correo electrónico al equipo de soporte. Otros mensajes y mensajes de seguimiento no fatales simplemente se graban en la base de datos para generar informes agregados.

Cuestiones relacionadas