
A essência
Onde o rsyslog obtém o valor de% HOSTNAME% e sob quais condições “desconhecido” seria o valor esperado?
Estamos usando o rsyslog em uma instância EC2 e tentando enviar nossos logs para o logly. Se eu visualizar tail -f
as mensagens de log, posso ver o log no formato padrão, incluindo data, nome do host, tag e mensagem.
Se eu usar logger "message"
, vejo uma entrada de log correta no console e no logly. No entanto, se um aplicativo de console java registrar um evento, o nome do host será "desconhecido" tanto no console quanto no logly.
Estranhamente, a mesma configuração de rsyslog e log4j resulta na entrada de log correta se vier de um aplicativo web hospedado pelo Tomcat.
Eu sei que algumas coisas são muito específicas de Java, mas minha pergunta é a seguinte: onde o rsyslog obtém o valor de% HOSTNAME% e sob quais condições "desconhecido" seria o valor esperado?
Responder1
Eu descobri isso. Para obter o nome do host, precisei mapeá-lo para o endereço IP no arquivo hosts. Na verdade, pensei que isso já estivesse acontecendo, mas no momento em que o script é executado para anexar a entrada correta dos hosts, o endereço IP é desconhecido e apenas o nome do host é anexado ao arquivo.
Adicionei a entrada correta e o nome do host aparece conforme esperado no rsyslog e no logly.
Nesse ínterim, mudei o formato do log de %HOSTNAME% para %$myhostname%. Isso funcionou bem para nós porque não estávamos registrando remotamente, então $myhostname era sempre o nome de host correto.