2012-01-16 10 views
8

A pesar de la documentación bastante escasa y poco clara y un How-To eficaz para principiantes, me ha gustado PSGI y actualmente lo estoy usando en una de mis aplicaciones. Lo que me gustaría saber es cómo administro el registro en una aplicación de varios nodos. ¿Qué se considera la "mejor práctica" con respecto al inicio de sesión en PSGI?Registro de PSGI (Perl)

+6

[Plack :: Middleware :: AccessLog] (http://p3rl.org/Plack::Middleware::AccessLog) –

+0

¿Estás hablando solo de registros de acceso o de inicio de sesión en general? –

Respuesta

5

Recomiendo usar Plack::Middleware::AccessLog para el acceso de registro y Plack::Middleware::LogDispatch para el registro personalizado. Ambos a su vez usan el popular módulo Log::Dispatch.

Los documentos de Middleware de LogDispatch no muestran actualmente cómo usar el objeto de registro una vez que está configurado. He aquí un ejemplo:

my $app = sub { 
    my $env = shift; 
    $env->{'psgix.logger'}->({ level => "debug", message => "This is debug" }); 
    return [ 200, [], [] ]; 
}; 

Para abordar la preocupación de varios nodos, usted podría entonces utilizar Log::Dispatch::Syslog que enviaría a la tala rsyslog que podría a su vez para pasar los datos de registro a otro servidor rsyslog. De esta forma, todos los nodos pueden iniciar sesión en un solo servidor central de registro.

Con la flexibilidad de Log :: Dispatch, también tiene la opción de registrar de forma local y remota para redundancia si lo desea. Los registros enviados a el servidor central podrían considerarse primarios, y el registro realizado localmente podría considerarse una copia de seguridad en caso de que el servidor de registro central esté inactivo por un tiempo.

El uso de un servidor de registro central tiene varias ventajas:

  1. se puede 'grep' a través de los registros de todo el clúster en un solo lugar.
  2. La rotación de registros y el análisis es más simple con un conjunto de archivos de registro.
  3. Está mejor preparado para escalar su clúster hacia arriba y hacia abajo, ya que puede cerrar un nodo sin preocuparse por perder el registro o mantener el servidor encendido para que un trabajo cron nocturno pueda disparar para procesar los registros.

Actualmente uso Log :: Dispach y Rsyslog juntos de esta forma para administrar un clúster multinodo.

Cuestiones relacionadas