IoTデバイスをBeatsでリソースモニタリング(OpenBlocks編)
はじめに
藤本です。
Beats開発もやってみて、最近Beatsで色々と試すことを楽しんでいます。今回はIoTの波に乗りました。
概要
BeatsはGo言語で開発された軽量なData Shipperです。Beats(Go言語)の魅力は軽量なだけではなく、あらゆるOS/Archで動作するGo言語が持つクロスコンパイルも魅力の一つです。
Go言語(2016/03/04現在)では以下のOS/Archの組み合わせに対応しています。
GOOS | GOARCH |
---|---|
darwin | 386 |
darwin | amd64 |
darwin | arm |
darwin | arm64 |
dragonfly | amd64 |
freebsd | 386 |
freebsd | amd64 |
freebsd | arm |
linux | 386 |
linux | amd64 |
linux | arm |
linux | arm64 |
linux | ppc64 |
linux | ppc64le |
linux | mips64 |
linux | mips64le |
netbsd | 386 |
netbsd | amd64 |
netbsd | arm |
openbsd | 386 |
openbsd | amd64 |
openbsd | arm |
plan9 | 386 |
plan9 | amd64 |
solaris | amd64 |
windows | 386 |
windows | amd64 |
今回は軽量さ、あらゆる環境での動作を享受できるIoTデバイス上でBeatsを動作させ、リソースをモニタリングしてみます。
IoTデバイスはOpenBlocks IoT BX1を利用しました。OpenBlocks IoT BX1に関してはこちらをご参照ください。
環境
今回はOpenBlocksにTopbeatを動作させ、ElasticsearchにIoTデバイスのリソース状況を投入し、KibanaのダッシュボードでIoTのリソース状況を可視化します。
やってみた
OpenBlocksのOS情報確認
OpenBlocksのOS情報は以下のようになります。
root@obsiot:~# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 7 (wheezy)" NAME="Debian GNU/Linux" VERSION_ID="7" VERSION="7 (wheezy)" ID=debian ANSI_COLOR="1;31" HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support/" BUG_REPORT_URL="http://bugs.debian.org/" root@obsiot:~# uname -m i686
fmfm
Debian(wheezy)の32bitですね。
インストール
deb形式32bit版のインストーラを公式サイトからダウンロードし、インストールします。
# wget https://download.elastic.co/beats/topbeat/topbeat_1.1.1_i386.deb root@obsiot:~# dpkg -i /tmp/topbeat_1.1.1_i386.deb Selecting previously unselected package topbeat. (Reading database ... 23985 files and directories currently installed.) Unpacking topbeat (from /tmp/topbeat_1.1.1_i386.deb) ... Setting up topbeat (1.1.1) ... root@obsiot:~# dpkg -L topbeat /. /usr /usr/share /usr/share/doc /usr/share/doc/topbeat /usr/share/doc/topbeat/changelog.Debian.gz /usr/bin /usr/bin/topbeat-god /usr/bin/topbeat /lib /lib/systemd /lib/systemd/system /lib/systemd/system/topbeat.service /etc /etc/init.d /etc/init.d/topbeat /etc/topbeat /etc/topbeat/topbeat.template.json /etc/topbeat/topbeat.yml
Topbeat設定
Topbeat設定、Index Templateの準備、Kibana Dashboardの準備はTopbeat + boot2dockerでMacBookのシステムモニタリングをご参照ください。
動作確認
データを溜めるためしばし放置します。
。。
それではデータを見てみましょう。
まずは、Elasticsearchのインデックスを確認します。
$ curl localhost:9200/_cat/indices yellow open .kibana 1 1 103 0 85.7kb 85.7kb yellow open topbeat-2016.03.04 5 1 15560 0 3.1mb 3.1mb
topbeat-YYYY.MM.DDに多くのドキュメントがインデックスされていますね。
次に、Kibanaでデータを見てみましょう。
まずは、ドキュメントのデータ。
プロセス単位でプロセス名やCPU使用率、MEM使用量などデータが取れていますね。
次に、ダッシュボード。
ダッシュボードにはロードアベレージ、CPU/MEM使用率(OS単位、プロセス単位)などを表示しています。
相変わらず、ずっと眺められていそうなグラフたち。。
まとめ
いかがでしたでしょうか?
Beatsを利用すれば、簡単にIoTデバイスをモニタリングすることができました。beat-generatorによるBeats開発でご紹介したようにBeatsは簡単に開発できるのでIoTデバイスに応じたリソースモニタリングが可能です。Beatsは今後も注目しましょう!