PDF 和 PNG 报告问题排查
编辑PDF 和 PNG 报告问题排查
编辑我们建议仅使用 PNG/PDF 报告导出适量的数据。此功能提供了高层次的导出能力,但并不适用于批量导出。如果您需要导出多页图像数据,请考虑使用多个报告作业一次导出少量页面。如果导出的仪表板的截图包含大量像素,请考虑将大型仪表板拆分为较小的组件,以减少内存和 CPU 资源的使用。
为了获得最可靠的 PDF/PNG 报告功能配置,请考虑使用 Docker 安装 Kibana,或使用 Elastic Cloud。
有关常见问题的更多建议,请参阅问题排查。
报告诊断
编辑报告附带一个内置实用程序,用于尝试自动查找常见问题。当 Kibana 运行时,导航到报告列表页面,然后单击运行报告诊断。这将打开一个诊断工具,该工具会检查 Kibana 部署的各个部分,并提出任何相关的建议。
如果诊断信息未揭示问题,您可以通过使用环境变量启动 Kibana 服务器以显示其他调试日志来进一步排查问题。请参阅Puppeteer 调试日志。
网络安全服务库
编辑您必须安装网络安全服务 (NSS) 库才能使报告功能正常工作。使用 Chromium 浏览器进行报告依赖于这些库。请为您所使用的发行版安装合适的 nss 包。请参阅安装无头浏览器的依赖项。
Chromium 沙箱要求
编辑Chromium 使用基于操作系统原语构建的沙箱技术。Linux 沙箱依赖于用户命名空间,该命名空间是在 3.8 Linux 内核中引入的。但是,许多发行版默认情况下未启用用户命名空间,或者它们需要 CAP_SYS_ADMIN 功能。如果未在 Kibana 中显式禁用沙箱(基于操作系统检测或使用 xpack.screenshotting.browser.chromium.disableSandbox
设置),Chrome 将尝试启用沙箱。如果由于操作系统或权限限制而失败,Chrome 将在初始化期间崩溃。
Elastic 建议您在禁用沙箱之前研究启用非特权用户命名空间的可行性。如果是在 Docker 中运行 Kibana,则可以例外,因为容器在具有内置 seccomp/bpf 过滤器的用户命名空间中运行。
生成的报告中文本渲染不正确
编辑如果报告标签渲染为空白矩形,则表示没有可用的系统字体。请在系统上安装至少一个字体包。
如果报告缺少某些中文、日文或韩文字符,请确保安装了包含这些字符的系统字体。
数据表可视化 PDF 报告中缺少数据
编辑目前,数据表可视化存在一个已知限制,即 PDF 报告中仅显示数据行的第一页,也就是屏幕上唯一可见的数据。
连接被拒绝错误
编辑如果 PDF 或 PNG 报告由于“连接被拒绝”或“无法连接”类型的错误而无法正常工作,请确保 kibana.yml
文件使用 server.host: 0.0.0.0
的设置。此外,请验证是否有防火墙规则或其他路由规则阻止本地服务访问此地址。请在为无头浏览器设置 server.host
中了解更多信息。
文件权限
编辑请确保位于 Kibana 数据目录中的 headless_shell
二进制文件由运行 Kibana 的用户所有,该用户具有执行权限,并且(如果适用)文件系统以 exec
选项挂载。
Chromium 二进制文件位于 Kibana 安装目录中,路径为 data/headless_shell-OS_TYPE/headless_shell
。首次启用详细日志记录时,Kibana 启动时会记录完整路径。
Puppeteer 调试日志
编辑Kibana 在服务器上启动的 Chromium 浏览器由一个名为 Puppeteer 的 Chromium NodeJS 库驱动。Puppeteer 库有自己的命令行方法来生成自己的调试日志,这些日志有时会有所帮助,尤其是在确定问题是由 Kibana 还是 Chromium 引起时。了解更多调试提示。
启动 Kibana 时使用 Puppeteer 的调试方法如下所示
env DEBUG="puppeteer:*" ./bin/kibana
内部 DevTools 协议流量将通过 debug
模块在 puppeteer
命名空间下记录。
Puppeteer 日志非常详细,并且可能包含敏感信息。请小心处理生成的输出。
系统要求
编辑在 Elastic Cloud 中,大多数配置默认提供的 Kibana 实例的 RAM 为 1GB。当可视化或仪表板相对简单时(例如,单个饼图或包含少量可视化的仪表板),这对于 Kibana 报告功能来说足够了。但是,某些可视化类型会产生比其他类型更多的负载。例如,TSVB 面板有许多网络请求需要渲染。
如果 Kibana 实例没有足够的内存来运行报告,则报告将失败,并显示 Error: Page crashed!
等错误。在这种情况下,请尝试将 Kibana 实例的内存增加到 2GB。
无法连接到 Elastic Maps Service
编辑Elastic Maps Service (EMS) 是一项托管图层切片和行政边界矢量形状的服务。如果报告包含缺少底图图层或行政边界的地图,则 Kibana 服务器无权访问 EMS。有关如何将 Kibana 服务器连接到 EMS 的信息,请参阅连接到 Elastic Maps Service。
手动安装 Darwin 的 Chromium 浏览器
编辑Chromium 未嵌入到 Darwin (Mac OS) 架构的 Kibana 中。在 Darwin 上运行 Kibana 时,报告功能将在服务器首次启动时将 Chromium 下载到 Kibana 安装路径的正确区域。如果服务器无法访问互联网,您必须下载 Chromium 浏览器并将其安装到 Kibana 安装路径中。
-
下载 Chromium zip 文件
-
将 zip 文件复制到保存区域。相对于 Kibana 的根目录,路径为
-
对于 x64 系统,路径为
.chromium/x64
-
对于 ARM 系统,路径为
.chromium/arm64
-
对于 x64 系统,路径为
Kibana 启动时,它会自动从 zip 文件中提取浏览器,然后就可以用于 PNG 和 PDF 报告了。