Elasticsearchのインデックス名変更に伴い、KibanaのVisualizeで利用しているIndex Patternsを変更するというあんまり発生しない作業の必要があったのでメモ。
環境
- Elasticsearch 6.1.1
- Kibana 6.1.1
test-hoge-foodsというindexがあり、test-hoge*でIndex Patternsを登録しています。
中身は以下のような感じで種類と名前と個数が適当に登録されています。
{
"_index": "test-hoge-foods",
"_type": "food",
"_id": "1",
"_score": 1,
"_source": {
"type": "野菜",
"name": "にんじん",
"count": 3
}
また、Visualizeを2つ作成し、以下のようなダッシュボードを作成しています。
手順
例としてtest-hoge-foodsをtest-piyo-foodsへ変えてみます。
1. test-hoge-foodsをtest-piyo-foodsへReindex
ついでにtest-hoge-foodsはcloseしておきます(削除でも可)
POST _reindex
{
"source": {
"index": "test-hoge-foods"
},
"dest": {
"index": "test-piyo-foods"
}
}
POST /test-hoge-foods/_close
2. test-piyo-foods用のIndex Patternsを登録
3. Index Patternsを変更したいVisualizeをExport
Saved Objectsから設定を変更したいVisualizeを出力します。
(ダッシュボードはVisualizeのidを利用しており、直接Index Patternsを指定しているわけではないので変更不要です)
4. 出力したjsonを編集
searchSourceJSONのindexをtest-piyo-foodsのIndex Patternsのidへ変更します。
Index Patternsのidは.kibanaのインデックスから確認できます。
GET .kibana/_search
{
"query":{
"match": {
"type": "index-pattern"
}
}
}
_idが"index-pattern:xxxxx"となっており、xxxxxの部分がIndex Patternsのidになります。
5. 編集したjsonをImport
編集したjsonをSaved Objectsから取り込みます。
これで移行完了です。(必要なら古い方のIndex Patternsは削除してください)
ちなみに
indexにAliasの設定をしていればKibana側の移行はしなくても済んだと思います。。。