tonkatuのおしゃべり

まっきーの研鑽記

ラーメン二郎には二度と行かねえ

Slack × Elasticsearch で無料プランで過去ログを見れるように(したい)

これは CPS Lab Advent Calendar 2018 23日目の記事です.

adventar.org

22日目の記事はこれです。

unotovive.hatenablog.jp

今回はSlack のメッセージデータをElasticsearch に流していい感じに検索できるようにする話です。

本当はラボ内の人だけが使えるようなWeb アプリを運用しようかなと思ってたのですが、間に合わなかったので途中経過としてローカルで動かしているものがどんな様子か共有したいと思います。

構成としては以下のように、自分のPC上で Elasticsearch と React を動かしているだけです。

f:id:tonkatu05:20181224153734p:plain
構成図

実際に検索してみます。見た目ヘボいのは作成途中なので許してください。

f:id:tonkatu05:20181224152605p:plain
天才と検索

このように任意の文字で検索することができます。1秒ほどで表示されます。今の所、ソート順は検索スコア(検索ワードとのマッチ度合い)で出しているので時系列順ではありません。

フロントのコードはここに置いてあります。

github.com

Elasticsearch にSlack のデータを流し込むのはこの記事を参考にしてやりました。

qiita.com

実際に流し込むコードはこれを使いました。

github.com

このシステムを作った理由ですが、Slack は無料プランだと1万件しかデータをためてなくて、それより古いメッセージは確認不能になっています。 なので古いメッセージを皆がいい感じに検索できれば便利だろうと思い、作りました(作っています)。

今後は見た目の改善、認証機能の追加などなどしていきたいと思います。

完成したらまた記事あげたいと思います(多分)。

なので短いですが、ここで切り上げます。

蛇足

ついでにKibana で遊びました。 研究室Slack の18%も僕がしゃべっていることが判明して流石に驚きました。

f:id:tonkatu05:20181224160257p:plain
kibana

Slack大好きマン。

一応センサを扱う研究室だし、センサデータとかをElasticsearch にぶちこんでkibana で遊べるようになっておくと良いのかなーと思ったりするので、後輩とかにkibana を触りだけ教えられるようになったのは良かったかなと思う。

テキスト検索で強いElasticsearch だけど、センサのログとか雑に溜めておくのにも使える(?)っぽいよね。実際使いやすいかどうかはもっと使ってみないとわからんなー。わりと学習コストは高そうなんだよね Elasticsearch。知見あるひと tell me。