Exporting New and Modified Beat Dashboards

edit

To export all the dashboards for any Elastic Beat or any community Beat, including any new or modified dashboards and all dependencies such as visualizations, searches, you can use the Go script export_dashboards.go from dev-tools for exporting Kibana 6.0 dashboards or later, and the Python script export_5x_dashboards.py for exporting Kibana 5.x dashboards. See the dev-tools readme for more info.

Exporting Kibana 6.0 dashboards and newer

edit

The dev-tools/cmd/export_dashboards.go script helps you export your customized Kibana 6.0 dashboards and newer. You might need to export a single dashboard or all the dashboards available for a module or Beat.

Export a single Kibana dashboard

edit

You can export a single dashboard by passing the dashboard ID in the -dashboard flag.

The dashboard ID is available in the dashboard URL. For example, in case the dashboard URL is app/kibana#/dashboard/7fea2930-478e-11e7-b1f0-cb29bac6bf8b?_g=()&_a=(description:'Overview%2..., the dashboard ID is 7fea2930-478e-11e7-b1f0-cb29bac6bf8b.

cd filebeat/module/redis/_meta/kibana/default/dashboard
go run ../../../../../../../dev-tools/cmd/dashboards/export_dashboards.go -id 7fea2930-478e-11e7-b1f0-cb29bac6bf8b -output Filebeat-redis.json

This generates the Filebeat-redis.json file that contains the dashboard for the Redis module of Filebeat, including the dependencies (visualizations and searches).

Export all module/Beat dashboards

edit

Each module should contain a module.yml file with a list of all the dashboards available for the module. For the Beats that don’t have support for modules (e.g. Packetbeat), there is a dashboards.yml file that defines all the Packetbeat dashboards.

Below, it’s an example of the module.yml file for the system module in Metricbeat:

dashboards:
- id: Metricbeat-system-overview
  file: Metricbeat-system-overview.json

- id: 79ffd6e0-faa0-11e6-947f-177f697178b8
  file: Metricbeat-host-overview.json

- id: CPU-slash-Memory-per-container
  file: Metricbeat-containers-overview.json

Each dashboard is defined by an id and the name of json file where the dashboard is saved locally.

By passing the yml file to the export_dashboards.go script, you can export all the dashboards defined:

go run dev-tools/cmd/dashboards/export_dashboards.go -yml filebeat/module/system/module.yml

Export dashboards from a Kibana Space

edit

If you are using the Kibana Spaces feature and want to export dashboards from a specific Space, pass the Space ID to the export_dashboards.go script:

go run dev-tools/cmd/dashboards/export_dashboards.go -space-id my-space [other-options]

Exporting Kibana 5.x dashboards

edit

To export only some Kibana dashboards for an Elastic Beat or community Beat, you can simply pass a regular expression to the export_dashboards.py script to match the selected Kibana dashboards.

Before running the export_dashboards.py script for the first time, you need to create an environment that contains all the required Python packages.

make python-env

For example, to export all Kibana dashboards that start with the Packetbeat name:

python ../dev-tools/cmd/dashboards/export_dashboards.py --regex Packetbeat*

To see all the available options, read the descriptions below or run:

python ../dev-tools/cmd/dashboards/export_dashboards.py -h
--url <elasticsearch_url>
The Elasticsearch URL. The default value is http://localhost:9200.
--regex <regular_expression>
Regular expression to match all the Kibana dashboards to be exported. This argument is required.
--kibana <kibana_index>
The Elasticsearch index pattern where Kibana saves its configuration. The default value is .kibana.
--dir <output_dir>
The output directory where the dashboards and all dependencies will be saved. The default value is output.

The output directory has the following structure:

output/
    index-pattern/
    dashboard/
    visualization/
    search/