将仪表板从 Kibana 5.x 迁移到 6.x
本节旨在帮助社区 Beats 将 Kibana 5.x 仪表板迁移到 6.x 仪表板。
在 Kibana 5.x 中,已保存的仪表板由多个 JSON 文件组成,每个仪表板、搜索、可视化和索引模式各一个。要在 Kibana 中导入仪表板,不仅需要加载包含仪表板的 JSON 文件,还需要加载其所有依赖项(搜索、可视化)。
从 Kibana 6.0 开始,仪表板默认通过 Kibana API 加载。在这种情况下,已保存的仪表板由单个 JSON 文件组成,其中不仅包含仪表板内容,还包含其所有依赖项。
由于 Kibana 5.x 的仪表板和索引模式格式与 Kibana 6.x 的不同,它们被放置在不同的目录中。根据 Kibana 版本,会加载 5.x 或 6.x 仪表板。
Kibana 5.x 仪表板放置在包含以下目录的 5.x 目录下
- search
- visualization
- dashboard
- index-pattern
Kibana 6.x 及更高版本的仪表板放置在包含以下目录的 default 目录下
- dashboard
- index-pattern
请确保在运行以下命令之前已创建 5.x 和 default 目录。
要将 Kibana 5.x 仪表板迁移到 Kibana 6.0 及更高版本,您可以将仪表板导入 Kibana 5.6,然后使用 Beats 6.0 版本导出它们。
- 启动 Kibana 5.6
- 使用 Beats 6.0 版本导入 Kibana 5.x 仪表板。
在导入仪表板之前,请确保在 Beat 目录中运行了 make update,这将更新 _meta/kibana 目录。它会从 fields.yml 文件生成索引模式 (index-pattern),并将其放置在 5.x/index-pattern 和 default/index-pattern 目录下。对于 Metricbeat、Filebeat 和 Auditbeat,它会将所有模块的仪表板收集到 _meta/kibana 目录中。
make update
然后加载所有 Beat 的仪表板。例如,使用 Kibana API 将 Metricbeat rabbitmq 仪表板连同 Metricbeat 索引模式一起加载到 Kibana 5.6 中
make update
./metricbeat setup -E setup.dashboards.directory=_meta/kibana
- 使用 Beats 6.0 版本导出仪表板。
您可以使用 export_dashboards.go 应用程序通过 Kibana API 导出仪表板。
例如,要导出 Metricbeat rabbitmq 仪表板
cd beats/metricbeat
go run ../dev-tools/cmd/dashboards/export_dashboards.go -dashboards Metricbeat-Rabbitmq -output
module/rabbitmq/_meta/kibana/default/Metricbeat-Rabbitmq.json
Metricbeat-Rabbitmq是您要导出的仪表板的 ID。
您可以从 Kibana 中仪表板的 URL 获取仪表板 ID。根据创建仪表板时的 Kibana 版本,ID 由名称或随机字符组成,并可能由 - 分隔。
此命令创建一个包含仪表板以及搜索、可视化等所有依赖项的单个 JSON 文件 (Metricbeat-Rabbitmq.JSON)。输出文件的名称格式为:<Beat 名称>-<模块名称>.json。
从 Beats 6.0.0 开始,您可以为每个模块或整个 Beat 创建一个包含所有仪表板的 yml 文件。以下是 Metricbeat 中 system 模块的 module.yml 文件示例。
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-docker-overview.json
- 仪表板 ID。
- 仪表板在磁盘上保存的 JSON 文件。
使用该 yml 文件,您可以使用单个命令导出单个模块或整个 Beat 的所有仪表板
cd metricbeat/module/system
go run ../../../dev-tools/cmd/dashboards/export_dashboards.go -yml module.yml