是否可以在 Kibana 中更改可视化的索引模式?
我创建了一整套可视化效果。由于某种原因,我不得不在弹性中删除该索引。我们需要创建一个新的索引模式。问题是删除索引可视化效果后将无法正常工作。我将不得不痛苦地一个接一个地重新创造它。有没有办法让我去编辑可视化,只是修改索引模式,而不是创建一个新的可视化本身。
我创建了一整套可视化效果。由于某种原因,我不得不在弹性中删除该索引。我们需要创建一个新的索引模式。问题是删除索引可视化效果后将无法正常工作。我将不得不痛苦地一个接一个地重新创造它。有没有办法让我去编辑可视化,只是修改索引模式,而不是创建一个新的可视化本身。
转至 ->->,您可以手动编辑定义。Settings
Objects
Visualizations
首先,让我们讨论一下为什么整个问题即将到来。
我的环境是:Kibana v7.0.1 / 7+
如果您创建了一个索引模式(使用 Kibana 的 GUI/网站),而不是使用 ELK/Kibana 的 Saved Objects REST-API 创建相同的索引模式(例如:使用 Curl 或一些 Python/Groovy 脚本调用 rest api 来创建索引模式),则会出现此问题。
当您使用GUI创建索引模式时,您基本上
第1步:只需输入索引的名称,然后
第2步:一个非常重要的字段,称为:时间过滤器字段名称(又名“timeFieldName”,用于生成/处理索引数据中可用的“事件”(数据存在于您在步骤1中提供的模式获得的匹配Elasticsearch索引中)。
前任:如果你在 Kibana 中创建一个名为 jira-* 的索引模式,那么它将在 Elasticsearch 中查找任何可用的索引,其中索引以 jira- 开头(例如:jira-dev、jira-prod,.. jira-demo,..等)
无论如何,一旦通过GUI完成此操作,我们不允许或不允许指定的是INDEX-PATTERN的ID值(这非常重要,并且与这里的问题直接相关)。
在 Kibana 的 GUI 中创建索引模式时,ELK 进程会为您创建的新创建的索引模式分配一个随机/唯一的索引模式 ID 值。
/
接下来,创建可视化效果(在其中绑定要使用的索引模式),然后向仪表板添加可视化效果。
酷:假设有一天你不小心删除了这个索引模式(即 Kibana 中的 jira-*)或索引本身(Elasticsearch 索引,即 jira-dev)。
如果您最终只删除了索引(在Elasticsearch中),则可以使用相同的索引名称jira再次重新创建索引,并且现有的索引模式即jira-*将轻松选择新创建的Elasticsearch索引(您可能需要单击刷新按钮)。
以防万一:您很幸运地删除了索引模式(此处为jira-*),那么免费生成的神奇/隐藏/自动生成的长字母数字索引ID(将被删除)以及您的可视化和仪表板(使用此类可视化)barf和您的经理肯定会呼唤一些紧急帮助!
一个变通的解决方案是:重新创建索引模式 jira-**。找到它的 ID(您可以使用已保存对象在索引模式上的 GET rest api 来获取此值),然后单击“保存的对象”下的“齿轮”按钮>>搜索您的可视化
并在引用 JSON 部分中查看 ID
值,并将旧的字母数字值(已删除的 jira-index 的 ID 值与新创建的索引模式的新 ID 值)更改。这将使你继续前进。
现在,如何避免所有这些混乱:如果您使用 Kibana 的 Saved Objects REST API 创建了索引模式,那么它允许您提供 ID 值(rest-api URL 中的最后一个值),这是人类可读的字符串名称,这意味着:如果您曾经删除/丢失索引模式,并且如果重新创建相同的索引模式,那么您将永远不必担心 Kibana GUI 在幕后创建的这些自动生成的长字母数字 ID 值,您也不必在可视化/Dashbaord 中更改任何内容。/
前任:如何在 Kibana 中创建索引模式 (v7.0.1 / 7+) 是:
(venvPython375) [gigauser@ip-11.22.33.44 myfolder]$ curl -X POST -u $user:$pass -H "Content-Type: application/json" -H "kbn-xsrf:true" "${KIBANA_URL}/api/saved_objects/index-pattern/jira-index" -d '{ "attributes": { "title":"jira-*","timeFieldName":"sprint_start_date"}}' -w "\n"|jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 327 100 250 100 77 543 167 --:--:-- --:--:-- --:--:-- 543
{
"type": "index-pattern",
"id": "jira-index",
"attributes": {
"title": "jira-*",
"timeFieldName": "start_of_work"
},
"references": [],
"migrationVersion": {
"index-pattern": "6.5.0"
},
"updated_at": "2020-02-25T22:56:44.531Z",
"version": "Wzg5NCwxNV0="
}
注意:这很重要,并且是您刚刚创建的索引的人类可读 (ID) 值。"id": "jira-index",
您基本上通过名称(参见TITLE值)创建了一个索引模式,即jira-*,它的ID值为:jira-index(人类可读),这个ID值更容易维护,记住并在操作中使用!(现在,您不必记住在 Kibana 的 GUI/网页中创建索引模式时动态生成的长 ID)。GET
要查看索引模式,现在您可以使用人类可读的ID值来查看它,而不是一些长字母数字ID。
curl -X GET "${KIBANA_URL}/api/saved_objects/index-pattern/jira-index" | jq
现在,如果您创建一个新的可视化并使用“jira-”作为索引模式,并且如果您曾经删除过索引模式,那么重新创建标题/名称为“jira-*”的相同jira-模式将始终保持“jira-index”作为其ID(并且因为您的可视化使用人类可读ID,并且在意外删除/重新创建后创建,如果您愿意), 你永远不会丢失你的数据,或者永远不必删除或重新创建你的可视化/仪表板!,因此它就像快乐的X-mas baeby!
有关索引模式(如何获取人类可读的索引模式 ID)的信息,请参阅此处:https://stackoverflow.com/a/60404691/1499296