【问题标题】:%HOSTNAME% value is "unknown" in rsyslogrsyslog 中的 %HOSTNAME% 值是“未知”
【发布时间】:2014-02-02 17:39:46
【问题描述】:

要点

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

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

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

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

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

【问题讨论】:

    标签: java log4j rsyslog syslog4j


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-02
        • 2021-06-21
        • 2013-05-18
        • 2016-06-13
        • 2016-08-10
        • 1970-01-01
        相关资源
        最近更新 更多