新入生の市之瀬拓実です。藤崎さんと大浦さんと一緒に、tracking-support(以降トラサポ)の開発に携わりました。 今回は、トラサポの背景、構成、携わった感想を綴っていきたいと思います。
技大祭にくるお客さんの人流を可視化し、次年度以降の技大祭での予算振り分けの考察に役立てること。
技大祭には、毎年多くのお客さんが訪れています。ただ現状の技大祭では、どの時間帯に、どこが混むかが感覚でしかわかっていません。 そこで、人流を計測し可視化することができれば、次年度以降の技大祭での予算をどの時間帯のどの場所にかければ良いか考察しやすくなると考えました。これを実現するため、トラサポの開発を行いました。
トラサポの構成図を以下に示します。
学内の各所にラズベリーパイを設置し、会場をカメラで撮影します。 撮影したラズベリーパイがそれぞれ人物検出を行い、リアルタイムで人数をlogに書き出します。 書き出されたlogを、ラズベリーパイ内のfilebeatがnutmegサーバへと送信します。 送信されたlogデータはnutmegサーバ内のlogstashが受け取り、kibanaが可視化できるデータ形式に変換します。 変換したデータはerasticserchに渡され、各ラズベリーパイごとのデータ(各会場ごとの人数)に分割されます。 最終的に、データをkibanaが可視化(グラフ化)を行います。
現状の課題として、私が感じたことについてです。 現在のトラサポでは、filebeatやlogstashなどのossに頼って通信を行っています。そのため自由に通信できず、通信の仕組みについてもよく理解できていません。 そのため将来的には、filebeat、logstashに変わるアプリケーションを独自で開発する必要があると考えています。
今回私は、ラズベリーパイにfilebeatを導入する部分に携わりました。filebeatの導入にはインフラ方面の知識も必要であり、尚且つfilebeat自体初めて触るため知っていることのほうが少なかったです。そのためfilebeatをうまく動かすことができず、また返ってくるエラーも調べてもよくわからないもので失敗ばかりでした。 しかし、それだけ学べることが多かったということでもあります。filebeatの使い方、仮想的なIPアドレスの固定化、ラズベリーパイに関する諸々など様々なことを知ることができました。 今回は正直、お手伝い程度の内容でしか力になることができませんでした。しかし今回学べたことを、今後のnutmegでの開発に生かせるよう努力していきたいと思います。