在 Kibana 中配置报告
编辑在 Kibana 中配置报告
编辑Kibana PNG/PDF 报告使用无头 Chromium 的自定义二进制文件,支持附带特殊注意事项
- 该功能需要特殊的操作系统依赖项,这些依赖项可能不适用于所有 Linux 发行版和配置。
- 它受限于系统资源配置,例如文件描述符数量、允许的进程以及进程类型。
- 不支持处于生命周期结束阶段的 Linux 版本。
- 不支持使用 SELinux 或 fapolicyd 的 Linux 系统。
在生产环境中升级 Kibana 之前,我们建议您在预生产环境中测试屏幕截图用例,以确保您的主机支持我们最新的 Chromium 构建版本。为了获得最可靠的 PDF/PNG 报告功能配置,请考虑使用 Docker 安装 Kibana,或者使用 Elastic Cloud。
为了安全起见,您需要授予用户访问报告功能的权限,并使用 TLS/SSL 加密保护报告端点。此外,您可以在操作系统中安装图形包,以使 Kibana 服务器具有屏幕截图功能。
授予用户访问报告的权限
编辑启用安全性后,您可以使用 Kibana 应用程序权限 授予用户访问报告功能的权限,这允许您创建自定义角色来控制用户生成报告的空间和应用程序。
-
在报告中启用应用程序权限。要启用,请在
kibana.yml
中关闭默认的用户访问控制功能xpack.reporting.roles.enabled: false
如果您使用默认设置,仍然可以创建授予报告权限的自定义角色。默认角色是
reporting_user
。此行为正在被弃用,并且不允许对报告功能进行应用程序级别的访问控制,也不允许 API 密钥或身份验证令牌授权报告生成。有关已弃用访问控制功能的信息和注意事项,请参阅报告安全设置。 -
创建报告角色。
- 使用导航菜单或 全局搜索字段,转到角色管理页面。
- 单击创建角色。
-
指定角色设置。
- 输入角色名称。例如,
custom_reporting_user
。 -
指定索引和权限。
对数据的访问是索引级别的权限。对于每个包含要包含在报告中的数据的索引,添加一行,然后为每个索引赋予
read
和view_index_metadata
权限。如果您使用索引别名,则还必须向底层索引授予
read
和view_index_metadata
权限才能生成 CSV 报告。有关更多信息,请参阅 安全权限。
- 输入角色名称。例如,
-
添加 Kibana 权限。
- 单击添加 Kibana 权限。
- 选择一个或多个空间。
- 单击自定义,然后单击分析。
-
对于每个应用程序,选择全部,或者要自定义权限,选择读取和自定义子功能权限。
如果您拥有基本许可证,则子功能权限不可用。有关详细信息,请查看使用基本许可证授予用户访问权限。
如果应用程序功能的报告选项不可用,并且集群许可证高于基本许可证,请联系您的管理员,或检查 kibana.yml 中是否将
xpack.reporting.roles.enabled
设置为false
。 - 单击添加 Kibana 权限。
- 单击创建角色。
-
将报告角色分配给用户。
- 使用导航菜单或全局搜索字段,转到用户管理页面。
- 选择要分配报告角色的用户。
- 从角色下拉列表中,选择custom_reporting_user。
- 单击更新用户。
授予生成报告的权限还会授予用户在堆栈管理 > 报告中查看其报告的权限。用户只能访问他们自己的报告。
使用角色 API 授予访问权限
编辑在报告中启用 Kibana 应用程序权限后,您还可以使用 角色 API 来授予对报告功能的访问权限,使用全部权限或子功能权限。
此 API 请求需要针对 Kibana API 端点运行。
PUT <kibana host>:<port>/api/security/role/custom_reporting_user { "elasticsearch": { "cluster": [], "indices": [], "run_as": [] }, "kibana": [{ "spaces": ["*"], "base": [], "feature": { "dashboard": ["generate_report", "download_csv_report"], "discover": ["generate_report"], "canvas": ["generate_report"], "visualize": ["generate_report"] } }] }
授予在仪表板中生成 PNG 和 PDF 报告的权限。 |
|
授予从仪表板中保存的搜索面板生成 CSV 报告的权限。 |
|
授予从发现中保存的搜索生成 CSV 报告的权限。 |
|
授予在画布中生成 PDF 报告的权限。 |
|
授予在可视化库中生成 PNG 和 PDF 报告的权限。 |
使用基本许可证授予用户访问权限
编辑使用基本许可证,您可以使用自定义角色授予用户通过 Kibana 应用程序权限访问报告功能的权限。但是,使用基本许可证时,子功能权限不可用。创建角色,然后为用户可以创建报告的应用程序选择 全部 权限。
使用基本许可证,子功能应用程序权限不可用,但是您可以使用 角色 API 来授予对 CSV 报告功能的访问权限
PUT localhost:5601/api/security/role/custom_reporting_user { "elasticsearch": { "cluster": [], "indices": [], "run_as": [] }, "kibana": [ { "base": [], "feature": { "dashboard": [ "all" ], "discover": [ "all" ], }, "spaces": [ "*" ] } ], "metadata": {} // optional }
使用外部提供程序授予访问权限
编辑如果您使用的是外部身份提供程序(例如 LDAP 或 Active Directory),则可以将角色分配给单个用户或用户组。角色映射在 config/role_mapping.yml
中配置。
例如,将 kibana_admin
和 reporting_user
角色分配给 Bill Murray 用户
kibana_admin: - "cn=Bill Murray,dc=example,dc=com" reporting_user: - "cn=Bill Murray,dc=example,dc=com"
保护报告端点
编辑要使用 Watcher 自动生成报告,您必须配置 Watcher 以信任 Kibana 服务器证书。
- 在您的 Elasticsearch 集群上启用 Elastic Stack 安全功能。有关更多信息,请参阅 安全入门。
- 为 Kibana 服务器配置 TLS/SSL 加密。有关更多信息,请参阅 在 Kibana 中加密 TLS 通信。
-
在
elasticsearch.yml
中指定 Kibana 服务器 CA 证书链如果您使用自己的 CA 签署 Kibana 服务器证书,则需要在 Elasticsearch 中指定 CA 证书链,以便在 Watcher 和 Kibana 之间的 TLS 连接中正确建立信任。如果您的 CA 证书链包含在 PKCS #12 信任存储中,请按如下方式指定它
xpack.http.ssl.truststore.path: "/path/to/your/truststore.p12" xpack.http.ssl.truststore.type: "PKCS12" xpack.http.ssl.truststore.password: "optional decryption password"
否则,如果您的 CA 证书链采用 PEM 格式,请按如下方式指定它
xpack.http.ssl.certificate_authorities: ["/path/to/your/cacert1.pem", "/path/to/your/cacert2.pem"]
有关更多信息,请参阅 Watcher HTTP TLS/SSL 设置。
-
添加一个或多个有权访问报告功能的用户。
一旦您为 Kibana 启用了 SSL,所有对报告端点的请求都必须包含有效的凭据。
有关共享报告、直接链接等更多信息,请参阅报告和共享。
安装无头浏览器的依赖项
编辑如果使用 PNG/PDF 报告功能,请确保 Kibana 服务器操作系统已为该发行版安装了适当的软件包。
如果您使用 RHEL 操作系统,请安装以下软件包
-
xorg-x11-fonts-100dpi
-
xorg-x11-fonts-75dpi
-
xorg-x11-utils
-
xorg-x11-fonts-cyrillic
-
xorg-x11-fonts-Type1
-
xorg-x11-fonts-misc
-
vlgothic-fonts
-
fontconfig
-
freetype
如果您使用的是 Ubuntu/Debian 系统,请安装以下软件包
-
fonts-liberation
-
libfontconfig1
-
libnss3
用于 {reporting-features} 的屏幕截图插件具有内置实用程序来检查常见问题,例如缺少依赖项。有关更多信息,请参阅报告诊断。
为无头浏览器设置 server.host
编辑如果在生产环境中使用 PNG/PDF 报告功能,建议在 kibana.yml
配置文件中使用 server.host: 0.0.0.0
的设置。这样可以允许用于 PDF/PNG 报告的无头浏览器通过本地接口访问 Kibana,同时也可以允许 Kibana 服务器监听面向外的网络接口,因为它使得 Kibana 服务器可以从机器上的任何网络接口访问。请确保没有防火墙规则或其他路由规则阻止本地服务访问此地址。