如何通过API调用下载Kibana/Elasticsearch生成的PDF报告
Kibana PDF报告API下载操作步骤
1. 前置校验
- 先补全你拿到的下载链接前缀,格式为
http://<Kibana服务地址>:<端口>/api/.../download/xyzdrfd,确保链接完整可访问 - 确认报告已生成完成再调用下载接口,刚加入队列的报告状态为pending,此时调用会返回错误,可先调用报告状态查询接口确认状态为
completed后再执行下载操作
2. 接口必填配置
所有Kibana API调用必须包含两类信息:
- 身份认证信息,两种可选配置方式:
- 基础认证:请求头加
Authorization: Basic <base64编码的账号密码字符串>,编码内容格式为用户名:密码 - API密钥认证:请求头加
Authorization: ApiKey <你的API密钥字符串>
- 基础认证:请求头加
- 跨域校验头:所有请求必须加
kbn-xsrf: true请求头,缺少会直接返回403错误
3. wget调用示例
替换对应参数即可直接使用:
wget --content-disposition \ --header "Authorization: Basic <替换为你的base64编码账号密码>" \ --header "kbn-xsrf: true" \ "http://<Kibana服务地址>:<端口>/api/.../download/xyzdrfd" \ -O 自定义保存的报告名称.pdf
特殊场景补充参数:
- 若Kibana为HTTPS协议且使用自签名证书,可加
--no-check-certificate参数跳过证书校验 - 若不需要自动识别文件名,可去掉
--content-disposition参数,仅保留-O指定输出路径
4. 常见异常排查
- 返回401:认证信息错误,检查账号权限、认证字符串编码格式是否正确
- 返回403:缺少
kbn-xsrf头,或当前账号没有该报告的下载权限 - 返回404:报告ID无效,或报告仍在生成队列中未完成
- 返回非PDF内容:报告生成失败,可先到Kibana界面的报告管理页查看具体失败原因
内容的提问来源于stack exchange,提问作者Krishnom
相关产品推荐
相关产品推荐

