Reporting production considerations

edit

To generate reports, Kibana uses the Chromium web browser, which runs on the server in headless mode. Chromium is an open-source project not related to Elastic, and is embedded into Kibana. Chromium may require additional OS dependencies to run properly.

Chromium is not embedded into Kibana for the Darwin (Mac OS) architecture. When running on Darwin, Reporting will download Chromium into the proper area of the Kibana installation path the first time the server starts. To separately download and install the browser, see Manually install the Chromium browser for Darwin.

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 because 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.