0

要点

rsyslog 从哪里得到 %HOSTNAME% 的值?
为什么 Tomcat 服务的应用程序具有正确的 %HOSTNAME%,但具有相同配置的控制台应用程序具有“未知”作为主机名?

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

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

奇怪的是,如果 rsyslog、syslog4j 和 log4j 来自 tomcat 托管的 Web 应用程序,相同的配置会产生正确的日志条目。

rsyslog 从哪里得到 %HOSTNAME% 的值?为什么 Tomcat 服务的应用程序具有正确的 %HOSTNAME%,但具有相同配置的控制台应用程序具有“未知”作为主机名?

4

2 回答 2

0

我想通了。为了获取主机名,我需要将主机名映射到主机文件中的 IP 地址。我实际上认为这已经发生了,但是在脚本运行以附加正确的主机条目时,IP 地址是未知的,只有主机名被附加到文件中。

我添加了正确的条目,主机名按预期出现在 rsyslog 和 loggly 中。

同时,我已将 loggly 格式从 %HOSTNAME% 更改为 %$myhostname%。这对我们来说很好,因为我们没有远程记录,所以 $myhostname 始终是正确的主机名。

于 2014-01-24T19:33:16.987 回答
0

如果 rsyslog.conf 中没有这一行,添加它并重新启动 rsyslog $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

于 2014-01-14T19:30:23.160 回答