将仪表盘从 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
文件生成索引模式,并将其放置在 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 中系统模块的 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