Kibanaの設定をまるっと別のElasticsearchに移したい(改訂版)

※当記事は2016年にQiitaに投稿した記事を再編集したものです

以前こんな記事を書いたんですが、
そもそもKibana自身に設定をexport/importできる機能があることに気がついたので、
使ってみたいと思います。

検証環境

これで用意。

{
  "name" : "Zarek",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.1.0",
    "build_hash" : "72cd1f1a3eee09505e036106146dc1949dc5dc87",
    "build_timestamp" : "2015-11-18T22:40:03Z",
    "build_snapshot" : false,
    "lucene_version" : "5.3.1"
  },
  "tagline" : "You Know, for Search"
}
Kibana Version

手順

Visualizeを作成する

移行するものがないと始まらないのでとりあえずVisualizeを作成します。
ちなみにすでにとあるWebサイトのアクセスログをサンプルとして入れてあるので、
トップページの時系列アクセス数のグラフにしてみます。

  1. 上部メニューからVisualizeを選び、グラフの種類はVertical bar chartを選択します。
  2. 入力元を選びます。
    新しいVisualizeを作るのでFrom a new searchを選びます。
  3. Y軸(縦軸)の設定をします。Y-Axisの Aggregationcountにします。
    というかたぶん最初からそうなってると思います。
    この時点での見た目はこんな感じです。
    Kobito.CaCSV2.png
  4. Select buckets typeからX-Axisを選択します。
    これでX軸(横軸)が追加できるようになります。
  5. X-Axisの AggregationDate Histogramにします。
    Field@timestampInterval はお好みに合わせてください。
    今回はAutoにしておきます。
    いったんこの状態でグラフを描画してみましょう。
    右向きの三角形を押すとグラフが更新されます。
    この時点での見た目はこんな感じです。
    Kobito.4LNmdn.png
  6. 続いてトップページだけにフィルタリングを行います。
    Add sub-bucketsを押します。
    選択肢が出てきますがとりあえず今回はSplit Barsにしておきます。
    Sub Aggregation からFiltersを選びます。
    Filter 1 に絞り込みたい文字列を入力します。
    今回はrequestというFieldの値が"GET / HTTP/1.1"に絞り込んでみます。
    テキストボックスにrequest:"GET / HTTP/1.1"を入力します。
    フィルタの設定ができたのでグラフを更新しましょう。
    右向き三角系を押します。
    こんな感じのグラフになりました。
    Kobito.bwZGvU.png
  7. 作成したVisualizeを保存します。
    右上の方にあるフロッピーディスクっぽいボタンを押します^1
    テキストボックスに好きな名前を入れて save します。
    今回はTopPageHistgramにしてみました。
    これで無事Visualizeが保存できました。

Dashboardを作成する

せっかくなのでDashboardも作っちゃいます。

  1. 上部メニューからDashboardを選びます。
    初めてDashboardを作るのであれば+ボタンが画面中央あたりにあるので押します。
  2. 画面を作ります。
    先ほど作ったTopPageHistgramが選択できる状態になっているので選びます。
    画面に先ほどのグラフが小さく出てきたと思います。
    あとはグラフの右下をひっぱって好きな大きさにします。
    こんな感じになりました。
    Kobito.oaqexy.png
  3. 作成したDashboardを保存します。
    右上のフロッピーディスクっぽいボタンを押します。
    テキストボックスに好きな名前を入れて save します。
    今回はWebSiteAccessにしてみました。
    これで無事Dashboardが保存できました。

Kibanaの設定をexportする

前置きが長くなりましたがいよいよ本題に入ります。

  1. 上部メニューからSettingを選びます。
  2. その下のサブメニューからObjectsを選びます。
  3. Export Everythingを押すとKibanaの設定がダウンロードできます。
    下のチェックボックスを入れたりする部分で個別にダウンロードすることもできます。
    が、僕の環境ではExport Everythingを押したらいくつかのPOSTリクエストで 500 Internal Server Error
    が出た。。。
    とりあえずVisualizationsだけダウンロードしてみました^2
    タブからVisualizationsを選択し、TopPageHistgramにチェックを入れた状態でExportボタンを押します。
    画面はこんな感じ。
    Kobito.57Lmex.png
    export.json がダウンロードできたと思います。
[
  {
    "_id": "TopPageHistgram",
    "_type": "visualization",
    "_source": {
      "title": "TopPageHistgram",
      "visState": "{\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"type\":\"filters\",\"schema\":\"group\",\"params\":{\"filters\":[{\"input\":{\"query\":{\"query_string\":{\"query\":\"request:\\\"GET / HTTP/1.1\\\"\",\"analyze_wildcard\":true}}},\"label\":\"\"}]}}],\"listeners\":{}}",
      "uiStateJSON": "{}",
      "description": "",
      "version": 1,
      "kibanaSavedObjectMeta": {
        "searchSourceJSON": "{\"index\":\"accesslog-*\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
      }
    }
  }
]

これでKibanaの設定が(一部ですが)exportできました。

Kibanaの設定をimportする

本来は別のelasticスタックで試すのがいいんですが、(用意するのが面倒なので)Visualizationsを削除しちゃいます。
先ほどexportした画面のままになっていると思うので、TopPageHistgramにチェックを入れてDeleteボタンを押します。
ポップアップが出てほんとにいいか聞いてきますが、OKを押します。
上部メニューからVisualizeを選んでもTopPageHistgramはもういません。
ここから、先ほどの設定(export.json)をimportします。

  1. 上部メニューからSettingを選びます。
  2. その下のサブメニューからObjectsを選びます。
  3. importボタンを押すと、Finderあたりが開くので、先ほどのexport.jsonを選択します。
    Visualizations に先ほど消したTopPageHistgramが戻ってきたと思います。
    上部メニューからVisualizeを選択すると、TopPageHistgramが選べます。
    無事グラフも見れたと思います。

コメント

タイトルとURLをコピーしました