配置Filebeat Httpjson集成遇x509证书错误:求修复/忽略方案
问题描述
配置Filebeat的Httpjson输入(即Custom API集成),目标端点为证书有效的https://httpbin.org/get,所用Elastic栈组件(Elasticsearch、Kibana、Elastic Agent)均为8.9.0版本且运行在容器环境中。
当前配置如下:
filebeat.inputs: - type: httpjson request.method: GET interval: 1m request.url: https://httpbin.org/get
Elastic Agent日志中出现证书验证错误:
Error while processing http request: failed to execute rf.collectResponse: failed to execute http client.Do: failed to read http.response.body: Get "https://httpbin.org/get": x509: certificate signed by unknown authority
以下是修复或临时忽略该错误的方法:
解决方案
一、正确信任证书(生产环境推荐)
容器环境中默认可能缺少根CA证书,导致无法识别httpbin.org的合法证书,可通过以下两种方式解决:
1. 挂载主机根CA证书到容器
将主机的根CA目录(通常为/etc/ssl/certs)以只读方式挂载到Elastic Agent容器的对应路径,启动容器时添加挂载参数:
-v /etc/ssl/certs:/etc/ssl/certs:ro
这样容器内的Filebeat进程就能使用主机的根CA证书完成目标站点的证书验证。
2. 在Httpjson配置中指定CA证书文件
下载httpbin.org的根CA证书文件后,在配置中通过request.ssl.certificate_authorities字段指定证书路径:
filebeat.inputs: - type: httpjson request.method: GET interval: 1m request.url: https://httpbin.org/get request.ssl.certificate_authorities: ["/usr/share/elastic-agent/certs/root-ca.crt"]
需确保证书文件已挂载到Elastic Agent容器内的指定路径。
二、跳过证书验证(仅测试环境使用)
测试场景下可临时关闭证书验证,但此操作会引入安全风险,配置方式如下:
filebeat.inputs: - type: httpjson request.method: GET interval: 1m request.url: https://httpbin.org/get request.ssl.verification_mode: none
内容的提问来源于stack exchange,提问作者daggett
相关产品推荐
相关产品推荐

