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

标签 docker hostname 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 转发器将我的应用程序的所有日志发送到服务器 A 上的 Logstash。这很好用,但是每条日志消息都有 Docker 容器的主机名(这是容器),例如:

host = 6c7f900f6b46

由于 Logstash-forwarder 在 Docker 容器内运行,因此它(自身)看到的主机名是容器内的主机名。但这对我来说不是很有用。 如何使用 Docker 主机的主机名?

最佳答案

没有可用的 API(从 Docker Remote API v1.11 开始)以编程方式从容器内获取 Docker 主机名。

您可以在运行容器时显式设置容器的主机名,docker run --hostname=,或者您可以在运行时使用 Docker 主机名设置环境变量,并在日志中传递该值(docker --env=)。

关于docker - 获取在 Docker 容器中运行的 Logstash 中的主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23609195/

相关文章:

javascript - Javascript获取localhost+htdocs文件夹

elasticsearch - 每当logstash重新启动时,sql_last_value会重置

r - 使用R脚本将AWS S3环境变量传递给Docker

Grails 监视文件在 Vagrant 虚拟机内运行的 Docker 容器中不起作用

docker - NGINX/Docker-Compose/Phoenix

ssl - 启动 : Logstash Forwarder

elasticsearch - Logstash未写入Elasticsearch

docker - 为什么执行 Golang 可执行文件的 docker 容器在启动后立即挂起?

java - 为什么这个主机名看起来这么奇怪?

docker - 在docker compose中获取主机的主机名