要旨 rsyslog从哪里获得%主机名%的值? 为什么Tomcat服务的应用程序具有正确的%主机名%,而具有相同配置的控制台应用程序与主机名“未知”呢?
我们在EC2实例上使用rsyslog,并且尝试将日志发送出去。如果我tail -f日志消息,我可以看到默认格式的日志,包括日期、主机名、标记和消息。
如果我使用logger "message",那么在控制台和日志中都会看到正确的日志条目。但是,如果一个java控制台应用程序记录了一个事件,那么主机名在控制台和日志中都是“未知”的。
奇怪的是,如果rsyslog、syslog4j和log4j来自tomcat托管的web应用程序,那么相同的配置将导致正确的日志条目。
rsyslog从哪里获得%主机名%的值?为什么Tomcat服务的应用程序具有正确的%主机名%,而具有相同配置的控制台应用程序与主机名“未知”呢?
发布于 2014-01-14 19:30:23
如果rsyslog.conf中没有这一行,请添加它并重新启动rsyslog $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
发布于 2014-01-24 19:33:16
我想出来了。为了获得主机名,我需要将主机名映射到主机文件中的ip地址。实际上,我认为这已经发生了,但是当脚本运行以附加正确的主机条目时,IP地址是未知的,只有主机名被追加到文件中。
我添加了正确的条目,主机名出现在rsyslog和loggly中。
同时,我已经将漂亮的格式从%主机名%更改为%$myhostname%。这对我们来说很好,因为我们不是远程日志记录,所以$myhostname始终是正确的主机名。
https://stackoverflow.com/questions/21117329
复制相似问题