在 Kibana 中配置报表
编辑在 Kibana 中配置报表编辑
出于安全考虑,您需要授予用户访问报表功能的权限,并使用 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 权限。
- 选择一个或多个 空间。
- 单击 自定义,然后单击 分析。
-
对于每个应用程序,选择 全部,或者要自定义权限,请选择 读取 和 自定义子功能权限。
如果您有基本许可证,则子功能权限不可用。有关详细信息,请查看 使用基本许可证授予用户访问权限。
如果应用程序功能的 报表 选项不可用,并且集群许可证高于基本许可证,请联系您的管理员,或 检查
xpack.reporting.roles.enabled
是否在 kibana.yml 中设置为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 操作系统,请安装以下软件包。
-
ipa-gothic-fonts
-
xorg-x11-fonts-100dpi
-
xorg-x11-fonts-75dpi
-
xorg-x11-utils
-
xorg-x11-fonts-cyrillic
-
xorg-x11-fonts-Type1
-
xorg-x11-fonts-misc
-
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 服务器从机器上的任何网络接口都可以访问。确保没有防火墙规则或其他路由规则阻止本地服务访问此地址。
为了获得最可靠的 PDF/PNG 报告功能配置,请考虑使用 Docker 安装 Kibana,或使用 Elastic Cloud。