自动生成报表
编辑自动生成报表编辑
要自动生成 PDF 和 CSV 报表,请生成一个 POST URL,然后使用 Watcher 或脚本提交 HTTP POST
请求。
创建 POST URL编辑
创建触发报表生成 PDF 和 CSV 报表的 POST URL。
要创建 PDF 报表的 POST URL
- 打开主菜单,然后单击 仪表盘、可视化库 或 画布。
- 打开要作为报表查看的仪表盘、可视化或 画布 工作区。
-
从工具栏中,单击 共享 > PDF 报表,然后选择一个选项
- 如果您使用的是 仪表盘 或 可视化库,请单击 复制 POST URL。
- 如果您使用的是 画布,请单击 高级选项 > 复制 POST URL。
要创建 CSV 报表的 POST URL
- 打开主菜单,然后单击 发现。
- 打开要共享的已保存搜索。
- 在工具栏中,单击 共享 > CSV 报表 > 复制 POST URL。
使用 Watcher编辑
要配置一个 watch 以通过电子邮件发送报表,请在 email
操作中使用 reporting
附件类型。有关更多信息,请参阅 配置电子邮件帐户。
例如,以下 watch 每小时生成一个 PDF 报表并通过电子邮件发送报表
PUT _watcher/watch/error_report { "trigger" : { "schedule": { "interval": "1h" } }, "actions" : { "email_admin" : { "email": { "to": "'Recipient Name <[email protected]>'", "subject": "Error Monitoring Report", "attachments" : { "error_report.pdf" : { "reporting" : { "url": "http://0.0.0.0:5601/api/reporting/generate/printablePdf?jobParams=...", "retries":40, "interval":"15s", "auth":{ "basic":{ "username":"elastic", "password":"changeme" } } } } } } } } }
配置至少一个电子邮件帐户以使 Watcher 能够发送电子邮件。有关更多信息,请参阅 配置电子邮件帐户。 |
|
一个示例 POST URL。您可以复制和粘贴任何报表的 URL。 |
|
可选,默认值为 |
|
可选,默认值为 |
|
具有访问 Kibana 和报表功能权限的用户的用户凭据。有关更多信息,请参阅 配置报表。 |
报表 仅作为电子邮件附件类型与 Watcher 集成。
报表生成 URL 可能包含会导致 watch 失败并出现 parse_exception
的日期数学表达式。为了避免 watch 失败,请从日期数学表达式中删除花括号 {
}
并对字符进行 URL 编码。例如,...(range:(%27@timestamp%27:(gte:now-15m%2Fd,lte:now%2Fd))))...
有关配置 watch 的更多信息,请参阅 Watcher 的工作原理。
使用脚本编辑
要从脚本自动生成报表,请向 POST
URL 发送请求。该请求将返回一个 JSON,其中包含一个 path
属性,该属性包含用于下载报表的 URL。在 HTTP 请求中使用 GET
方法下载报表。
要使用 cURL 通过 POST
URL 排队 CSV 报表生成
curl \ -XPOST \ -u elastic \ -H 'kbn-xsrf: true' \ 'http://0.0.0.0:5601/api/reporting/generate/csv?jobParams=...'
必需的 |
|
具有访问 Kibana 和报表功能权限的用户的用户凭据。 |
|
对 Kibana 的所有 |
|
POST URL。您可以复制和粘贴任何报表的 URL。 |
成功排队报表的示例响应
{ "path": "/api/reporting/jobs/download/jxzaofkc0ykpf4062305t068", "job": { "id": "jxzaofkc0ykpf4062305t068", "index": ".reporting-2018.11.11", "jobtype": "csv", "created_by": "elastic", "payload": ..., "timeout": 120000, "max_attempts": 3 } }
HTTP 响应代码编辑
报表 API 使用 HTTP 响应代码提供反馈。在自动化中,这有助于外部系统跟踪各种可能的作业状态
-
200
(OK): 如预期,Kibana 在对排队或下载报表的成功请求的响应中返回200
状态。Kibana 将通过 POST URL 成功排队报表作业时发送
200
响应状态。即使作业在稍后以某种方式失败,这也是正确的,因为报表生成是异步发生的,与排队无关。 -
400
(错误请求): 当向 POST URL 发送请求时,如果您没有使用POST
作为 HTTP 方法,或者您的请求缺少kbn-xsrf
标头,Kibana 将为该请求返回代码400
状态响应。 -
503
(服务不可用): 当使用path
请求下载时,如果报表生成尚未完成,您将收到503
状态响应。该响应将包含一个Retry-After
标头。您可以将脚本设置为等待Retry-After
标头中的秒数,然后根据需要重复,直到报表完成。 -
500
(内部服务器错误): 当使用path
请求下载时,如果由于生成报表时出错而导致报表不可用,您将收到500
状态响应。有关更多信息,请访问 管理 > Kibana > 报表。
已弃用的报表 URL编辑
如果您在升级 Kibana 后遇到已弃用的报表 URL 问题,请重新生成报表的 POST URL。
-
仪表盘 报表:
/api/reporting/generate/dashboard/<dashboard-id>
-
可视化库 报表:
/api/reporting/generate/visualization/<visualization-id>
-
发现 已保存搜索报表:
/api/reporting/generate/search/<saved-search-id>
重要提示:在早期的 Kibana 版本中,您可以使用 &sync
参数附加到保持请求打开直到文档完全生成的报表 URL。现在不支持 &sync
参数。如果您在 Watcher 中使用 &sync
参数,则必须更新该参数。