在 Elastic Agent 中为 Logstash 输出配置 SSL/TLS

要将数据从 Elastic Agent 安全地发送到 Logstash,你需要配置传输层安全性 (TLS)。 使用 TLS 可确保你的 Elastic Agent 将加密数据发送到受信任的 Logstash 服务器,并且你的 Logstash 服务器从受信任的 Elastic Agent 客户端接收数据。

先决条件

  • 确保你的订阅级别支持输出到 Logstash。
  • 在 Windows 上,将队列服务器的端口 8220 和 Logstash 的端口 5044 添加到 Windows 高级防火墙的入站端口规则。
  • 如果你要连接到自托管的 Elasticsearch 集群,则需要用于签署 Elasticsearch 集群 HTTP 层证书的 CA 证书。 有关更多信息,请参阅 Elasticsearch 安全文档。

生成自定义证书和私钥

你可以使用通常使用的任何过程来生成 PEM 格式的证书。 此处显示的示例使用 Elasticsearch 提供的 certutil 工具。

提示:certutil 工具在 Elastic Cloud 上不可用,但你仍然可以使用它为 Elastic Agent 到 Logstash 连接生成证书。 只需下载 Elasticsearch 包,将其解压到本地目录,然后运行 elasticsearch-certutil 命令。 无需启动 Elasticsearch!

1. 生成证书颁发机构 (CA)。 如果你想使用现有的 CA,请跳过此步骤。

./bin/elasticsearch-certutil ca --pem

此命令创建一个 zip 文件,其中包含 CA 证书和用于签署证书的密钥。 解压 zip 文件:

2. 生成由你的 CA 签名的客户端 SSL 证书。 例如:

./bin/elasticsearch-certutil cert \--name client \--ca-cert /path/to/ca/ca.crt \--ca-key /path/to/ca/ca.key \--pem

解压 zip 文件:

3. 生成由你的 CA 签名的 Logstash SSL 证书。 例如:

./bin/elasticsearch-certutil cert \--name logstash \--ca-cert /path/to/ca/ca.crt \--ca-key /path/to/ca/ca.key \--dns your.host.name.here \--ip 192.0.2.1 \--pem

解压 zip 文件:

4. 将 Logstash 密钥转换为 pkcs8。 例如,在 Linux 上运行:

openssl pkcs8 -inform PEM -in logstash.key -topk8 -nocrypt -outform PEM -out logstash.pkcs8.key

将这些文件存储在安全的位置。

配置 Logstash 管道

提示:如果你已经创建了 Logstash elastic-agent-pipeline.conf 管道并将其添加到 pipelines.yml,请跳到示例配置并根据需要修改管道配置。

在 Logstash 配置目录中,打开 pipelines.yml 文件并添加以下配置。 替换你的文件的路径。

- pipeline.id: elastic-agent-pipelinepath.config: "/etc/path/to/elastic-agent-pipeline.conf"

在 elastic-agent-pipeline.conf 文件中,添加管道配置。 请注意,Elastic Cloud 上的 Elasticsearch 服务所需的配置与自管理 Elasticsearch 集群不同。 如果你复制了 Fleet 中显示的配置,请根据需要进行调整。

Elasticsearch 服务示例:

elastic-agent-pipeline.conf

input {elastic_agent {port => 5044ssl => truessl_certificate_authorities => ["/path/to/ca.crt"]ssl_certificate => "/path/to/logstash.crt"ssl_key => "/path/to/logstash.pkcs8.key"ssl_verify_mode => "force_peer"}
}output {elasticsearch {cloud_id => "xxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=" api_key => "xxxx:xxxx" data_stream => truessl => true }
}
  • 使用 Elastic Cloud 中的部署页面上显示的 cloud_id。
  • 在 Fleet 中,你可以在添加 Logstash 输出时生成此 API 密钥。
  • Elasticsearch Service 使用标准的公共信任证书,因此无需在此处指定其他 SSL 设置。

自托管的 Elasticsearch 集群示例:

elastic-agent-pipeline.conf

input {elastic_agent {port => 5044ssl => truessl_certificate_authorities => ["/path/to/ca.crt"]ssl_certificate => "/path/to/logstash.crt"ssl_key => "/path/to/logstash.pkcs8.key"ssl_verify_mode => "force_peer"}
}output {elasticsearch {hosts => "https://xxxx:9200"api_key => "xxxx:xxxx"data_stream => truessl => truecacert => "/path/to/http_ca.crt" }
}
  • 使用为 Elasticsearch 生成的证书。

要了解有关 Logstash 配置的更多信息,请参阅:

  • Elastic Agent 输入插件
  • Elasticsearch 输出插件
  • 保护你与 Elasticsearch 的连接

完成管道配置后,重新启动 Logstash:

bin/logstash

将 Logstash 输出添加到 Fleet

本节介绍如何在 Fleet 中添加 Logstash 输出并配置 SSL 设置。 如果你独立运行 Elastic Agent,请参阅 Logstash 输出配置文档。你也可以阅读文章 “Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch”。

  1. 在 Kibana 中,转到 Fleet > Settings
  2. Output 下,单击 Add output。 如果你一直在 Fleet 中执行 Logstash 步骤,那么你可能已经位于此页面上。
  3. 指定输出的名称。
  4. 对于 Type,选择 Logstash
  5. 在 Logstash 主机下,指定代理将用于连接 Logstash 的主机和端口。 使用格式 host:port。格式有点类似 mylogstashhost:5044。参考链接
  6. 在  Server SSL certificate authorities 字段中,粘贴你之前生成的 ca.crt 文件的全部内容。
  7. 在 Client SSL certificate 字段中,粘贴你之前生成的 client.crt 文件的全部内容。
  8. 在 Client SSL certificate key 字段中,粘贴你之前生成的 client.key 文件的全部内容。

完成后,保存并应用设置。

在代理策略中选择 Logstash 输出

Logstash 现在正在侦听来自 Elastic Agent 的事件,但事件尚未流入 Elasticsearch。 你需要在代理策略中选择 Logstash 输出。 你可以编辑现有策略或创建新策略:

1)在 Kibana 中,转到 Fleet > Agent policies,然后创建新的代理策略或单击现有策略进行编辑:

  • 要更改新策略中的输出设置,请单击 Create agent policy 并展开 Advanced options
  • 要更改现有策略中的输出设置,请单击该策略进行编辑,然后单击 Settings

2)设置 Output for integrations  及(可选)Output for agent monitoring 以使用你之前创建的 Logstash 输出。 你可能需要向下滚动才能看到这些选项:

3)保存你的更改。

任何在 agent policy 中注册的 Elastic Agent 都将开始通过 Logstash 向 Elasticsearch 发送数据。 如果你没有在 agent policy 中注册任何已安装的 Elastic Agent,请立即执行此操作。

Elastic Agent 更新到新策略并通过安全连接连接到 Logstash 时可能会出现轻微延迟。

测试连接

要确保 Logstash 正在发送数据,请从运行 Logstash 的主机运行以下命令:

curl -XGET localhost:9600/_node/stats/events

该请求应返回有关输入和输出事件数量的统计信息。 如果这些值为 0,请检查 Elastic Agent 日志是否存在问题。

当数据流式传输到 Elasticsearch 时,转到 Observability 并单击指标以查看有关系统的 Metrics

更多阅读:Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防御保护 防火墙的双机热备和带宽管理实验

需求: 办公区设备可以通过电信和移动链路上网(多对多的NAT,并需要保留一个公网IP不能用来转换)分公司设备可以通过总公司的移动和电信链路访问DMZ区的http服务器分公司内部的客户端可以通过公网地址访问到内部的服务器FW1和FW4组…

wpf 引入本项目的图片以及引入其他项目的图像资源区别及使用方法

在WPF项目中引入本项目的图片和引入其他项目的图像资源,两者的主要区别在于资源的位置以及如何通过URI引用它们。以下是详细说明及使用方法: ​ 一、引入本项目的图片资源: 将图片文件(如PNG, JPG等)放入你的WPF项目…

Unity | YooAssetV2.1.0 + HybridCLR热更新

目录 一、项目更改 二、使用YooAsset热更 1.资源配置 2.资源构建 3.将两个文件夹下的资源上传CDN服务器 4.修改代码 5.运行效果 本文记录利用YooAssetHybridCLR来进行资源和dll的更新。YooAsset使用的是新版V2.1.0。相比于旧版,dll(原生文件)和资源要建两个p…

AI-数学-高中-18-三角函数-同角三角函数关系及计算

原作者视频:三角函数】5同角三角函数关系(易中档)_哔哩哔哩_bilibili 辅助三角形(计算速度快):1.画一个辅助计算的任意直接三角形;2.利用初中方法先计算sin、cos、tan值;3.看象限确定…

Python机器学习:样本划分之验证集法

评估机器学习模型优劣的标准是模型的泛化能力,所以关注的应该是泛化误差而不是经验误差,一味追求经验误差的降低,就会导致模型“过拟合”现象。但是泛化误差是难以直接观察到的,我们应该如何选择泛化能力比较好的模型呢&#xff1…

蓝桥杯---垒骰子

赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1的对面是4&…

【Docker篇】Linux安装Docker、docker安装mysql、redis、rabbitmq

1.Linux安装docker 官方帮助文档:Install Docker Engine on CentOS | Docker Docs 1.1安装命令 # 1. 卸载之前的dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate…

RK3568平台 安卓hal3适配usb camera

一.RK安卓hal3 camera框架 Camera hal3 在 android 框架中所处的位置如上图, 对上,主要实现 Framework 一整套 API 接口,响应其 控制命令,返回数据与控制参数结果。 对下, 主要是通 V4l2 框架实现与 kernel 的交互。3a…

gitlab 关闭Lets Encrypt证书续签

编辑 /etc/gitlab/gitlab.rb # letsencrypt[enable] nil 并更改 letsencrypt[enable] false重新加载配置 重启gitlab生效 gitlab-ctl reconfigure配置成自己的证书 external_url http://gitlab.example.com开启以下3向即可 nginx[redirect_http_to_https] true nginx[ssl_…

linux 下mongodb7版本怎么连?

概述:linux下的mongodb7版本默认是没有安装客户端的,需要下载shell客户端才能连,下载之后解压,不需要编译,进入bin目录就能自己运行,。 安装: linux 下mongodb7版本没有安装客户端需要当地下载…

Java:你还在想着考虑使用 tess4j 做文字识别吗?给你看看我的一点实践

需求:删除带有图片水印的图片 语言也设置为中文了,最后给我识别的文字是这样的 | AT V ! w{)" . ) ,/ R Ko 87 ’ 我能理解,毕竟图片很大张,不过不用担心,因为这个水印很有规律,就在右下方裁剪出宽 1…

基于单片机的智能燃气灶控制系统设计

摘要:针对传统燃气灶存在不能防干烧、不能进行温度检测、不能进行火力自动调节等问题,设计了一种基于单片机控制的智能燃气灶,它通过单片机进行控制,由开关模块、测温模块、语音播报模块、火力控制模块和防空烧模块五个模块组成&a…

SpringBoot整理-微服务

Spring Boot 在构建微服务架构的应用中发挥着关键作用。微服务是一种将大型复杂应用拆分为更小、更容易管理和维护的服务的架构风格。每个服务通常围绕特定的业务功能构建,并且可以独立部署、扩展和更新。Spring Boot 提供了一系列特性和工具,使得创建和维护这些独立服务变得…

Vue - 面试题持续更新

1.Vue路由模式 总共有Hash和History两种模式 Hash模式:在浏览器里面的符号 “#”,以及"#"后面的字符称之为Hash,用window.location.hash读取。 Hash模式的特点:hash是和浏览器对话的,和服务器没有关系&…

设计模式第三天|建造者模式 4. 自行车加工 原型模式 5. 矩形原型

目录 【设计模式专题之建造者模式】4. 自行车加工【设计模式专题之原型模式】5. 矩形原型 【设计模式专题之建造者模式】4. 自行车加工 文章链接&#xff1a;卡码网设计模式 题目链接&#xff1a;4. 自行车加工 注意重载<<函数的写法和使用方式&#xff0c;使用时与其它重…

从汇编层面理解C++ this指针

在c中&#xff0c;调用对象的非静态成员函数过程中&#xff0c;编译器会自动添加this指针作为第一个参数。我们从汇编层面看看this指针是如何传进来的。 使用如下简单的程序来演示&#xff1a; class A { private:int a[100];int b; public:void SetB(int b){ this->b b;…

设计模式通用解释及Java代码用例整理

文章目录 23种设计模式单例模式&#xff08;Singleton Pattern&#xff09;工厂模式&#xff08;Factory Pattern&#xff09;抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;建造者模式&#xff08;Builder Pattern&#xff09;原型模式&#xff08;Prototype …

Python与Go中详细的异常处理机制|面试题

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…

django+flask+python高校教材管理系统47nia

本.4论文结构 绪论&#xff1a;剖析项目可行性&#xff0c;表明研究方向。 开发技术&#xff1a;系统关键运用了Python技术性、Django框架、B/S架构和myspl数据库查询&#xff0c;并进行了详细介绍[6]。 系统分析&#xff1a;包含系统的总体构造&#xff0c;用例图和结构图。 系…

故障诊断 | 一文解决,CNN-LSTM卷积神经网络-长短期记忆神经网络组合模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,CNN-LSTM卷积神经网络-长短期记忆神经网络组合模型的故障诊断(Matlab) 模型描述 CNN-LSTM模型是一种结合了卷积神经网络(Convolutional Neural Network)和长短期记忆神经网络(Long Short-Term Memory)的组合模型,常用于数据故障…