获取在Docker容器中运行的Logstash中的主机名
我有一个使用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-forwarder会将My application
所有日志发送到服务器A上的Logstash。这很好,但每条日志消息都有Docker容器的主机名(即容器的ID),例如:
host = 6c7f900f6b46
由于Logstash-forwarder在Docker容器内部运行,因此它将看到的主机名(对于它自己而言)是容器内部的主机名。 但是这对我来说并不是很有用。 我如何使用Docker主机的主机名?
没有可用的API(从Docker Remote API v1.11开始 )以编程方式从容器中获取Docker主机名。
您可以在运行容器时显式设置容器的主机名, docker run --hostname=
,也可以在运行时使用Docker主机名设置环境variables,并在日志中传递该值( docker --env=
)。