赞
踩
要将数据从 Elastic Agent 安全地发送到 Logstash,你需要配置传输层安全性 (TLS)。 使用 TLS 可确保你的 Elastic Agent 将加密数据发送到受信任的 Logstash 服务器,并且你的 Logstash 服务器从受信任的 Elastic Agent 客户端接收数据。
你可以使用通常使用的任何过程来生成 PEM 格式的证书。 此处显示的示例使用 Elasticsearch 提供的 certutil 工具。
提示:certutil 工具在 Elastic Cloud 上不可用,但你仍然可以使用它为 Elastic Agent 到 Logstash 连接生成证书。 只需下载 Elasticsearch 包,将其解压到本地目录,然后运行 elasticsearch-certutil 命令。 无需启动 Elasticsearch!
./bin/elasticsearch-certutil ca --pem
此命令创建一个 zip 文件,其中包含 CA 证书和用于签署证书的密钥。 解压 zip 文件:
- ./bin/elasticsearch-certutil cert \
- --name client \
- --ca-cert /path/to/ca/ca.crt \
- --ca-key /path/to/ca/ca.key \
- --pem
解压 zip 文件:
- ./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 文件:
openssl pkcs8 -inform PEM -in logstash.key -topk8 -nocrypt -outform PEM -out logstash.pkcs8.key
将这些文件存储在安全的位置。
提示:如果你已经创建了 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
- }
- }
自托管的 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"
- }
- }
要了解有关 Logstash 配置的更多信息,请参阅:
完成管道配置后,重新启动 Logstash:
bin/logstash
本节介绍如何在 Fleet 中添加 Logstash 输出并配置 SSL 设置。 如果你独立运行 Elastic Agent,请参阅 Logstash 输出配置文档。你也可以阅读文章 “Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch”。
mylogstashhost:5044。参考链接
完成后,保存并应用设置。
Logstash 现在正在侦听来自 Elastic Agent 的事件,但事件尚未流入 Elasticsearch。 你需要在代理策略中选择 Logstash 输出。 你可以编辑现有策略或创建新策略:
1)在 Kibana 中,转到 Fleet > Agent policies,然后创建新的代理策略或单击现有策略进行编辑:
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。