rsyslog模板中的%HOSTNAME%值为“未知”

要旨

rsyslog在哪里得到%HOSTNAME%的值,在什么情况下,“未知”是期望值?

我们在EC2实例上使用rsyslog,并试图将我们的日志发送到loggly。 如果我tail -f日志消息,我可以看到默认格式的日志,包括date,主机名,标记和消息。

如果我使用logger "message"那么我在控制台和loggly中看到正确的日志条目。 但是,如果Java控制台应用程序logging事件,则控制台和loggly中的主机名均为“未知”。

奇怪的是,如果rsyslog和log4j的configuration来自tomcat托pipe的Web应用程序,则它们的configuration正确。

我知道一些这是非常具体的Java,但我的问题是这样的:rsyslog得到%HOSTNAME%的价值,在什么情况下,“未知”是期望值?

我明白了这一点。 为了得到主机名我需要映射主机名到主机文件的IP地址。 我实际上已经认为这已经发生了,但是当脚本运行时追加正确的主机条目时,IP地址是未知的,只是主机名被追加到文件中。

我添加了正确的条目,主机名显示在rsyslog和loggly中。

同时,我将loghost格式从%HOSTNAME%更改为%$ myhostname%。 这对我们很好,因为我们不是远程login,所以$ myhostname总是正确的主机名。