将 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 插件 文档。