見出し画像

ElasticStack実践ガイドを読んで

はじめに

ElasticStack実践ガイドが出るというのは、風の噂で聞いていたが
本当に出版されて、こうして読めたことに著者や関係者の皆様に感謝しています。

Elasticsearchなどの、ElasticStack関連恐ろしくリリースが早い。
本では7.6.2が最新の状態であるが出版された2020年8月には7.9.0が出ていた。(このブログを書こうと思ったときは7.8.1だった)

Elasticsearch version 8.0.0-alpha1を見ている限り、そろそろ8.0も出るのかなと思ってしまう。

そんなリリースが早くても、Elasticsaerchそのものは変わらないので「ElasticStack実践ガイド」を読む意味あるのかなと思いました。

環境作成

よく自作で、dockerでElasticsearchやKibanaを立てたりして動作確認したりします。
しかし、正直簡単な方法としてはGmailを使って、Elastic Cloudのトライアルを試すのが一番楽です。(7.9.0を使用しました)

殆ど何も考えずに、ボタンを押していけば環境ができます。
後からも変更できますが、kuromojiなどのプラグインは下記で設定することで導入できます。

スクリーンショット 2020-08-19 20.27.19

Kibanaエンジニアの開発スピードが恐ろしいです、サイドバーが固定だったのにU変更されていました。。。。(7.8からなんですね)

よく使用する「Dev Tools」は、「Management」の分類にあります

スクリーンショット 2020-08-19 20.50.26

第1章 Elasticsearchとは

第1章は、「Elasticserach」を運用しない皆さんにも読んでもらいたい。
「Elasticserach」とは何か?
「Elastic Stack」とは何か?
(Elasticsearch、Kibana、Logstash、Beatsなどの総称 昔はELK Stackと呼ばれていた)

がざっとわかります。

第2章 Elasticsearchの基礎

この章では
Elasticsearchをデータとして扱うのに必要な用語
「ドキュメント」「フィールド」「ドキュメントタイプ」「マッピング」

Elasticsearchをサーバとして扱うのに必要な用語
「ノード」「シャード」「レプリカ」

や簡単な操作方法・導入方法が記載されています。

「ドキュメント」については、初見の場合想像しにくい。
データベースとしてのElasticsearchを引用させてもらったのだが下記のように考えると楽である。

RDB             Elasticsearch
データベース         インデックス
テーブル           マッピングタイプ
カラム(列)         フィールド
レコード(行)        文書(ドキュメント)

とてもお恥ずかしながら「Dev Tools」で「Ctrl」+「Enter」実行できるですね、知らなかった。

スクリーンショット 2020-08-19 21.25.44

第3章 ドキュメント/インデックス/クエリの基本操作

この章は、RESTAPIをひたすら実行してデータの登録・検索・削除などをやっていきます。

「Elasticsearch実践ガイド」を読んでいた頃はひたすらcurlを実行してました。(最後の章でKibanaというものがあると知った時、絶望したのが懐かしいです)

体系化されていて、自分に抜けている部分がとても分かりやすかったです。
「my_index*」で取得できることは知っていたのですが、下記のように対象自体を「,」で区切って取得できることは知りませんでした。

POST my_index/_doc
{
 "text":"aaaaaaa"
}

POST my_index2/_doc
{
 "text":"bbbbbbb"
}

GET my_index,my_index2
​

後検索時、いつも思い出すのに困る「AND」「OR」「NOT」についても書かれていた

「AND」→「must」「filter」(_scoreなし)
「OR」→「should」
「NOT」→「must_not」

これは検索する時によく使う

第4章 Analyzer/Aggregation/スクリプティングによる高度なデータ分析

Analyzerについては、全文検索のための単語分割の処理でよく下記のサザエさんの例を読み返したなと思い返しました

Aggregationについては、Kibanaでグラフを作る時の基礎となっているのでその点で役に立ちます。

第5章 システム運用とクラスタの管理

インデックス・クラスタ・ノードの状態などを確かめる時に使える_cat APIの一覧表やcurator、その他運用・管理に関することが一通り書かれています。

個人的には_catAPIだとよく、データが登録されていない時下記コマンドを実行して「rejected」が出てないか確認します

GET _cat/thread_pool?v

ここ最近は、「curator」を使わず「ILM」を使用するようになるのが多い気がします

第6章 Elastic Stackインテグレーション

インデックスの状態を管理する ILM の記載とかはとても役に立ちます

「ILM」はKibanaからも設定できます

スクリーンショット 2020-08-19 22.23.28

第7章 Kibanaによる可視化と分析のユースケース

この箇所はほぼKibanaの使い方が書かれています

感想

今までの記載がほぼ感想だったのですが....
自分のElasticsearchとの出会いは「Elasticsearch実践ガイド」でした
それから、簡単なドキュメント直したり初めてプルリクしたりと色々な機会のきっかけになりとても感謝しています

この記事が気に入ったらサポートをしてみませんか?