报表生成生产注意事项

编辑

为了生成报表,Kibana 使用 Chromium 网络浏览器,该浏览器在服务器上以无头模式运行。Chromium 是一个与 Elastic 无关的开源项目,并嵌入到 Kibana 中。Chromium 可能需要额外的操作系统依赖项才能正常运行。

对于 Darwin (Mac OS) 架构,Chromium 没有嵌入到 Kibana 中。在 Darwin 上运行时,报表功能会在服务器首次启动时将 Chromium 下载到 Kibana 安装路径的正确区域。要单独下载并安装浏览器,请参阅为 Darwin 手动安装 Chromium 浏览器

Chromium 沙箱

编辑

为了增加一层安全性,请使用沙箱。Chromium 沙箱使用操作系统提供的机制来确保代码执行不会对计算机进行持久性更改或访问机密信息。针对每个操作系统,具体的沙箱技术各不相同。

Linux 沙箱

编辑

Linux 沙箱依赖于用户命名空间,该命名空间是在 3.8 Linux 内核中引入的。但是,许多发行版不支持或不允许非特权进程创建用户命名空间,或者它们需要 CAP_SYS_ADMIN 功能。当检测到在未启用它的系统上运行时,报表功能会自动禁用沙箱。如果不明确在 kibana.yml 中设置 xpack.screenshotting.browser.chromium.disableSandbox: false,报表功能可能会检测到无法启用它。如果它被自动禁用,您会在 Kibana 启动日志中看到以下消息: Chromium 沙箱提供额外的保护层,但您的操作系统不支持。自动设置“xpack.screenshotting.browser.chromium.disableSandbox: true”。

当检测到受支持的操作系统时,报表功能会在启动时自动启用 Chromium 沙箱。但是,如果您的内核是 3.8 或更高版本,建议在 kibana.yml 中设置 xpack.screenshotting.browser.chromium.disableSandbox: false 来显式启用沙箱。

Docker

编辑

在 Docker 容器中运行 Kibana 时,所有容器进程都在一个具有 seccomp-bpf 和 AppArmor 配置文件的用户名空间中运行,这会阻止使用 Chromium 沙箱。在这些情况下,建议禁用沙箱,因为容器实现了类似的安全性机制。