第24回Elasticsearch勉強会「入門編」 に参加してみた

第24回Elasticsearch勉強会「入門編」 に参加してきました。

参加してから随分経ちましたが、勉強会の内容のメモ書きをば。

尚、勉強会の資料は以下にアップされています。

 

勉強会のスタイル

今回は「Elastic Stack 入門」ということでElasitic社の大谷さんによるElastic Stackの説明がほとんどでした。

その後、10分程度、LTがあり、その後また大谷さんによるQAとなりました。

入門とはいえ、製品の数も豊富なので内容としては非常に充実しています。

パフォーマンス的な部分に踏み込むこともあり、非常に充実した勉強会でした。

ちなみにこんな書籍も書かれているようです。

 

勉強会のメモ書き

まず、「AWS ElasiticSearch」はElastic社とは関係のないサービスになっていると少し驚きの情報がありました。

AWSがオープンソースのElasticSearchを利用してカスタマイズして使っているようです。

「AWS ElasiticSearch」については聞かれてもわからないとのこと。(笑)

確かに英語のフォーラムでも「AWS ElasiticSearch」に話しが及ぶとここで聞くな風になっていた謎が解けましたw

そしてElasiticSearchの大きな特徴は「データの解析できますよという入れ物」という考え方が一番合うようです。

使い方どうしますよはお客さん次第ということで、様々なユースケースもあり日本語で紹介されているようです。

また、ドキュメントについては公式ドキュメントが最強ときっぱり言い切られてました。

確かに豊富ですもんね。Qiitaの記事とかだとちょっと古いのが多いようです。

以下からはメモ書きです。

【ElasticStack】

・Kibana

Elasticsearchに入っているデータを可視化できる。
地理空間とか。
デモで確認すると良い:https://demo.elastic.co
DevToolsが便利(左にッリクエスト書くと右に結果)

・Elasticsearch

Javaで書かれている。
サジェストもできる。
githubとかwikipediaの検索で使われいる。
REST APIベース。
kibana使うとJSON作るのが楽。
シャードという単位で動く。
シャードが増えると台数が少ないときつい。少なくしたほうがいい。
デフォルト5つ。(1つになる)。
1つのシャードに21億レコード入る。
1シャード20GBぐらいの制限ある。
パフォオーマスンをチューニングするには1シャードで望んでいる検索速度が出るかで確認。
1から増やす形で望むパフォーマンスが出るか試していく。
緯度経度の検索ができる(半径500mとか)。
距離でソートしたりとか。

詳しく動作とかを知りたい人は以下の書籍がおすすめ。
https://www.amazon.co.jp/dp/B00SLXVBC4/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
readingformとか使うと漢字の読みとかも表示できるよ。
ただし、読みが一種類しかない。(複数の読み方があるものは対応していない)

検索では前方一致とかの機能がある
ただ、日本語はめんどくさい。

・Beats(データ投げる・入れる)

内部的にはGo言語。
binaryダウンロードしてインストールするだけ。
見たいデータのあるところに入れて起動する。

Packetbeat(PostgeSQL、DNS、HTTP)
Meticbeat(CPU使用率とかメモリ使用率とかモジュールでApacheのリクエスト数とかKibanaの画面まで作ってくれる)
Filebeat(ログ):1行1ログだがmultiログで取れるはず。アプリでログを出すときはTimezoneまで出しましょう。
Winlogbeat(Windowsのイベントログ)
Auditbeat(認証系、auditdのログの評価)
Heatbeat(死活監視用、HTTPの200が返ってきたよとか)

個別のBeatxがいる(公式には6ついる)
オープンソースなのでSDKで色々作れる。

・Logstash(データ加工)

fulentdみたいな感じ。
流れてきたデータを加工する。
インプット、アウトプットでファイル、S3、DBとか色々指定できる。
RubyyApp(JRuby)で作ってる:Javaを入れる。
処理としていらない文字を消したりとか。(ユーザー情報とか)
設定が簡単。
grok:正規表現、中身に名前をつけられる。

 

アプリケーションの内部の処理時間をモニタリングしたり、売上データを入れてKibanaで可視化したり色々できるよ。

ElasticCloudEnterpriseというエンタープライズ向けのサービスもある。
GitのEnterrpiseと同じ感じ。
オンプレ(自社のクラウド)で環境を構築したいとかで利用。
Dockerベース?

サポートの中には日本語ができるエンジニアが何人かいる。
日本にもサポートチーム4人いる。
サポートに不安があるときは日本語と拙い英語で書くと良い。
そんなに大変ではないはず。
日本語がかける人が休みでなければ日本語で回答あるはず。
日本語で欲しいと書けば時間がかかるけど返ってくる。

Lineでneologdという辞書作っている人がいる
kuromoji+neologdなどプラグインでインストールできる。
https://christina04.hatenablog.com/entry/2016/05/18/193000
https://qiita.com/Libitina/items/87293a19a506b38a2369

 

サブスクリプションの価格は営業に確認してね。
ボリュームディスカウントあるよ。
ElasticSearchのクラスタのサイズで決まるらしいけど、営業以外はよくわからない。

データはどうやって消していけばいいですか?
→ キュレーターというツールを使って消す

snapshotはとってね。

Delete *をなくせる設定があるので、消しちゃいけないものはちゃんと設定してね。

フォーラムをうまく使ってね。日本語に対応したフォーラムもあるよ。
discus.erastic.co

 

勉強会に参加しての感想

非常にリリースも早いプロダクトなので情報のウォッチは勉強会が一番と感じました。

正直、勘違いしていた部分も多かったので利用している方や、導入を検討している方は参加されるととても為になると思います。

毎月、定期的に開催するようですがこのボリュームだとかなり大変な気もしますが頑張っていただきたいです。