El valor %HOSTNAME% es "desconocido" en la plantilla rsyslog

El valor %HOSTNAME% es "desconocido" en la plantilla rsyslog

La esencia

¿De dónde obtiene rsyslog el valor de %HOSTNAME% y bajo qué condiciones sería "desconocido" el valor esperado?

Estamos usando rsyslog en una instancia EC2 y estamos intentando enviar nuestros registros a loggly. Si tail -fregistro los mensajes, puedo ver el registro en el formato predeterminado, incluida la fecha, el nombre de host, la etiqueta y el mensaje.

Si lo uso logger "message", veo una entrada de registro correcta tanto en la consola como en logly. Sin embargo, si una aplicación de consola Java registra un evento, el nombre de host es "desconocido" tanto en la consola como en logly.

Curiosamente, la misma configuración de rsyslog y log4j da como resultado la entrada de registro correcta si proviene de una aplicación web alojada en Tomcat.

Sé que algo de eso es muy específico de Java, pero mi pregunta es la siguiente: ¿de dónde obtiene rsyslog el valor de %HOSTNAME% y bajo qué condiciones sería "desconocido" el valor esperado?

Respuesta1

Me di cuenta de esto. Para obtener el nombre de host, necesitaba asignar el nombre de host a la dirección IP en el archivo de hosts. De hecho, pensé que esto ya estaba sucediendo, pero en el momento en que se ejecuta el script para agregar la entrada de hosts correcta, se desconoce la dirección IP y solo se agrega el nombre de host al archivo.

Agregué la entrada correcta y el nombre de host aparece como se esperaba en rsyslog y loggly.

Mientras tanto, cambié el formato de registro de %HOSTNAME% a %$myhostname%. Esto funcionó bien para nosotros porque no estábamos iniciando sesión de forma remota, por lo que $myhostname siempre fue el nombre de host correcto.

información relacionada