[英]Get hostname in Logstash running in a Docker container
我有一个使用Docker容器的Logstash设置,如下所示:
Server A
[Docker container] Logstash
[Docker container] Elasticsearch
[Docker container] Kibana
Server B
[Docker container] My application
[Docker container] Logstash-forwarder
服务器B上的Logstash转发器将My application
所有日志发送到服务器A上的Logstash。这很好,但是每条日志消息都具有Docker容器的主机名(即容器的ID),例如:
host = 6c7f900f6b46
由于Logstash-forwarder在Docker容器中运行,因此它将(本身)看到的主机名是该容器中的主机名。 但这对我不是很有用。 如何使用Docker主机的主机名?
没有可用的API(自Docker Remote API v1.11起 ),无法从容器内部以编程方式获取Docker主机名。
您可以在运行容器时显式设置容器的主机名, docker run --hostname=
,也可以在运行时使用Docker主机名设置环境变量,并将该值传递到日志中( docker --env=
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.