我已经创建了一整套可视化。由于某种原因,我必须在弹性中删除该索引。我们需要创建一个新的索引模式。问题是删除索引可视化后将不起作用。我将不得不痛苦地一一重新创建它。有没有一种方法可以让我去编辑可视化并只修改索引模式而不是创建一个新的可视化本身。
3 回答
转到Settings
-> Objects
-> Visualizations
,您可以手动编辑定义。
首先让我们讨论一下 为什么会出现这整个问题。
我的环境是:Kibana v7.0.1 / 7+
如果您创建了索引模式(使用 Kibana 的 GUI / 网站)而不是使用 ELK/Kibana 的Saved Objects REST-API 创建索引模式(例如:使用 Curl 或一些 Python/Groovy 脚本调用其余 api 来创建),则会出现此问题索引模式)。
当您使用 GUI创建索引模式时,您基本上
第 1 步:只需键入索引的名称,然后
第 2 步: 一个非常重要的字段,称为:时间过滤器字段名称(又名“ timeFieldName ”,用于生成/处理索引数据中可用的“事件”)(数据存在于为您提供的模式获得的匹配Elasticsearch 索引中第 1 步)。
例如:如果您在 Kibana 中创建一个名为jira- * 的索引模式,那么它将在 Elasticsearch 中查找索引以jira-开头的任何可用索引(例如:jira-dev、jira-prod、.. jira -演示,..等)
无论如何,一旦通过 GUI 完成,我们不能或不允许指定的是 INDEX-PATTERN 的ID值(这非常重要并且与这里的ISSUE直接相关)。
在 Kibana 的 GUI 中创建 index-pattern 时,ELK 进程会为您创建的新创建的 Index-Pattern分配一个随机/唯一的Index-Pattern ID值。
- 如果您将鼠标悬停在 GUI 中的索引模式上,您可以看到索引模式的 ID(在:齿轮按钮 > 索引模式 > 将鼠标悬停在索引模式上并在状态栏 URL 中查看 ID 值的最后一个值
/
斜线后)。
接下来,您创建可视化(在其中绑定要使用的索引模式),然后将可视化添加到仪表板。
很酷:假设有一天你不小心删除了这个索引模式(即Kibana 中的jira- *)——或索引本身(Elasticsearch 索引,即jira-dev)。
如果:您最终只删除了索引(在 Elasticsearch中),您可以使用相同的索引名称 jira重新创建索引,现有的索引模式即jira- * 将轻松选择新创建的 Elasticsearch 索引(您可能必须单击刷新按钮)。
万一:您很幸运地删除了索引模式(jira- * 这里),然后免费生成的神奇/隐藏/自动生成的长字母数字索引ID (将被删除)以及您的可视化和仪表板(使用这种可视化)barf 和你的经理肯定会急切地寻求帮助!
一种解决方法是:重新创建索引模式jira-**。找到它的 ID(您可以使用 Saved Object's GET rest api on index-pattern 来获取此值)然后单击Gear button > under Saved Objects > search your visulization
并查看引用ID
JSON 部分中的值并更改 OLD 字母数字值(已删除jira - index 的新值)新创建的 index-pattern 的ID值。这会让你开始。
现在,如何避免所有这些混乱:如果您使用 Kibana 的 Saved Objects REST API 创建了索引模式,那么它允许您提供ID值(之后的 rest-api URL 中的最后一个值),它是人类可读的字符串名称,这意味着:如果您曾经删除/丢失索引模式并且重新创建相同的索引模式,那么您将永远不必担心这些长的自动生成的字母数字ID /
Kibana GUI 在幕后创建的值,您无需更改可视化/仪表板中的任何内容。
例如:如何在 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": "jira-index",
这很重要,并且是您刚刚创建的索引的 HUMAN READABLE ( ID ) 值。
您基本上通过名称(参见 TITLE 值)创建了一个索引模式,即jira- *,它的ID值为:jira-index(人类可读),此 ID 值更易于维护、记住和在GET
操作中使用!(现在您不必记住在 Kibana 的 GUI/网页中创建索引模式时获得的长动态生成的 ID)。
要查看索引模式,现在您可以使用人类可读的 ID 值来查看它,而不是使用一些长的字母数字 ID。
curl -X GET "${KIBANA_URL}/api/saved_objects/index-pattern/jira-index" | jq
现在,如果您创建一个新的可视化并使用“jira- ”作为索引模式,并且如果您删除了索引模式,那么重新创建标题/名称为“ jira- *”的相同 jira-模式将始终保持“jira -index”作为它的ID(并且因为您的可视化使用的是人类可读的 ID,并且如果您愿意,它是在意外删除/重新创建后创建的),您将永远不会丢失您的数据或永远不必删除或重新创建您的可视化/仪表板!,因此它就像圣诞快乐宝贝!
有关索引模式的信息(如何获取人类可读的索引模式 ID),请参见此处:https ://stackoverflow.com/a/60404691/1499296
从 Kibana 4.3.1 开始,对于某些可视化,您必须转到Settings->Objects->searches。