Elastic Stackで作るBI環境 Ver.7.4対応改訂版 (技術の泉シリーズ(NextPublishing))を出版しました

こんにちは。りまりま団のもふもふです。 2019年の11/29に『Elastic Stackで作るBI環境(技術の泉シリーズ(NextPublishing))』の最新版が出版されましたので、一つ前の版と何が異なっているのか記載したいと思います。

本について

『Elastic Stackで作るBI環境(技術の泉シリーズ(NextPublishing))』は、2017年4月に開催された技術書典2で頒布した『ログと情報をレッツ・ラ・まぜまぜ!~ELK Stack で作るBI環境~』というふざけた名前の同人誌が商業出版された本です。

techbookfest.org

mofu-mofu.booth.pm

表紙からしてふざけていますね。

本自体は、上司に大量のデータを分析してと無茶振りされた「もふもふちゃん」が、Elastic Stackを使ってデータ分析用のグラフを作ろう!という内容になっています。Elastic Stackの概要はもちろん、環境構築やコンフィグの設定例、情報が少ないKibana画面の操作方法を網羅的に記述したElastic Stackの入門書です。

www.elastic.co

初版は2017年に発行されました。ありがたいことに毎年改訂させていただいています。 2018年には当時の最新版であるバージョン6.4版に改訂させていただきました。今も購入頂いているようで、大変にありがたいことです。

それでは、バージョン6.4版から大きく変化した部分を紹介します。

Kibanaのスクリーンショットをバージョン7.4版に変更

Elastic Stackはバージョンアップが早いツールです。バージョン5から6、6から7といったように、メジャーバージョンが上がるとKibanaの見た目がガラリと変化します。

f:id:MofuMofu:20191130180403j:plain
バージョン6のKibana

f:id:MofuMofu:20191130180505j:plain
バージョン7のKibana

全然見た目が違いますね!

『Elastic Stackで作るBI環境』では、「もふもふちゃんと一緒にElastic Stackの操作をすれば同じような環境を作成してElastic Stackの雰囲気を掴める」ことを目標にしています。Kibanaは画面の操作が多いツールです。スクリーンショットが前のバージョンでは全く参考になりません。

そこで、KibanaのスクリーンショットをElastic Stackのバージョン7.4版に差し替えました。手元に環境構築を行い、過去バージョンの原稿を読みながら該当操作のスクリーンショットを撮っています。面倒な作業ですが、文章の見直しもできて一石二鳥と思っています。

Kibanaでグラフを作成する・データを検索するといった操作は情報が少ないので、なるべく1つボタンをクリックするごとにスクリーンショットを挟むようにしています。その分撮り直しは増えるのですが、分かりやすさを優先するため頑張ってます。

Logstashで取得するデータをTwitterのつぶやき履歴からいちごメロンパンの売り上げに変更

バージョン6.4版までは、Elastic Stackでグラフを描画するお題を次のようにしていました。

  • Twitterのつぶやき情報をCSVデータに加工したもの
  • サーバー(やPC)のCPUやメモリ使用率

もふもふちゃんは、本の冒頭でこのように無茶振りされています。

ある日、イチゴメロンパンを売っている会社で働くもふもふちゃんは、上司の人からいきなりこんなことを言われました。

「もふもふちゃん、最近いちごメロンパンの通販を受け付けるWebサイトの調子が悪いんだ。サーバーのスペックを上げた方が良いのかわからないから、1週間分のCPU使用率やメモリの使用率とかが知りたいな。あと、できればWebサーバーのApacheプロセスがどのくらい動いているか分かるといいよね。」

引用元: Elastic Stackで作るBI環境 誰でもできるデータ分析入門ーElastic Stackって何?(Think IT)

thinkit.co.jp

今回のバージョンから、TwitterのつぶやきをCSV化するのをやめました。いちごメロンパンの売り上げ情報が記述されたCSVをLogstashで取得し、そのデータを加工してElasticsearchに連携するようにしています。

お題を変更した一番の理由1は「取得するデータを現実にあり得そうなものに近づけたい」からです。Twitterのつぶやき内容をElastic Stackで分析する場面は少ないでしょう。せっかくElastic Stackを試すのですから、普段の業務などに役立てるようにしたいと考えました。

ApacheやNginxなど、Webサーバーのログを分析しても良かったのですが、これらの情報はブログ記事が多く記述されています。そこで、「自分の環境に合わせてLogstashのコンフィグを書くならどうする?」という場面を念頭におき、0からコンフィグを作り上げる工程を再現できるようにしています。

本文でも「CSVだからこう記述します!」ではなく、「このデータを削除したいので、削除用設定を導入します。ドキュメントはここを見ます」のような形式で説明しています。自分の環境で設定を作るときの考え方・公式ドキュメントの参照方法が伝わると良いなあと思っています。

元データはここで配布していますので、必要に応じてダウンロードしてください。

docs.google.com

雑多な感想

前の版と大きく異なる部分はKibanaのスクリーンショット使用データの変更の2種類です。それ以外にも、バージョン7から追加された機能の紹介や最新版に合わせた環境構築手順、文章がイマイチだった部分の修正、と全体的に修正を入れています。

この本の魅力は「詳しすぎない人が書いているので、Elastic Stack初めての人がつまづきやすいポイントをカバーしている」点なのかな、と自分では思っています。ここ最近の仕事ではVue.jsを用いたフロントエンド開発をメインに取り組んでおり、Elsatic Stackはほとんど使っていません。普段使っていないからこそ、Elastic Stackを使い始める人と同じ気持ちになって説明が欲しい点を調べて記述できるのかな、と考えています。

内容は@johtaniさんに査読頂いているため、「内容が間違ってる〜〜〜!」なんてことは無いはずです。記載している内容は手元の環境で動作検証も行っていますし…。それでも間違ってるところがあればすみません。

正直に言って、ここまで息が長い本になるとは思っていませんでした。いつの間にかElastic Stack 入門でGoogle検索すると、『Elastic Stackで作るBI環境』が出てくるようになって驚いています。

購入いただいたみなさま、大変にありがとうございます。もしまた改訂作業の機会をいただいたらスクリーンショットを撮り直しつつ、本をより良いものにできればなあ、と思っています。ところでバージョン8はいつ出るんでしょうね。


  1. もふもふちゃんの普段のツイートから版権がらみの内容を削るのが大変でデータを作るのがめんどくさかった、という理由もあります。しょうがないよね、ゲームしたらスクリーンショットとりたいもん。