読者です 読者をやめる 読者になる 読者になる

ようへいの日々精進XP

よかろうもん

(超メモ)ちょっとしたスクリプトで Elastic Kibana 4 を実現する

あまりニーズが無いのかもしれないけど...

tl;dr

自分のざっくりとした理解では Kibana4 のダッシュボードを作るまでの工程は以下の通りかと。

  1. Discover でメトリクスを検索して search オブジェクトとして保存
  2. Visualize で search オブジェクトを利用して visualize オブジェクトを作成して保存
  3. Dashboard で visualize オブジェクトを利用して作成

例えば 1. で 100 パターンのクエリで Search オブジェクト作る時にどうするんだろうと思って調べてやってみたメモ。


メモ

参考

tech.naviplus.co.jp

Import と Export

まず、気付いたのは Settings > Objects の Edit Saved Objects にある ImportExport ボタン。

f:id:inokara:20151126210205p:plain

でも、100 個のオブジェクトを Import したりするのは辛い。

オブジェクトは Elasticsearch に保存されている

例えば、Searches の Export したデータは以下のようなデータ。

[
  {
    "_id": "template01",
    "_type": "search",
    "_source": {
      "title": "template01",
      "description": "",
      "hits": 0,
      "columns": [
        "_source"
      ],
      "sort": [
        "CHECK_DATE_TIME",
        "desc"
      ],
      "version": 1,
      "kibanaSavedObjectMeta": {
        "searchSourceJSON": "{\"index\":\"[pm25_]YYYY-MM-DD\",\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fields\":{\"*\":{}},\"fragment_size\":2147483647},\"filter\":[],\"query\":{\"query_string\":{\"query\":\"mon_st_name:\\\"香椎\\\"\",\"analyze_wildcard\":true}}}"
      }
    }
  }
]

このデータは Elasticsearch に保存されていることを知る。

f:id:inokara:20151126211731p:plain

Elasticsearch の .kibana というインデックスに放り込まれていて、それぞれ Search は search という Type で Visualize は visualize という Type に放り込まれている。

ということは...

Elasticsearch にスクリプトで放り込めば良さそう...ということで、以下のようなスクリプトを作って放り込んでみた。

以下のようなリストを place_name.tsv ファイルで用意して放り込む。

門司観測局  pm25-00001
松ヶ江観測局  pm25-00002
門司港観測局  pm25-00003
門司測定所 pm25-00004
若松観測局 pm25-00005

うまく放り込めると以下のように Objects の searches にリストアップされる。

f:id:inokara:20151126214321p:plain

右の目のアイコンをクリックすると以下のようにインデックスから検索結果が表示される。

f:id:inokara:20151126214625p:plain

ついでに Visualize も同じように以下のようなスクリプトを作って放り込んでみた。

Visualize も先述のようなリストを利用して Elasticsearch に放り込むと Search オブジェクトから Visualize オブジェクトの作成がサクッと...。尚、savedSearchId は Search オブジェクトの ID と同じ値にしておく必要があるのがちょっと注意。

f:id:inokara:20151126215123p:plain

これは便利かも。


ということで

Elastic(柔軟な)Kibana ということで、以上、メモでございました。