通过 REST API 管理 Kibana 保存的对象(仪表板、Lens 可视化等)。适用于:① 以编程方式创建、更新、删除仪表板和 Lens 可视化。
Kibana 保存对象 API 技能
功能概述
Kibana 保存对象 API 技能是一项面向实际任务的技能,主要用于管理对象 包括仪表板、 连线可视化等 Kibana 实体, 可通过 REST API.;Base URL.;
核心要点
- For Omni- Monitor: http://192.168.99.43/api。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Kibana Saved Objects API 技能
通过 REST API 管理 Kibana Saved Objects,包括仪表板(dashboard)、Lens 可视化及其他 Kibana 实体。
基础 URL
http:///api/saved_objects
Omni-Monitor 示例:http://192.168.99.43/api/saved_objects
必需请求头:kbn-xsrf: true
核心端点
1. 创建 Saved Object
POST /api/saved_objects/
请求体:
{
"attributes": {
"title": "我的仪表板",
"description": "..."
},
"id": "可选的自定义 ID",
"references": [{"id": "...", "name": "...", "type": "index-pattern"}]
}
2. 获取 Saved Object
GET /api/saved_objects//
3. 更新 Saved Object
PUT /api/saved_objects//
请求体:
{
"attributes": {
"title": "已更新的标题"
},
"references": [...]
}
4. 删除 Saved Object
DELETE /api/saved_objects//
5. 批量获取(Bulk Get)
POST /api/saved_objects/_bulk_get
请求体:
{
"objects": [
{"type": "dashboard", "id": "abc123"},
{"type": "lens", "id": "def456"}
]
}
6. 批量创建(Bulk Create)
POST /api/saved_objects/_bulk_create
请求体:
{
"objects": [
{"type": "dashboard", "id": "...", "attributes": {...}},
{"type": "lens", "id": "...", "attributes": {...}}
]
}
7. 导出 Saved Objects
POST /api/saved_objects/_export
请求体:
{
"objects": [
{"type": "dashboard", "id": "abc123"},
{"type": "lens", "id": "def456"}
]
}
返回值: Saved Objects 的 NDJSON 流
8. 导入 Saved Objects
POST /api/saved_objects/_import?overwrite=true
Content-Type:multipart/form-data
表单字段:file = NDJSON 文件
9. 查询(Find / Search)Saved Objects
POST /api/saved_objects/_find
请求体:
{
"type": "dashboard",
"search": "标题关键词",
"searchFields": ["title", "description"],
"page": 1,
"perPage": 20
}
常见对象类型
| 类型 | 说明 |
|---|---|
dashboard |
Kibana 仪表板 |
lens |
Lens 可视化 |
visualization |
传统可视化(如 TSVB 等) |
index-pattern |
数据视图(index patterns) |
search |
已保存的搜索 |
map |
地图可视化 |
tag |
用于组织的标签 |
canvas-workpad |
Canvas 工作区 |
引用系统(References System)
引用(References)用于关联不同对象。例如,一个仪表板面板(Lens)会引用:
- 其所使用的
index-pattern(即数据视图) - 其所属的父级仪表板(如有)
引用格式示例:
{
"id": "b58d25c5-c05c-47be-a6cb-4073ef478a8f",
"name": "indexpattern-datasource-layer-aca264a7-bf68-47b3-af63-db1e67fe0646",
"type": "index-pattern"
}
带引用创建对象示例:
{
"type": "lens",
"attributes": {
"title": "CPU 使用率",
"state": {
"datasourceStates": {...},
"visualization": {...}
}
},
"references": [
{"id": "b58d25c5-c05c-47be-a6cb-4073ef478a8f", "name": "indexpattern-datasource-layer-xxx", "type": "index-pattern"}
]
}
仪表板结构(Dashboard Structure)
仪表板 attributes 字段示例:
{
"title": "仪表板名称",
"description": "可选描述",
"panelsJSON": "[{"type":"lens","gridData":{...},"embeddableConfig":{...}}]",
"optionsJSON": "{"useMargins":true,"syncColors":false,"hidePanelTitles":false}",
"timeRestore": true,
"timeTo": "now",
"timeFrom": "now-24h",
"refreshInterval": {
"pause": false,
"value": 300000
}
}
Lens 对象结构
Lens 是 Kibana 的新一代可视化工具。其关键结构如下:
{
"type": "lens",
"attributes": {
"title": "指标标题",
"state": {
"datasourceStates": {
"formBased": {
"layers": {
"": {
"columns": {
"": {
"label": "指标标签",
"dataType": "number",
"operationType": "count|average|sum|max|min",
"sourceField": "field.name",
"isBucketed": false,
"scale": "ratio"
}
},
"columnOrder": [""],
"incompleteColumns": {}
}
}
}
},
"visualization": {
"layerId": "",
"layerType": "data",
"metricAccessor": ""
}
}
},
"references": [
{"id": "", "name": "indexpattern-datasource-layer-", "type": "index-pattern"}
]
}
lnsMetric(单指标)结构:
{
"layerId": "...",
"layerType": "data",
"metricAccessor": ""
}
lnsXY(折线图/柱状图/面积图)结构:
{
"layerId": "...",
"layerType": "data",
"layers": [{
"layerId": "...",
"accessors": [""],
"position": "top",
"seriesType": "bar|line|area",
"showGridlines": false,
"xAccessor": ""
}]
}
重要规则
- 切勿将
__records___用作 sourceField → 否则将导致 “Field not found” 错误 - 文本字段在聚合时必须使用
.keyword后缀(例如:host.keyword) - 引用名称必须符合规范格式 → 必须为
indexpattern-datasource-layer- - Lens 中的 layerId 和 accessor UUID 在每个可视化中必须唯一
NDJSON 导入/导出格式
导出结果示例:
{"attributes":{"title":"Dash 1"...},"id":"abc","type":"dashboard","references":[...]}
{"attributes":{"title":"Lens 1"...},"id":"def","type":"lens","references":[...]}
导入要求:使用相同格式;添加参数 overwrite=true 将覆盖已有对象。
脚本
| 脚本 | 用途 |
|---|---|
list_dashboards.py |
列出所有仪表板 |
export_dashboard.py |
导出指定仪表板及其依赖项 |
import_ndjson.py |
将 NDJSON 文件导入 Kibana |
create_lens_metric.py |
创建一个简单的 metric 类型 Lens 可视化 |
参见
- kibana-data-views — 管理数据视图(index patterns)
- kibana-lens-builder — 为监控场景生成 Lens 可视化
故障排查
“Cannot read properties of undefined (reading 'indexpattern')”
原因:仪表板或 Lens 引用了不存在的数据视图(data view)。
解决方法:
- 列出全部数据视图:
GET /api/data_views - 确认所引用的数据视图 ID 是否存在
- 如缺失,使用 kibana-data-views 重建对应数据视图
“Field not found” 错误
原因:对文本字段执行聚合操作时未使用 .keyword 后缀。
解决方法:应使用 host.keyword 而非 host,使用 metric_type.keyword 而非 metric_type
Saved Object 损坏(GET 返回 404,但在列表中可见)
解决方法:
- 删除损坏的对象:
DELETE /api/saved_objects// - 使用正确数据重新创建该对象
热门AI工具
相关专题
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
PHP漏洞聚合专题,持续整理PHP最新高危漏洞、CVE安全预警、受影响版本、自查命令及修复方案,覆盖PHP-FPM、Docker、Ubuntu与Linux服务器环境,帮助开发者快速完成漏洞排查、版本升级和安全加固。
0
2026.10.22
热门下载
相关下载
精品课程
最新文章





