Elastic Integration 过滤插件是为 Logstash 设计的,它允许你在数据进入 Elastic 之前,通过执行 Logstash 中的处理管道来处理来自 Elastic 集成的数据。
这种方法的优势在于可以将数据处理操作从 Elastic 部署中分离出来,转移到 Logstash 上进行处理,从而为你提供了更灵活的数据处理选择。同时,Logstash 作为数据进入 Elastic 前的最后一站,可以汇总所有来自不同代理或 Beats 实例的输出,避免为每个实例单独开放端口和设置防火墙规则。
确保你已经在服务器上运行了带有一个或多个集成的 Elastic agent。如果需要安装 Elastic agent,可以参考这里的指南。
我们将进行以下操作:
请使用这个指南来在你的服务器上安装 Logstash。
使用这个指南来创建用于保护 Logstash 输出连接的自定义证书和密钥。这些证书和密钥将由 Fleet 使用。在设置 Logstash 的自定义管道文件之前,需要先完成这一步,因为我们将在配置中引用这些证书的值。
根据指南,我下载了 Elasticsearch,以便使用其中包含的 certutil 工具,并提取了内容。
有了证书和密钥后,我们可以在 Kibana 中完成设置 Fleet 的 Logstash 输出的步骤。但还不要在代理策略中设置 Logstash 输出,因为我们需要先在 Logstash 中配置自定义管道。
我们需要添加一个自定义管道 yml 文件,其中将包括 Elastic agent 的输入和集成过滤插件。Logstash 管道的典型定义如下图所示:
我们的自定义管道 yml 文件将从 Elastic agent 的 input 插件开始,相关指南在这里。
接下来,我们使用集成过滤插件,然后是一个输出到 Elastic Cloud 的 output,根据你是向托管云部署还是无服务器项目进行数据摄取,配置会有所不同。
完整的文件应该如下所示:
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 {
# 对于云托管部署
elasticsearch {
cloud_id => "Ross_is_Testing:123456"
cloud_auth => "elastic:yourpasswordhere"
data_stream => true
ssl => true
ecs_compatibility => v8
}
# 对于无服务器项目
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 密钥。
对于无服务器项目,你需要使用 Elasticsearch 的端点和 API 密钥来连接 Logstash,具体方法见这里。你可以从云管理控制台的项目管理页面获得 Elasticsearch 的端点:
确保 Logstash 的主 pipelines.yml 文件也包括对自定义管道文件的引用:
# 此文件用于定义你的管道。你可以定义多个管道。
# 有关多个管道的更多信息,请参阅文档:
# 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 内运行相关的摄取管道以处理数据,然后再发送到 Elasticsearch。
本文所述的任何功能或特性发布的时间和方式完全由 Elastic 单方面决定。目前尚未提供的任何功能或特性可能会被推迟或取消。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有