LoginSignup
8
3

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

【検索システム】Elasticsearch に投入したデータをGUIでサクッと確認する【Kibana】

Last updated at Posted at 2023-06-23

はじめに

みなさん検索システム作ってますか?

Elasticsearch で検索システムを作る際、Elasticsearch に投入したデータの中身を確認したくなること、ありますよね??

  • Elasticsearch へデータを送信するシステムが正常に動作しているか確認したい!
  • 検索オプションを実装したけど、0件しかヒットしなかった!あれ?該当するデータ入れたっけ?
  • などなど...

そんなとき、curl コマンドで match_all クエリを投げて調査することも可能ですが、GUI でサクッと確認したいですよね?というわけで、本記事では Elasticsearch に投入したデータを Kibana でサクッと確認する方法を紹介します。

最終的に、以下のように Elasticsearch 内のデータが確認できます。

image.png

Elasticsearch に投入したデータを Kibana でサクッと確認する

以下の環境で動作確認しました。

  • Ubuntu 20.04
  • Elasticsearch 7.10.2
  • Kibana 7.10.2

はじめにサンプルデータを投入した Elasticsearch のサーバーを準備する方法を紹介し、次に Kibana でデータをサクッと確認する方法を紹介します。

サンプルデータを投入した Elasticsearch のサーバーを準備する

すでにデータ投入済みの Elasticsearch のサーバーがある場合はこの節はスキップし、「Kibana でデータをサクッと確認する」に進んでOKです!

はじめに Elasticsearch をダウンロードします。公式ドキュメントに記載されている方法を参考にしました。

以下コマンドでダウンロード & 展開 & 起動します。

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz
tar -xzvf elasticsearch-7.10.2-linux-x86_64.tar.gz
cd elasticsearch-7.10.2
./bin/elasticsearch

起動できたら、以下のように確認してみましょう。

$ curl http://localhost:9200/
{
  "name" : "XXXXXXXXXXXX",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "PREUZaNLQeWk7XBeFHt39Q",
  "version" : {
    "number" : "7.10.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
    "build_date" : "2021-01-13T00:42:12.435326Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

次はサンプルデータを投入します。以下ドキュメントのサンプルデータを投入する方法を参考にしました。

以下で Elasticsearch 用のシェイクスピアのサンプルデータが取得できます。

$ curl -O https://download.elastic.co/demos/kibana/gettingstarted/7.x/shakespeare.json
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24.1M  100 24.1M    0     0  8333k      0  0:00:02  0:00:02 --:--:-- 8330k
$ ls
shakespeare.json

データを登録するために、マッピングを作成しましょう。

curl -X PUT "localhost:9200/shakespeare?pretty" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": {
    "speaker": {"type": "keyword"},
    "play_name": {"type": "keyword"},
    "line_id": {"type": "integer"},
    "speech_number": {"type": "integer"}
    }
  }
}
'

そして、以下コマンドでデータを投入します。

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare.json

以下コマンドでインデックスを確認すると、111,396 件登録できたようです。

$ curl -XGET 'localhost:9200/_cat/indices?v'
health status index       uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   shakespeare oZy1_qOsSpuEIe9jEjE6pg   1   1     111396            0     18.1mb         18.1mb

これで Elasticsearch へのデータの投入が完了し、準備が整いました。

Kibana でデータをサクッと確認する

Kibana をインストールします。以下ドキュメントを参考にしました。

curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.10.2-linux-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/kibana/kibana-7.10.2-linux-x86_64.tar.gz.sha512 | shasum -a 512 -c - 
tar -xzf kibana-7.10.2-linux-x86_64.tar.gz
cd kibana-7.10.2-linux-x86_64/
./bin/kibana

ブラウザで http://localhost:5601 にアクセスし、起動できているか確認します。以下ように表示されていればOKです。

image.png

「Exprole on my own」 をクリックします。

image.png

Elasticsearch のデータを確認するための設定をしていきます。
右上の「Manage」を開きます。

image.png

左サイドバーの下の方にある 「Index Patterns」 を開きます。

image.png

ここで、Elasticsearch のインデックスの設定をしていきます。
「index pattern name」 にインデックス名(サンプルデータの場合は shakespeare)を入れて、「Next step」 をクリック。

image.png

次に時間に関するフィールドを選択します。サンプルデータを使う場合は時間に関するフィールドがないので、そのまま「Create index pattern」 でOKです。

image.png

これでインデックスの設定が完了したので、早速 Elasticsearch の中身を見ていきましょう。

左上のハンバーガーアイコンからメニューを開き、「Kibana > Discover」を開きます。
すると、以下の画面のように、Elasticsearch の中身が確認できます!!

また、丈夫の入力フォームに Kibana Query Language (KQL) を入力することで、絞り込みも可能です。

(Kibana でインデックスの設定を行った際に時間のフィールドを設定した場合、直近に登録したデータしか表示されない場合があります。その場合はKQLから条件を変更すると、他のデータも見れるようになります。)

image.png

Kibana は他にもデータを確認するための便利な機能がたくさんあります。例として以下のようなワードクラウドが表示できます。(Visalizer から Tag Cloud を選択すると表示できます。)

image.png

もう一つ紹介しておきたい機能として、Dev Tools では. クエリの編集と実行ができます。便利ですね!

image.png

おわりに

Kibana には今回紹介した機能以外にも、たくさんの機能があり、僕自身まだ全然使い切れていないです。

Elasticsearch を使っているなら Kibana は相性がとてもいいので、組み合わせて使うのがおすすめです!

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3