是否可以在 Kibana 中更改可视化的索引模式?

2022-09-02 01:27:12

我创建了一整套可视化效果。由于某种原因,我不得不在弹性中删除该索引。我们需要创建一个新的索引模式。问题是删除索引可视化效果后将无法正常工作。我将不得不痛苦地一个接一个地重新创造它。有没有办法让我去编辑可视化,只是修改索引模式,而不是创建一个新的可视化本身。


答案 1

转至 ->->,您可以手动编辑定义。SettingsObjectsVisualizations


答案 2

首先,让我们讨论一下为什么整个问题即将到来。

我的环境是: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,..等)

enter image description here

无论如何,一旦通过GUI完成此操作,我们不允许或不允许指定的是INDEX-PATTERN的ID值(这非常重要,并且与这里的问题直接相关)。

在 Kibana 的 GUI 中创建索引模式时,ELK 进程会为您创建的新创建的索引模式分配一个随机/唯一的索引模式 ID 值。

  1. 如果将鼠标悬停在 GUI 中的索引模式上,您可以看到索引模式的 ID(在:齿轮按钮>索引模式下>将鼠标悬停在索引模式上,并在状态栏 URL 中看到 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


推荐