Table of Contents
- はじめに
- 用語の説明
- 構造イメージ: MQTT、Graphite、Grafana
- MQTT, Graphite, Grafanaの実装方法 - 方法1: 「私は普段忙しく、設定の失敗でさらに忙しくなる思いをしたくない方」 - 方法2: 「私は本物のエンジニアであるという方」
- 実装の手順 - 方法1:ホストサービスを使用する(5分 - 方法2:すべてを自分で設定する(> 10時間
- 実際に実装していく
- 最後に
はじめに
IoTデバイスの普及により、私たちの身の回りには、さらに多くのデータで溢れるようになってきました。しかし、データ自体は、それに基づいて行動を起こすことができない限り、有用なものではありません。データを有効に活用していくために、IoTデータを視覚化させテイクことが必要で、この記事ではその方法を解説していきます。また、この記事では、IoT データとメトリクスという用語を互換性を持って説明させて頂きます。
MQTT (クライアント、ブローカー、チャネル)、Graphite (時系列データ収集)、Grafana (ダッシュボード)について全く馴染みがない場合は、次のセクションで簡単な紹介をします。すでにご存知の方は、その次のセクションにまでお進みください。
用語の説明
MQTT
MQTT: ブローカー、チャンネル、クライアント(発行者/購読者)
MQTTは、特にバッテリーが少なく、ネットワーク接続が理想的でないIoTデバイスで使用するために設計された軽量なプロトコルです。
MQTTは、「チャンネル」という概念に基づいたパブリッシュ・サブスクライブ通信パターンに基づいています。簡単に言えば、あなた(加入者)がMQTTチャンネルに加入していれば、そのチャンネルに送信する任意のIoTデバイス(パブリッシャー)からIoTデータを受信することが出来ます。
MQTTチャンネルはMQTT "ブローカー"によって管理されており、これを"サーバー"と考えるたとき、パブリッシャーと加入者は"クライアント"と考えることができます。
Grafana
Grafanaとは、簡単に言えば、Grafanaがプラグインを持っているデータソースから、あらゆるデータを表示することができる、美しくて強力なダッシュボードシステムです。
各Grafanaプラグインは、以下のことを理解するアダプターとして機能します。
- データストアがデータを保存する形式
- データストアからデータを取り出す方法
- データストアから取得したデータを、Grafanaがダッシュボードに表示するために使用するデータ形式に変換する方法
Graphite
Graphiteは時系列データ収集システムです。Graphiteに格納された時系列データは、APIのエンドポイントからデータを取得することができます。
構造イメージ: MQTT、Graphite、Grafana
すべてのコンポーネントをまとめてアーキテクチャ図を作ると以下のようになります。
MQTT, Graphite, Grafanaの実装方法
これらを実際に行っていく方法は2つあります。どちらを選択するかは、あなたがどのような人であるか、何らかの形で依存しています。あなたはどちらですか?
方法1: 「私は普段忙しく、設定の失敗でさらに忙しくなる思いをしたくない方」
- ホストサービスを利用する
- 所要時間5分(最低限のスキルセット)
方法2: 「私は本物のエンジニアであるという方」
- すべて自分で設定してください
- 所要時間は少なくとも10時間以上(スキル等による)
実装の手順
それぞれの方法に必要な簡単な手順をご紹介します。
方法1:ホストサービスを使用する(5分
- MQTTチャネルを使用して、MQTTプロトコルを介してMQTTブローカーにデータを送信するようにIoTデバイスを設定
- GraphiteからIoTを取得して表示するようにGrafanaを設定
方法2:すべてを自分で設定する(> 10時間
- MQTTブローカーの設定
- Graphiteのセットアップ
- Grafanaの設定
- MQTTチャネルを使用して、MQTTプロトコルを介してMQTTブローカーにデータを送信するようにIoTデバイスを設定
- MQTTブローカーにサブスクライブするためのMQTTクライアントの設定
- Carbonプロトコルを介してIoTデータをGraphiteに送信するためにMQTTクライアントを設定
- GraphiteからIoTを取得して表示するようにGrafanaを設定
実際に実装していく
方法1:ホスティングサービスを利用する
この記事では、より簡単な方法1のみを紹介し、より複雑な方法2は近い将来、ゴリゴリの詳細と共に記事にしたいと思います。
-
ホストされたMQTT/Graphite/Grafanaサービスにサインアップします。(推奨ツール:Metricfire (無料トライアルあり)
-
ダッシュボードから MQTT ブローカーのエンドポイントとチャネルを取得します。
- MQTTブローカーのエンドポイント/チャンネルに送信するようにIoTデバイスを設定します。
これはお使いのIoTデバイスにもよりますが、一般的には、前のステップからMQTTブローカーのホスト名/IPアドレスとMQTTチャネルにIoTデバイスのMQTTクライアント(パブリッシャー)をポイントするだけです。
- 左メニューのGrafanaをクリックして、ダッシュボードを可視化します。
実際にGrafanaにIoTデータのダッシュボードを作る方法はこちらの「Grafanaを基礎から解説 〜実際に導入までしてみる〜をご参照ください。
データを可視化出来たら、あとはダッシュボードを好きなようにカスタマイズ、そしてアラート設定を行い、自分、またはチームメートと共に使用しやすいものに改良していきます。
最後に
いかがだったでしょうか?監視は導入が大変というイメージがあるかもしれませんが、非常に簡単にセットアップできたはずです。
また、この時代、IoTにも監視は付き物となってきますので、是非こちらの方法をご検討ください。MetricFireでは無料相談やデモも行っているようなので、さらに詳しい内容をお求めの方はMetricFireに直接お話いただければと思います。ご希望の方はこちらから
それでは、またの記事でお会いしましょう!