使用 Logstash 与 Elastic 集成

编辑

使用 Logstash 与 Elastic 集成

编辑

您可以利用 Elastic 集成广泛的内置功能(例如管理数据收集、转换和可视化),然后使用 Logstash 进行其他数据处理和输出选项。在您需要额外处理或需要将数据传递到多个目标的情况下,Logstash 可以进一步扩展功能。

Elastic 集成:从数据摄取到可视化

编辑

Elastic 集成 为以下方面提供了快速、端到端的解决方案:

  • 从各种数据源摄取数据,
  • 确保符合 Elastic 通用架构 (ECS)
  • 将数据导入 Elastic Stack,以及
  • 使用专门构建的仪表板进行可视化。

集成适用于 流行的服务和平台,例如 Nginx、AWS 和 MongoDB,以及许多通用输入类型(如日志文件)。每个集成都包含预打包的资产,以帮助缩短从摄取到洞察的时间。

要查看可用的集成,请转到 Kibana 主页,然后单击 添加集成。您可以使用查询栏搜索您可能想要使用的集成。当您找到数据源的集成时,UI 会引导您完成添加和配置的过程。

使用 Logstash 扩展集成

编辑

当您在 Logstash 管道中使用 Logstash filter-elastic_integration 插件时,Logstash 可以运行 Elastic 集成的摄取管道组件。

filter-elastic_integration 插件作为第一个过滤器插件可以使管道的行为尽可能接近于字节由 Elasticsearch 中的集成处理时所期望的行为。在调用 elastic_integration 过滤器之前修改事件的次数越多,修改对事件转换方式产生有意义影响的风险就越高。

示例管道配置

input {
  elastic_agent {
    port => 5044
  }
}

filter {
  elastic_integration{ 
    cloud_id => "<cloud id>"
    cloud_auth => "<your_cloud-auth"
  }

  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>"
    }
  }
}

在您的管道中使用 filter-elastic_integration 作为第一个过滤器

只要在 filter-elastic_integration 之后,您就可以使用其他过滤器

将数据输出到多个目标的示例配置

filter-elastic_integrationoutput-elasticsearch 一起使用

编辑

Elastic 集成旨在与 数据流兼容 ECS 的输出一起使用。请确保在 output-elasticsearch 插件中启用了这些功能。

查看 output-elasticsearch 插件 文档以获取其他设置。