この記事は公開されてから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のリソース状況を可視化します。
やってみた
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は今後も注目しましょう!