自动生成报表
编辑自动生成报表
编辑要自动生成 PDF 和 CSV 报表,请生成一个 POST URL,然后使用 Watcher 或脚本提交 HTTP POST
请求。
创建 POST URL
编辑创建用于触发生成 PDF 和 CSV 报表的 POST URL。
创建 PDF 报表的 POST URL
- 转到 仪表盘、可视化库 或 画布。
-
打开要以报表形式查看的仪表盘、可视化或 画布 工作区。
- 如果您使用的是 仪表盘 或 可视化库,请从工具栏中单击 共享 > 导出,选择 PDF 选项,然后单击 复制 POST URL。
- 如果您使用的是 画布,请从工具栏中单击 共享 > PDF 报表,然后单击 高级选项 > 复制 POST URL。
创建 CSV 报表的 POST URL
- 转到 发现。
- 打开要共享的已保存搜索。
- 在工具栏中,单击 共享 > 导出 > 复制 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/printablePdfV2?jobParams=...", "retries":40, "interval":"15s", "auth":{ "basic":{ "username":"elastic", "password":"changeme" } } } } } } } } }
配置至少一个电子邮件帐户,以使 Watcher 能够发送电子邮件。有关更多信息,请参阅配置电子邮件帐户。 |
|
POST URL 示例。您可以复制并粘贴任何报表的 URL。 |
|
可选,默认为 |
|
可选,默认为 |
|
具有访问 Kibana 和报表功能权限的用户的用户凭据。有关更多信息,请参阅配置报表。 |
报表仅作为电子邮件附件类型与 Watcher 集成。
报表生成 URL 可能包含导致 Watch 出现 parse_exception
错误的日期数学表达式。为避免 Watch 失败,请从日期数学表达式中删除花括号 {
}
并对 URL 字符进行 URL 编码。例如,...(range:(%27@timestamp%27:(gte:now-15m%2Fd,lte:now%2Fd))))...
有关配置 Watch 的更多信息,请参阅Watcher 的工作原理。
使用脚本
编辑要从脚本自动生成报表,请向 POST
URL 发出请求。该请求返回一个 JSON,其中包含一个 path
属性,您可以使用该属性的 URL 下载报表。在 HTTP 请求中使用 GET
方法来下载报表。
使用 cURL 将 CSV 报表生成排队,使用 POST
URL
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
(Bad Request):当向 POST URL 发送请求时,如果您不使用POST
作为 HTTP 方法,或者如果您的请求缺少kbn-xsrf
标头,Kibana 将为该请求返回400
状态响应。 -
503
(Service Unavailable):当使用path
请求下载时,如果报表生成尚未完成,您将收到503
状态响应。该响应将包括Retry-After
标头。您可以设置脚本以等待Retry-After
标头中的秒数,然后根据需要重复此操作,直到报表完成。 -
500
(Internal Server Error):当使用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,该 URL 会使请求保持打开状态,直到文档完全生成。现在不支持 &sync
参数。如果您在 Watcher 中使用 &sync
参数,则必须更新该参数。