IoTデバイスをBeatsでリソースモニタリング(OpenBlocks編)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

藤本です。

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のリソース状況を可視化します。

IoT-Beats

やってみた

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版のインストーラを公式サイトからダウンロードし、インストールします。

screenshot 2016-03-04 18.19.03

# 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でデータを見てみましょう。
まずは、ドキュメントのデータ。

screenshot 2016-03-04 18.44.44

プロセス単位でプロセス名やCPU使用率、MEM使用量などデータが取れていますね。

次に、ダッシュボード。

screenshot 2016-03-04 17.35.18

ダッシュボードにはロードアベレージ、CPU/MEM使用率(OS単位、プロセス単位)などを表示しています。
相変わらず、ずっと眺められていそうなグラフたち。。

まとめ

いかがでしたでしょうか?
Beatsを利用すれば、簡単にIoTデバイスをモニタリングすることができました。beat-generatorによるBeats開発でご紹介したようにBeatsは簡単に開発できるのでIoTデバイスに応じたリソースモニタリングが可能です。Beatsは今後も注目しましょう!