※当記事は個人ブログに移行しました
以前こんな記事を書いたんですが、
そもそも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"
}
手順
Visualizeを作成する
移行するものがないと始まらないのでとりあえずVisualizeを作成します。
ちなみにすでにとあるWebサイトのアクセスログをサンプルとして入れてあるので、
トップページの時系列アクセス数のグラフにしてみます。
- 上部メニューから
Visualize
を選び、グラフの種類はVertical bar chart
を選択します。 - 入力元を選びます。
新しいVisualizeを作るのでFrom a new search
を選びます。 - Y軸(縦軸)の設定をします。Y-Axisの Aggregation を
count
にします。
というかたぶん最初からそうなってると思います。
この時点での見た目はこんな感じです。
- Select buckets typeから
X-Axis
を選択します。
これでX軸(横軸)が追加できるようになります。 - X-Axisの Aggregation を
Date Histogram
にします。
Field は@timestamp
、 Interval はお好みに合わせてください。
今回はAuto
にしておきます。
いったんこの状態でグラフを描画してみましょう。
右向きの三角形を押すとグラフが更新されます。
この時点での見た目はこんな感じです。
- 続いてトップページだけにフィルタリングを行います。
Add sub-buckets
を押します。
選択肢が出てきますがとりあえず今回はSplit Bars
にしておきます。
Sub Aggregation からFilters
を選びます。
Filter 1 に絞り込みたい文字列を入力します。
今回はrequestというFieldの値が"GET / HTTP/1.1"
に絞り込んでみます。
テキストボックスにrequest:"GET / HTTP/1.1"
を入力します。
フィルタの設定ができたのでグラフを更新しましょう。
右向き三角系を押します。
こんな感じのグラフになりました。
- 作成したVisualizeを保存します。
右上の方にあるフロッピーディスクっぽいボタンを押します1。
Dashboardを作成する
せっかくなのでDashboardも作っちゃいます。
- 上部メニューから
Dashboard
を選びます。
初めてDashboardを作るのであれば*+*ボタンが画面中央あたりにあるので押します。 - 画面を作ります。
先ほど作ったTopPageHistgram
が選択できる状態になっているので選びます。
画面に先ほどのグラフが小さく出てきたと思います。
あとはグラフの右下をひっぱって好きな大きさにします。
こんな感じになりました。
- 作成したDashboardを保存します。
右上のフロッピーディスクっぽいボタンを押します。
テキストボックスに好きな名前を入れて save します。
今回はWebSiteAccess
にしてみました。
これで無事Dashboardが保存できました。
Kibanaの設定をexportする
前置きが長くなりましたがいよいよ本題に入ります。
- 上部メニューから
Setting
を選びます。 - その下のサブメニューから
Objects
を選びます。 -
Export Everything
を押すとKibanaの設定がダウンロードできます。
下のチェックボックスを入れたりする部分で個別にダウンロードすることもできます。
が、僕の環境ではExport Everything
を押したらいくつかのPOSTリクエストで 500 Internal Server Error
が出た。。。
とりあえずVisualizationsだけダウンロードしてみました2。
タブからVisualizations
を選択し、TopPageHistgram
にチェックを入れた状態でExport
ボタンを押します。
画面はこんな感じ。
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します。
- 上部メニューから
Setting
を選びます。 - その下のサブメニューから
Objects
を選びます。 -
import
ボタンを押すと、Finderあたりが開くので、先ほどのexport.json
を選択します。
Visualizations に先ほど消したTopPageHistgram
が戻ってきたと思います。
上部メニューからVisualize
を選択すると、TopPageHistgram
が選べます。
無事グラフも見れたと思います。