Site icon Mr. 沙先生

Elasticsearch 重建 index-pattern 後修復 Object Id 依賴

Elasticsearch 或是在 Kibana 上建立的所有 Objects (Dashboard, Visualize, Index-Pattern, Search) 等等東西幾乎都存在 elasticsearch:9200/.kibana 這個 index,而 .kibana 內彼此 Object 都關連 Id number 有異動其中一項都會影響 index Id 的處理

例如,每個 Dashboard, Visualize 都會關聯到 index-pattern,如果遇到需要重建 index-pattern 的時候就會遇到所有 Object 都會遺失 index-pattern Id,這篇會講一下 index-pattern 重建時如何修復 Object。

這個 Objects 會包含所有 Dashboard, Visualize, Index-Pattern, Search … 等資訊

以 defaultIndex (*) 為例,Id 為 f3ec7a90-9efc-11ea-afbd-9f17bd085fe1

{
  "attributes": {
    "buildNum": 30810,
    "defaultIndex": "f3ec7a90-9efc-11ea-afbd-9f17bd085fe1"
  },
  "id": "7.7.0",
  "references": [ ],
  "type": "config",
  "updated_at": "2020-05-26T03:02:10.070Z",
  "version": "WzEzMTMsMV0="
}
{
  "attributes": {
    "description": "",
    "kibanaSavedObjectMeta": {
      "searchSourceJSON": "...",
    "title": "Nginx and Apache Top 10 IPs",
    "uiStateJSON": "..."
  },
  "id": "...",
  "migrationVersion": {...},
  "references": [
    {
      "id": "f3ec7a90-9efc-11ea-afbd-9f17bd085fe1",
      "name": "kibanaSavedObjectMeta.searchSourceJSON.index",
      "type": "index-pattern"
    },
    {
      "id": "f3ec7a90-9efc-11ea-afbd-9f17bd085fe1",
      "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index",
      "type": "index-pattern"
    }
  ],
  "type": "visualization",
  "updated_at": "2020-05-25T07:29:10.596Z",
  "version": "WzEzNCwxXQ=="
}

把 references.0.[‘id’] 內的值更換成 defaultIndex Id 就行了,但可能有多個 Object 要修改,這時可以善用編輯器的「搜尋取代」一次修改

最後再從 Kibana 上把修改好的 export.ndjson import Objects 就完成修復了。

Exit mobile version