繁体   English   中英

获取在Docker容器中运行的Logstash中的主机名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM