使用集成过滤插件在 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 文件应类似于以下内容:

ini 复制代码
`

1.  input {
2.    elastic_agent {
3.      port => 5044
4.      ssl_enabled => true
5.      ssl_certificate_authorities => ["/pathtoca/ca.crt"]
6.      ssl_certificate => "/pathtologstashcrt/logstash.crt"
7.      ssl_key => "/pathtologstashkey/logstash.pkcs8.key"
8.      ssl_client_authentication => "required"
9.    }
10.  }
11.  filter {
12.    elastic_integration{
13.      cloud_id => "Ross_is_Testing:123456"
14.      cloud_auth => "elastic:yourpasswordhere"
15.    }
16.  }
17.  output {
18.      # For cloud hosted deployments
19.      elasticsearch {
20.          cloud_id => "Ross_is_Testing:123456
21.          cloud_auth => "elastic:yourpasswordhere"
22.          data_stream => true
23.          ssl => true
24.          ecs_compatibility => v8
25.      }
26.      # For serverless projects
27.      elasticsearch {
28.          hosts => ["https://projectname.es.us-east-1.aws.elastic.cloud:443"]
29.          api_key => "yourapikey-here"
30.          data_stream => true
31.          ssl => true
32.          ecs_compatibility => v8
33.      }
34.  }



`AI写代码

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

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

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

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

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

python 复制代码
`

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

`AI写代码

然后, 你 可以启动 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

相关推荐
huisheng_qaq2 小时前
【ElasticSearch实用篇-01】需求分析和数据制造
大数据·elasticsearch·制造
G皮T14 小时前
【Elasticsearch】自定义评分检索
大数据·elasticsearch·搜索引擎·查询·检索·自定义评分·_score
feilieren1 天前
Docker 安装 Elasticsearch 9
运维·elasticsearch·docker·es
Java烘焙师1 天前
架构师必备:业务扩展模式选型
mysql·elasticsearch·架构·hbase·多维度查询
G皮T2 天前
【Elasticsearch】深度分页及其替代方案
大数据·elasticsearch·搜索引擎·scroll·检索·深度分页·search_after
G皮T2 天前
【Elasticsearch】检索排序 & 分页
大数据·elasticsearch·搜索引擎·排序·分页·检索·深度分页
飞询2 天前
Docker 安装 Elasticsearch 9
elasticsearch·docker
G皮T2 天前
【Elasticsearch】检索高亮
大数据·elasticsearch·搜索引擎·全文检索·kibana·检索·高亮
大只鹅3 天前
解决 Spring Boot 对 Elasticsearch 字段没有小驼峰映射的问题
spring boot·后端·elasticsearch
HGW6893 天前
基于 Elasticsearch 实现地图点聚合
java·elasticsearch·高德地图