将 Elastic Agent 数据路由到 Logstash,以便将其发送到多个 Elasticsearch 集群和其他目的地

编辑

将 Elastic Agent 数据路由到 Logstash,以便将其发送到多个 Elasticsearch 集群和其他目的地编辑

Image showing Elastic Agent collecting and routing data to multiple destinations
摄取模型
Elastic Agent 到 Logstash 再到 Elasticsearch 集群和/或其他目的地
使用场景
需要根据内容将 Elastic Agent 收集的数据路由到不同的 Elasticsearch 集群或非 Elasticsearch 目的地
示例

我们以一台 Windows 工作站为例,我们使用系统和 Windows 集成来收集不同类型的日志。这些日志需要发送到不同的 Elasticsearch 集群和 S3 进行备份,并需要一种机制将其发送到其他目的地,例如不同的 SIEM 解决方案。此外,Elasticsearch 目的地是根据数据流类型和组织标识符确定的。

在这种用例中,代理将数据发送到 Logstash 作为路由机制,以将其发送到不同的目的地。请注意,必须在所有接收数据的 Elasticsearch 集群上安装系统和 Windows 集成。

示例配置
input {
  elastic_agent {
    port => 5044
  }
}
filter {
  translate {
    source => "[http][host]"
    target => "[@metadata][tenant]"
    dictionary_path => "/etc/conf.d/logstash/tenants.yml"
  }
}
output {
  if [@metadata][tenant] == "tenant01" {
    elasticsearch {
      cloud_id => "<cloud id>"
      api_key => "<api key>"
    }
  } else if [@metadata][tenant] == "tenant02" {
    elasticsearch {
      cloud_id => "<cloud id>"
      api_key => "<api key>"
    }
  }
}

资源编辑

有关配置 Elastic Agent 的信息

有关 Logstash 和 Logstash 输出的信息

有关 Elasticsearch 的信息