正在加载

自动生成报告

Elastic Stack 无服务器

要自动生成 PDF 和 CSV 报告,请生成一个 POST URL,然后使用 Watcher 或脚本提交 HTTP POST 请求。

创建 POST URL

创建触发报告以生成 PDF 和 CSV 报告的 POST URL。

创建 PDF 报告的 POST URL

  1. 转到 仪表板可视化库Canvas

  2. 打开您要作为报告查看的仪表板、可视化或 Canvas 工作区。

    • 如果您使用的是 仪表板可视化库,请从工具栏中单击 共享 > 导出,选择 PDF 选项,然后单击 复制 POST URL
    • 如果您使用的是 Canvas,请从工具栏中单击 共享 > PDF 报告,然后单击 高级选项 > 复制 POST URL

创建 CSV 报告的 POST URL

  1. 转到 Discover
  2. 打开您要共享的已保存的 Discover 会话。
  3. 在工具栏中,单击 共享 > 导出 > 复制 POST URL

要配置一个监视器来通过电子邮件发送报告,请在 email 操作中使用 reporting 附件类型。有关更多信息,请参阅 配置电子邮件帐户

例如,以下监视器每小时生成一个 PDF 报告并通过电子邮件发送报告

 PUT _watcher/watch/error_report {
  "trigger" : {
    "schedule": {
      "interval": "1h"
    }
  },
  "actions" : {
    "email_admin" : {
      "email": {
        "to": "'Recipient Name <recipient@example.com>'",
        "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"
                }
              }
            }
          }
        }
      }
    }
  }
}
  1. 配置至少一个电子邮件帐户以使 Watcher 能够发送电子邮件。有关更多信息,请参阅 配置电子邮件帐户
  2. POST URL 示例。您可以复制并粘贴任何报告的 URL。
  3. 可选,默认为 40
  4. 可选,默认为 15s
  5. 具有访问 Kibana 和报告功能权限的用户的用户凭据。有关更多信息,请参阅 配置报告
注意

报告仅作为电子邮件附件类型与 Watcher 集成。

报告生成 URL 可能包含日期数学表达式,导致监视器因 parse_exception 而失败。为避免监视器失败,请从日期数学表达式中删除花括号 { } 并对字符进行 URL 编码。例如,...(range:(%27@timestamp%27:(gte:now-15m%2Fd,lte:now%2Fd))))...

有关配置监视器的更多信息,请参阅 Watcher 的工作原理

要从脚本自动生成报告,请向 POST URL 发出请求。该请求返回一个 JSON,其中包含一个具有 URL 的 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=...'
  1. 必需的 POST 方法。
  2. 具有访问 Kibana 和报告功能权限的用户的用户凭据。
  3. 所有对 Kibana 的 POST 请求都需要的 kbn-xsrf 标头。有关更多信息,请参阅 API 请求标头
  4. 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
  }
}
  1. Kibana 主机上用于下载报告的相对路径。
  2. (未包含在示例中)报告作业的内部表示形式,位于 .reporting-* 存储中。

生成报告的请求的响应有效负载包括下载报告的路径。 下载报告的 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 > 报告中找到。

如果您在升级 Kibana 后遇到已弃用的报告 URL 的问题,请为您的报告重新生成 POST URL。

  • 仪表板报告:/api/reporting/generate/dashboard/<dashboard-id>
  • 可视化库报告:/api/reporting/generate/visualization/<visualization-id>
  • Discover 报告:/api/reporting/generate/search/<discover-session-id>
重要提示

在早期版本的 Kibana 中,您可以使用 &sync 参数附加到报告 URL,该 URL 将保持请求打开状态,直到完全生成文档为止。 现在不支持 &sync 参数。 如果您在 Watcher 中使用 &sync 参数,则必须更新该参数。

© . All rights reserved.