当前位置: 首页 > article >正文

使用集成过滤插件在 Logstash 中处理来自 Elastic 集成的数据

作者:来自 Elastic Rossall Sandford

通过使用集成过滤插件,将数据处理操作从你的 Elastic 部署卸载到 Logstash。

Logstash 的 Elastic 集成过滤插件允许你在 Logstash 内执行摄取管道来处理来自 Elastic 集成的数据,然后再将数据转发到 Elastic。

为什么要使用它?

这种方法的优势在于,它可以将数据处理操作从你的 Elastic 部署中卸载到 Logstash,使你可以灵活决定处理数据的位置。

此外,使用 Logstash 作为数据进入 Elastic 之前的最终路由,可以避免为每个 Agent 或 Beats 实例单独开放端口和设置不同的防火墙规则,因为 Logstash 可以聚合所有这些组件的输出。

先决条件

你需要在服务器上运行一个 Elastic Agent,并在其代理策略中包含一个或多个集成。如果需要安装 Elastic Agent,可以按照Elastic 集成过滤插件进行操作。

步骤

我们将执行以下操作:

  1. 安装 Logstash,但在所有步骤完成之前不会运行它。

  2. 在 Logstash 服务器上生成自定义证书和密钥,以启用 Fleet 服务器与 Logstash 之间的安全通信。

  3. 配置 Fleet 以添加 Logstash 输出。

  4. 设置 Logstash,包括一个自定义管道,该管道接收来自 Elastic Agent 的输入,使用集成过滤插件,并最终将事件转发到 Elastic。

  5. 启动 Logstash。

  6. 更新代理策略以使用新的 Logstash 输出。

安装 Logstash

请按照此指南在你的服务器上安装 Logstash。

在 Logstash 服务器上设置 SSL/TLS

请按照此指南创建自定义证书和密钥,以保护 Fleet 与 Logstash 之间的输出连接。在设置 Logstash 的自定义管道文件之前,我们需要先完成此步骤,因为在配置中将引用部分证书的值。

按照指南,我下载了 Elasticsearch,以便使用其中包含的 certutil 工具,并解压了内容。

在 Kibana 中为 Fleet 添加 Logstash 输出

在获得证书和密钥后,我们可以在 Kibana 内完成设置 Logstash 输出的必要步骤,以供 Fleet 使用。但暂时不要在代理策略上设置 Logstash 输出,因为我们首先需要在 Logstash 中配置一个自定义管道。

为 Logstash 设置自定义管道

我们需要添加一个自定义 yml 文件,其中包括 Elastic Agent 输入和集成过滤插件。Logstash 管道的典型定义如下:

我们的自定义 pipeline.yml 文件将从 Elastic Agent 输入插件开始,相关指南可在此处找到。

接下来,我们将添加集成过滤插件,然后根据数据是否要进入托管云部署无服务器项目,配置不同的 Elastic Cloud 输出。

完整的 pipeline.yml 文件应类似于以下内容:

input {
  elastic_agent {
    port => 5044
    ssl_enabled => true
    ssl_certificate_authorities => ["/pathtoca/ca.crt"]
    ssl_certificate => "/pathtologstashcrt/logstash.crt"
    ssl_key => "/pathtologstashkey/logstash.pkcs8.key"
    ssl_client_authentication => "required"
  }
}
filter {
  elastic_integration{
    cloud_id => "Ross_is_Testing:123456"
    cloud_auth => "elastic:yourpasswordhere"
  }
}
output {
    # For cloud hosted deployments
    elasticsearch {
        cloud_id => "Ross_is_Testing:123456
        cloud_auth => "elastic:yourpasswordhere"
        data_stream => true
        ssl => true
        ecs_compatibility => v8
    }
    # For serverless projects
    elasticsearch {
        hosts => ["https://projectname.es.us-east-1.aws.elastic.cloud:443"]
        api_key => "yourapikey-here"
        data_stream => true
        ssl => true
        ecs_compatibility => v8
    }
}

上述输出部分的语法是有效的, 你可以指定多个输出!

对于云托管部署, 你 可以使用部署的 CloudId 进行身份验证, 你 可以在云管理控制台的部署概览页面获取它:

我也在使用用户名和密码, 但如果需要, 你 也可以指定一个 API key。

对于无服务器项目, 你 需要使用 你的 Elasticsearch 端点和 API key 来连接 Logstash, 具体请参考此处的文档。 你 可以在云管理控制台的项目管理页面获取 Elasticsearch 端点:

确保 Logstash 的主 pipelines.yml 文件也包含对 你的 自定义管道文件的引用:

# This file is where you define your pipelines. You can define multiple.
# For more information on multiple pipelines, see the documentation:
#   https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html
- pipeline.id: fromagent
  path.config: "/etc/logstash/conf.d/agent.conf"

然后, 你 可以启动 Logstash。 由于尚未更新 Elastic Agent 策略以使用 Logstash 输出, 目前不会有事件通过 Logstash。

更新代理策略以使用 Logstash 输出

在 Logstash 运行后, 你现在可以在所选的代理策略上设置已配置的 Logstash 输出。

完成

来自所选代理策略中的集成的事件将通过 Logstash 发送, 并在 Logstash 内运行相关的摄取管道来处理数据, 然后再发送到 Elastic Cloud。

本帖子中描述的任何功能或特性均由 Elastic 全权决定其发布与时间安排。 任何当前不可用的功能或特性可能不会按时发布, 甚至可能不会发布。

原文:Process data from Elastic integrations with the integration filter plugin in Logstash — Elastic Observability Labs


http://www.kler.cn/a/611770.html

相关文章:

  • RAG技术的进化:RQ-RAG查询优化/化繁为简Adaptive-RAG智能分类/精准出击
  • Skynet 框架中 gateserver、gate、watchdog 的关系
  • 数据仓库getter的应用
  • Qemu-STM32(十二):STM32F103 框架代码添加
  • webpack5 小记
  • 能源用钢(管线钢、风电钢)实验室LIMS厂商推荐
  • 3.25-3.31学习周报
  • 自动化测试中 iframe 相关问题与解决方案拓展
  • 【人工智能】机器学习中的评价指标
  • Prompt Engineering:如何写出更高效的提示词?
  • Tomcat日志中的404错误怎么处理
  • Spring AI + DeepSeek 构建大模型应用 Demo
  • 快速入手-基于Django-rest-framework的APIView类升级版GenericAPIView(四)
  • 闭包、装饰器学习笔记(第二次学习)
  • Java基础关键_030_线程(三)
  • 347 前k个高频元素
  • 多 线 程
  • WPF中的Adorner基础用法详解与实例
  • True strength lies in embracing vulnerability as a gateway to growth.
  • 23种设计模式-责任链(Chain of Responsibility)设计模式