- Fleet 和 Elastic Agent 指南其他版本
- Fleet 和 Elastic Agent 概述
- Beats 和 Elastic Agent 功能
- 快速入门
- 从 Beats 迁移到 Elastic Agent
- 部署模型
- 安装 Elastic Agent
- 安装 Fleet 管理的 Elastic Agent
- 安装独立的 Elastic Agent
- 在容器化环境中安装 Elastic Agent
- 在容器中运行 Elastic Agent
- 在 Fleet 管理的 Kubernetes 上运行 Elastic Agent
- 使用 Helm 在 Kubernetes 上安装 Elastic Agent
- 示例:使用 Helm 在 Kubernetes 上安装独立的 Elastic Agent
- 示例:使用 Helm 在 Kubernetes 上安装 Fleet 管理的 Elastic Agent
- Fleet 管理的高级 Elastic Agent 配置
- 在 Elastic Agent 上配置 Kubernetes 元数据增强
- 在 Fleet 管理的 GKE 上运行 Elastic Agent
- 在 Fleet 管理的 Amazon EKS 上运行 Elastic Agent
- 在 Fleet 管理的 Azure AKS 上运行 Elastic Agent
- 在 Kubernetes 上运行独立的 Elastic Agent
- 在 Kubernetes 上扩展 Elastic Agent
- 在 Kubernetes 集成中使用自定义摄取管道
- 环境变量
- 将 Elastic Agent 作为 OTel 收集器运行
- 在没有管理权限的情况下运行 Elastic Agent
- 从 MSI 包安装 Elastic Agent
- 安装布局
- 气隙环境
- 将代理服务器与 Elastic Agent 和 Fleet 一起使用
- 从边缘主机卸载 Elastic Agent
- 在边缘主机上启动和停止 Elastic Agent
- Elastic Agent 配置加密
- 安全连接
- 在 Fleet 中管理 Elastic Agent
- 配置独立的 Elastic Agent
- 创建独立的 Elastic Agent 策略
- 配置文件结构
- 输入
- 提供程序
- 输出
- SSL/TLS
- 日志记录
- 功能标志
- Agent 下载
- 配置文件示例
- 授予独立的 Elastic Agent 对 Elasticsearch 的访问权限
- 示例:将独立的 Elastic Agent 与 Elastic Cloud Serverless 一起使用来监控 nginx
- 示例:将独立的 Elastic Agent 与 Elasticsearch Service 一起使用来监控 nginx
- 调试独立的 Elastic Agent
- 使用 Elastic Agent 进行 Kubernetes 自动发现
- 监控
- 参考 YAML
- 管理集成
- 定义处理器
- 处理器语法
- add_cloud_metadata
- add_cloudfoundry_metadata
- add_docker_metadata
- add_fields
- add_host_metadata
- add_id
- add_kubernetes_metadata
- add_labels
- add_locale
- add_network_direction
- add_nomad_metadata
- add_observer_metadata
- add_process_metadata
- add_tags
- community_id
- convert
- copy_fields
- decode_base64_field
- decode_cef
- decode_csv_fields
- decode_duration
- decode_json_fields
- decode_xml
- decode_xml_wineventlog
- decompress_gzip_field
- detect_mime_type
- dissect
- dns
- drop_event
- drop_fields
- extract_array
- fingerprint
- include_fields
- move_fields
- parse_aws_vpc_flow_log
- rate_limit
- registered_domain
- rename
- replace
- script
- syslog
- timestamp
- translate_sid
- truncate_fields
- urldecode
- 命令参考
- 故障排除
- 发行说明
为 Logstash 输出配置 SSL/TLS
编辑为 Logstash 输出配置 SSL/TLS
编辑要安全地将数据从 Elastic Agent 发送到 Logstash,您需要配置传输层安全 (TLS)。使用 TLS 可确保您的 Elastic Agent 将加密数据发送到受信任的 Logstash 服务器,并且您的 Logstash 服务器接收来自受信任的 Elastic Agent 客户端的数据。
先决条件
编辑- 确保您的订阅级别支持输出到 Logstash。
- 在 Windows 上,将 Fleet Server 的端口 8220 和 Logstash 的端口 5044 添加到 Windows 高级防火墙的入站端口规则中。
- 如果您要连接到自管理的 Elasticsearch 集群,则需要用于签署 Elasticsearch 集群 HTTP 层证书的 CA 证书。有关更多信息,请参阅Elasticsearch 安全文档。
生成自定义证书和私钥
编辑您可以使用通常用于生成 PEM 格式证书的任何流程。此处显示的示例使用 Elasticsearch 提供的 certutil
工具。
certutil
工具在 Elastic Cloud 上不可用,但您仍然可以使用它来为 Elastic Agent 到 Logstash 的连接生成证书。只需下载 Elasticsearch 包,将其解压缩到本地目录,然后运行 elasticsearch-certutil
命令。无需启动 Elasticsearch!
-
生成证书颁发机构 (CA)。如果要使用现有的 CA,请跳过此步骤。
./bin/elasticsearch-certutil ca --pem
此命令会创建一个 zip 文件,其中包含您将用于签署证书的 CA 证书和密钥。解压缩该 zip 文件
-
生成由您的 CA 签署的客户端 SSL 证书。例如
./bin/elasticsearch-certutil cert \ --name client \ --ca-cert /path/to/ca/ca.crt \ --ca-key /path/to/ca/ca.key \ --pem
解压缩该 zip 文件
-
生成由您的 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 文件
-
将 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 Service 所需的配置与自管理的 Elasticsearch 集群不同。如果您复制了 Fleet 中显示的配置,请根据需要进行调整。
Elasticsearch Service 示例
input { elastic_agent { port => 5044 ssl_enabled => true ssl_certificate_authorities => ["/path/to/ca.crt"] ssl_certificate => "/path/to/logstash.crt" ssl_key => "/path/to/logstash.pkcs8.key" ssl_client_authentication => "required" } } output { elasticsearch { cloud_id => "xxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx=" api_key => "xxxx:xxxx" data_stream => true ssl => true } }
使用 Elastic Cloud 部署页面上显示的 |
|
在 Fleet 中,您可以在添加 Logstash 输出时生成此 API 密钥。 |
|
Elasticsearch Service 使用标准的公开信任证书,因此此处无需指定其他 SSL 设置。 |
自管理 Elasticsearch 集群示例
input { elastic_agent { port => 5044 ssl_enabled => true ssl_certificate_authorities => ["/path/to/ca.crt"] ssl_certificate => "/path/to/logstash.crt" ssl_key => "/path/to/logstash.pkcs8.key" ssl_client_authentication => "required" } } 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 输出
编辑本节介绍如何在 Fleet 中添加 Logstash 输出并配置 SSL 设置。如果您正在独立运行 Elastic Agent,请参阅Logstash 输出配置文档。
- 在 Kibana 中,转到 Fleet > 设置。
- 在 输出 下,单击 添加输出。如果您一直在按照 Fleet 中的 Logstash 步骤操作,则您可能已在此页面上。
- 为输出指定一个名称。
- 对于 类型,选择 Logstash。
- 在 Logstash 主机 下,指定您的 Agent 将用于连接到 Logstash 的主机和端口。使用
host:port
格式。 - 在 服务器 SSL 证书颁发机构 字段中,粘贴您之前生成的
ca.crt
文件的全部内容。 - 在 客户端 SSL 证书 字段中,粘贴您之前生成的
client.crt
文件的全部内容。 - 在 客户端 SSL 证书密钥 字段中,粘贴您之前生成的
client.key
文件的全部内容。

完成后,保存并应用设置。
在 Agent 策略中选择 Logstash 输出
编辑Logstash 现在正在侦听来自 Elastic Agent 的事件,但事件尚未流式传输到 Elasticsearch。您需要在 Agent 策略中选择 Logstash 输出。您可以编辑现有策略或创建新策略
-
在 Kibana 中,转到 Fleet > Agent 策略,然后创建新的 Agent 策略或单击现有策略以进行编辑
- 要更改新策略中的输出设置,请单击 创建 Agent 策略,然后展开 高级选项。
- 要更改现有策略中的输出设置,请单击该策略以进行编辑,然后单击 设置。
-
设置 集成输出 和(可选)Agent 监控输出 以使用您之前创建的 Logstash 输出。您可能需要向下滚动才能看到这些选项
- 保存您的更改。
注册到 Agent 策略的任何 Elastic Agent 都将开始通过 Logstash 将数据发送到 Elasticsearch。如果您没有任何已安装的 Elastic Agent 注册到 Agent 策略,请立即执行此操作。
当 Elastic Agent 更新到新策略并通过安全连接连接到 Logstash 时,可能会有轻微的延迟。
测试连接
编辑要确保 Logstash 正在发送数据,请从运行 Logstash 的主机运行以下命令
curl -XGET localhost:9600/_node/stats/events
请求应返回有关传入和传出事件数量的统计信息。如果这些值为 0,请检查 Elastic Agent 日志是否存在问题。
当数据流式传输到 Elasticsearch 时,转到 可观测性,然后单击 指标 以查看有关您系统的指标。