2012-04-15 9 views
9

estoy usando logback para actualizar syslog, esto es cómo i configurado mi appender:tema de depuración con logback syslog appender no actualizar syslog

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> 
     <syslogHost>localhost</syslogHost> 
     <facility>LOCAL0</facility> 
     <suffixPattern>[%thread] %logger %msg</suffixPattern> 
    </appender> 

He actualizado rsyslog.conf para detectar eventos UDP, sin comentar la líneas siguientes:

# Provides UDP syslog reception 
$ModLoad imudp.so 
$UDPServerRun 514 

Se reinició syslog daemon después de los cambios.

En todos mis cuadros de prueba, parece estar funcionando bien! Sin embargo, uno de los syslog del sistema no está siendo actualizado por mi proceso (otras cosas lo están actualizando muy bien), me pregunto cómo podría solucionar este problema. ¿Alguna cosa que deba investigar me viene a la mente?

Gracias por cualquier idea

Respuesta

25

Sure. Sin apretar en secuencia, pruebe estas 4 pruebas:

1. Prueba logback: La obvia: añadir un FileAppender como segunda appender y asegúrese de que los eventos aparecen allí. Su publicación implica que "it" funciona en dev pero no estaba seguro de si es logback o el appender, y el fragmento de configuración no tiene una sección appender-ref para enviar eventos al SYSLOG.

Si su FileAppender no recibe nada, es un problema de aplicación/entorno o este servidor no está generando eventos que se alimentan al appender.

2. Confirmar los mensajes están siendo generados: Suponiendo que el FileAppender recibe mensajes syslog, pero no lo hace, ejecute:

tcpdump -n -i lo -X -s 1500

.. a la salida de la carga útil llena de paquetes UDP en lo. Haga que su aplicación genere un mensaje de registro. Debería ver al menos 1 paquete destinado a 127.0.0.1:514. Si no lo haces, es el remitente. Si lo haces, es la configuración de rsyslog.

3. Confirmar que rsyslog está obligado a puerto 514:

lsof -i :514

o si usted no tiene lsof y está seguro de que otro proceso no está obligado a 514:

netstat -ln | grep 514 

4. Vea lo que rsyslog recibe: Si los eventos se envían al puerto 514, después de detener el rsyslogd activo, reinícielo en modo de depuración y adjúntelo al terminal:

/etc/init.d/rsyslog stop 
rsyslogd -d 

Debería ver los eventos que llegan. Si ninguno de ellos identifica el problema, es algo fuera de lo común. Tengo un logback config que funciona en entornos J2EE y syslog bien conocidos. Esperemos que una de las cosas anteriores lo haga, sin embargo.

+0

¡Gran respuesta y muchas gracias! Parece que la causa del problema fue otro proceso vinculado a 514, está funcionando bien ahora que lo he corregido. – Hoofamon

+0

¡Gran respuesta! Me ayudó mucho, ¡gracias! –

+0

¡Sí! Gracias, gran guía. – borodark

Cuestiones relacionadas