在 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-pipeline
  path.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 => 5044
    ssl => true
    ssl_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 => true
    ssl => true 
  }
}
  • 使用 Elastic Cloud 中的部署页面上显示的 cloud_id。
  • 在 Fleet 中,你可以在添加 Logstash 输出时生成此 API 密钥。
  • Elasticsearch Service 使用标准的公共信任证书,因此无需在此处指定其他 SSL 设置。

自托管的 Elasticsearch 集群示例:

elastic-agent-pipeline.conf

input {
  elastic_agent {
    port => 5044
    ssl => true
    ssl_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 => true
    ssl => true
    cacert => "/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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RK3588 Android 12 Framework修改记录(八)Settings Ethernet以太网 多网卡设置静态IP

https://blog.csdn.net/lishu_/article/details/114391764 如何优雅的实现Android Ethernet 以太网的开启与关闭 RK3588 Android 12 Framework修改记录(八)Settings Ethernet以太网 多网卡设置静态IP - 知乎 Android 7.1 以太网反射 EthernetManager 配置…

LabVIEW CVT离合器性能测试

介绍了CVT(连续变速器)离合器的性能测试的一个应用。完成了一个基于LabVIEW软件平台开发的CVT离合器检测与控制系统,通过高效、准确的测试方法,确保离合器性能达到最优。 系统采用先进的硬件配合LabVIEW软件,实现了对…

【Vue3】源码探索之旅:compiler-core之parseChildren函数(二)

简言 parseChildren函数是在baseParse函数中作为createRoot函数的子节点参数传入的,今天来探索下parseChildren函数。 parseChildren在 compiler-core/src/parse.ts文件内。 parseChildren 这个函数就是用来解析模板字符串内容的 ,里面有个while循环…

使用输出事件激活Simulink块

什么是输出事件? 输出事件是发生在Stateflow图表中,但在图表外的Simulink块中可见的事件。这种类型的事件允许图表将图表中发生的事件通知模型中的其他块。 您可以使用输出事件来激活同一模型中的其他块。您可以在图表中定义多个输出事件,其中每个输出事件映射到一个输出端…

Quick BI中lod函数之lod_include

一、lod函数简介 LOD函数的全称是详细级别表达式(Level Of Detail Expressisons)。它主要是为了克服一些表达式之间计算颗粒度不一致的问题。比如,要计算第一季度各月销售收入占比,这里分子计算颗粒度为’月’,但是分…

聊聊ClickHouse MergeTree引擎的固定/自适应索引粒度

前言 我们在刚开始学习ClickHouse的MergeTree引擎时,就会发现建表语句的末尾总会有SETTINGS index_granularity 8192这句话(其实不写也可以),表示索引粒度为8192。在每个data part中,索引粒度参数的含义有二&#xf…

pytorch 利用Tensorboar记录训练过程loss变化

文章目录 1. LossHistory日志类定义2. LossHistory类的使用2.1 实例化LossHistory2.2 记录每个epoch的loss2.3 训练结束close掉SummaryWriter 3. 利用Tensorboard 可视化3.1 显示可视化效果 参考 利用Tensorboard记录训练过程中每个epoch的训练loss以及验证loss,便于…

布隆过滤器的概述和使用

1 布隆过滤器概述 1.1 概述 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是由一个很长的二进制向量(数组)和一系列随机映射函数(hash函数)组成,它不存放数据的明细内容&#xff0…

FANUC机器人开机时无法进入系统,示教器黑屏故障处理总结

FANUC机器人开机时无法进入系统,示教器黑屏故障处理总结 故障描述: FANUC机器人开机时,示教器在初始化时显示:EMAC initial call failed(示教器上电时会进入boot画面,左上角会出现一些白色的英文提示&#…

YOLOv5白皮书-第Y3周:yolov5s.yaml文件解读

YOLOv5白皮书-第Y3周:yolov5s.yaml文件解读 YOLOv5白皮书-第Y3周:yolov5s.yaml文件解读一、前言二、我的环境三、yolov5s.yaml源文件内容四、Parameters五、anchors配置六、backbone七、head八、总结 OLOv5-第Y2周:训练自己的数据集) YOLOv5白皮书-第Y3周:yolov5s.…

学习日志以及个人总结 (16)

共用体 共用体 union 共用体名 { 成员列表; };//表示定义一个共用体类型 注意: 1.共用体 初始化 --- 只能给一个值,默认是给到第一个成员变量 2.共用体成员变量辅助 3.可以判断大小端 ----※!! 实际用途…

猫用空气净化器好吗?好用的养猫宠物空气净化器品牌推荐

作为一个养猫五年的资深铲屎官,我对如何轻松快乐地养猫有一些心得。猫咪每天在家里奔跑,导致家里经常会出现“猫毛雪”,沙发、地板和衣服都成了重灾区。在除猫毛的问题上,我真的尝试了各种方法,几乎用上了所有的技能。…

2024美赛预测算法 | 回归预测 | Matlab基于RIME-LSSVM霜冰算法优化最小二乘支持向量机的数据多输入单输出回归预测

2024美赛预测算法 | 回归预测 | Matlab基于RIME-LSSVM霜冰算法优化最小二乘支持向量机的数据多输入单输出回归预测 目录 2024美赛预测算法 | 回归预测 | Matlab基于RIME-LSSVM霜冰算法优化最小二乘支持向量机的数据多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效…

2024美赛E题数学建模思路代码数据分享

2024 ICM Problem E: Sustainability of Property Insurance 本题要求选取不同大陆上经历极端天气的两个地区来为保险公司开发模型,本题的重点是找到尽可能多而全的数据,包括天气数据,经济数据,人口数据等。 模型选择&#xff1a…

《最新出炉》系列入门篇-Python+Playwright自动化测试-10-标签页操作(tab)

1.简介 标签操作其实也是基于浏览器上下文(BrowserContext)进行操作的,而且宏哥在之前的BrowserContext也有提到过,但是有的童鞋或者小伙伴还是不清楚怎么操作,或者思路有点模糊,因此今天单独来对其进行讲…

Windows内存管理 - 物理内存概念(Physical Memory Address)

作为windows驱动程序的程序员,需要比普通程序员更多的了解Windows内部的内存管理机制,并在驱动程序中有效地使用内存。在驱动程序编写中,分配和管理内存不能使用熟知的Win32 API函数,取而代之的是DDK提供的高效的内核函数。程序员…

PKG系统安装包及IPSW固件:MacOS 11-14 Sonoma 正式版

MacOS 14 Sonoma,为提高生产力和创造力带来了全新的功能,有了更多使用小部件和令人惊叹的新屏幕保护程序进行个性化设置的方法,对Safari浏览器和视频会议进行了重大更新,以及优化的游戏体验——Mac体验比以往任何时候都更好。 mac…

MySQL篇----第三篇

系列文章目录 文章目录 系列文章目录前言一、InnoDB与MyISAM的区别二、索引三、常见索引原则有前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、InnoDB与MyISAM…

【Android Studio 启动出错】

Android Studio版本:2022.3.1 出错前操作: 昨晚开着三四个项目,然后太晚了直接关机睡觉,第二天起来开机,启动Android Studio,就出现了这个问题: Internal error. Please refer to https://co…

opencv+mediapipe 手势识别控制电脑音量(详细注释解析)

前段时间社团布置了一个手势识别控制电脑音量的小任务,今天记录一下学习过程,将大佬作品在我的贫瘠的基础上解释一下~ 项目主要由以下4个步骤组成: 1、使用OpenCV读取摄像头视频流 2、识别手掌关键点像素坐标 3、根据拇指和食指指尖的坐标…