elasticsearch,logstash,kibana,elastic-stack,Docker,elasticsearch,Logstash,Kibana,Elastic Stack" /> elasticsearch,logstash,kibana,elastic-stack,Docker,elasticsearch,Logstash,Kibana,Elastic Stack" />

如何在docker容器内运行的同一Logstash实例中连接多个管道从同一个filebeats端口获取日志消息

如何在docker容器内运行的同一Logstash实例中连接多个管道从同一个filebeats端口获取日志消息,docker,elasticsearch,logstash,kibana,elastic-stack,Docker,elasticsearch,Logstash,Kibana,Elastic Stack,目前,我们在elasticsearch中有一个数据流,我们称之为“app_stream”,在这个数据流中,我们通过安装在运行应用程序的服务器上的FileBeats(端口=5044)接收来自应用程序“XMLTransformer”的日志消息。我们有一个新的场景,现在我们在同一个FileBeats端口5044上接收来自同一服务器上运行的两个不同应用程序的日志消息。让我们将另一个应用程序称为“模型服务器”。现在,来自XMLTransformer和模型服务器的日志消息都将进入app_流。根据需求,我们假

目前,我们在elasticsearch中有一个数据流,我们称之为“app_stream”,在这个数据流中,我们通过安装在运行应用程序的服务器上的FileBeats(端口=5044)接收来自应用程序“XMLTransformer”的日志消息。我们有一个新的场景,现在我们在同一个FileBeats端口5044上接收来自同一服务器上运行的两个不同应用程序的日志消息。让我们将另一个应用程序称为“模型服务器”。现在,来自XMLTransformer和模型服务器的日志消息都将进入app_流。根据需求,我们假设创建一个新的数据流“ai_model_server”,它将只包含来自model server的日志消息,而app_stream将只包含来自XML transformer的日志消息。此外,我们希望为XMLTransformer和Model Server创建两个单独的日志存储管道,这两个管道将从同一个Filebeats端口5044接收日志消息,我们不希望对Filebeats进行任何更改。因此,我们正在尝试实现将消息从app_stream.conf管道路由到另一个ai_model_server.conf管道。但是logstash实例正在docker容器中运行。如何获取docker容器中可用的虚拟地址并在logstash管道中使用它。

我将在配置中将“modelserverlogs”作为一个虚拟地址,因为它可以由用户定义(我的困惑是我是否可以在配置中提供任何东西来代替虚拟地址,或者我是否需要在logstash docker容器中获得可用的虚拟IP地址并在配置中使用它们)


您是否考虑过修改容器的
入口点
,以便它检测IP并设置一个ENV var,然后您可以从logstash配置调用它?您确定Docker网络配置按预期工作吗?@tomr我已解决此问题。感谢您的帮助。
======================
app_stream.conf
======================
input {
beats {
port => 5044
type => beats
}
}
filter {
#XML transformer filter statements
add_tag => ["xml_transformer"]
}
output {
if "xml_transformer" in [tags] {
elasticsearch {
hosts => 0.0.0.0:0000
index => "app_stream"
}
}
else {
pipeline { send_to => modelserverlogs }
}
}

======================
ai_model_server.conf
=====================
input {
pipeline { address => modelserverlogs }
}
filter {
#modelserver log filter statements
}
output {
elasticsearch {
hosts => 0.0.0.0:0000
index => "ai_model_server"
}
}

=================
pipelines.yml
=================
-pipeline.id: app_stream
 path.config: "${LOGSTASH_BASE}/pipeline/app_stream.conf"
 queue.type: persisted
-pipeline.id: ai_model_server
 path.config: "${LOGSTASH_BASE}/pipeline/ai_model_server.conf"
 queue.type: persisted