Slack × Elasticsearch で無料プランで過去ログを見れるように(したい)
これは CPS Lab Advent Calendar 2018 23日目の記事です.
22日目の記事はこれです。
今回はSlack のメッセージデータをElasticsearch に流していい感じに検索できるようにする話です。
本当はラボ内の人だけが使えるようなWeb アプリを運用しようかなと思ってたのですが、間に合わなかったので途中経過としてローカルで動かしているものがどんな様子か共有したいと思います。
構成としては以下のように、自分のPC上で Elasticsearch と React を動かしているだけです。
実際に検索してみます。見た目ヘボいのは作成途中なので許してください。
このように任意の文字で検索することができます。1秒ほどで表示されます。今の所、ソート順は検索スコア(検索ワードとのマッチ度合い)で出しているので時系列順ではありません。
フロントのコードはここに置いてあります。
Elasticsearch にSlack のデータを流し込むのはこの記事を参考にしてやりました。
実際に流し込むコードはこれを使いました。
このシステムを作った理由ですが、Slack は無料プランだと1万件しかデータをためてなくて、それより古いメッセージは確認不能になっています。 なので古いメッセージを皆がいい感じに検索できれば便利だろうと思い、作りました(作っています)。
今後は見た目の改善、認証機能の追加などなどしていきたいと思います。
完成したらまた記事あげたいと思います(多分)。
なので短いですが、ここで切り上げます。
蛇足
ついでにKibana で遊びました。 研究室Slack の18%も僕がしゃべっていることが判明して流石に驚きました。
Slack大好きマン。
一応センサを扱う研究室だし、センサデータとかをElasticsearch にぶちこんでkibana で遊べるようになっておくと良いのかなーと思ったりするので、後輩とかにkibana を触りだけ教えられるようになったのは良かったかなと思う。
テキスト検索で強いElasticsearch だけど、センサのログとか雑に溜めておくのにも使える(?)っぽいよね。実際使いやすいかどうかはもっと使ってみないとわからんなー。わりと学習コストは高そうなんだよね Elasticsearch。知見あるひと tell me。