Configuring Reporting

The default settings enable Reporting to work out of the box in most cases. However, you can configure the following options in kibana.yml to control how Reporting accesses Kibana, fine-tune the behavior of the background Reporting jobs, and control how many reports can be generated at one time.

Reporting Settings

reporting.encryptionKey
A unique string used for encryption to protect sensitive information, like headers.
Note

If you are load balancing across multiple Kibana instances, they need to have the same reporting encryption key. Otherwise, report generation will fail if a report is requested through one instance and another instance picks up the job from the report queue.

Kibana Server Settings

Reporting uses the Kibana interface to generate reports. If you use a proxy in your stack or otherwise change how you access Kibana, you might need to configure the following settings.

reporting.kibanaApp
The root path used to access Kibana, defaults to /app/kibana.
reporting.kibanaServer.port
The port used to access Kibana, if different than the server.port value.
reporting.kibanaServer.protocol
The protocol used to access Kibana, typically http or https.
reporting.kibanaServer.hostname
The hostname used to access Kibana, if different than the server.name value.

Background Job Settings

Reporting generates reports in the background and jobs are coordinated using documents in Elasticsearch. Depending on how often you generate reports and the overall number of reports, you might need to adjust the following settings.

reporting.queue.indexInterval
How often the index that stores reporting jobs rolls over to a new index. Valid values are year, month, week, day, and hour. Defaults to week.
reporting.queue.pollInterval
How often idle workers poll the index for pending jobs. Defaults to 3000 (3 seconds).
reporting.queue.timeout
How long each worker has to produce a report. If your machine is slow or under constant heavy load, you might need to increase this timeout. Specified in milliseconds. Defaults to 30000 (30 seconds).
reporting.queue.syncSocketTimeout
The maximum amount of time the socket should be held open for synchronous document requests. Defaults to 300000 (5 minutes).

Capture Settings

Reporting works by grabbing screenshots from Kibana. These settings are used to control various aspects of the capturing process.

reporting.capture.concurrency
The number of concurrent capture processes to run. Note that jobs are CPU bound, and exceeding the number of cores available on the machine will likely be very slow and might cause issues. Defaults to the number of cores on the machine.
reporting.capture.loadDelay
The amount of time to wait for Kibana to finish rendering the visualization before taking a screenshot. Raising this value will increase report generation time, but may be required on slower machines. If you are seeing empty images instead of visualizations in your reports, try increasing this value. Defaults to 3000 (3 seconds).
reporting.capture.timeout
The maximum amount of time to wait for things to render in Kibana when capturing screenshots. Defaults to 6000 (6 seconds).

Advanced Settings

reporting.roles.allow
Specifies the roles that are allowed to access reporting. Defaults to [ "admin", "reporting_user" ]