Reporting production considerations

edit

To generate reports, Kibana uses a custom build of the Chromium web browser, which runs on the Kibana server in headless mode to load Kibana and capture the rendered Kibana visualizations as images. Chromium is an open-source project not related to Elastic, but the Chromium binary for Kibana has been custom-built by Elastic to make sure it works with minimal setup. The operating system that the Kibana server uses can require additional dependencies for Chromium.

Chromium sandbox

edit

For an additional layer of security, use the sandbox. The Chromium sandbox uses operating system-provided mechanisms to ensure that code execution cannot make persistent changes to the computer or access confidential information. The specific sandboxing techniques differ for each operating system.

Linux sandbox

edit

The Linux sandbox depends on user namespaces, which were introduced with the 3.8 Linux kernel. However, many distributions don’t have user namespaces enabled by default, or they require the CAP_SYS_ADMIN capability. The reporting features automatically disable the sandbox when it is running on Debian and CentOS, as additional steps are required to enable unprivileged usernamespaces. In these situations, you’ll see the following message in your Kibana startup logs: Chromium sandbox provides an additional layer of protection, but is not supported for your OS. Automatically setting 'xpack.reporting.capture.browser.chromium.disableSandbox: true'.

Reporting automatically enables the Chromium sandbox at startup when a supported OS is detected. However, if your kernel is 3.8 or newer, it’s recommended to set xpack.reporting.capture.browser.chromium.disableSandbox: false in your kibana.yml to explicitly enable usernamespaces.

Docker

edit

When running Kibana in a Docker container, all container processes are run within a usernamespace with seccomp-bpf and AppArmor profiles that prevent the Chromium sandbox from being used. In these situations, disabling the sandbox is recommended, as the container implements similar security mechanisms.