3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【IoTの監視】MQTTとGraphiteを使用してGrafanaダッシュボードでIoTデバイスメトリックを監視・可視化してみた

Posted at

#はじめに

IoTデバイスの普及により、私たちの身の回りには、さらに多くのデータで溢れるようになってきました。しかし、データ自体は、それに基づいて行動を起こすことができない限り、有用なものではありません。データを有効に活用していくために、IoTデータを視覚化させテイクことが必要で、この記事ではその方法を解説していきます。また、この記事では、IoT データとメトリクスという用語を互換性を持って説明させて頂きます。

MQTT (クライアント、ブローカー、チャネル)、[Graphite] (https://graphiteapp.org/) (時系列データ収集)、[Grafana] (https://github.com/grafana/grafana) (ダッシュボード)について全く馴染みがない場合は、次のセクションで簡単な紹介をします。すでにご存知の方は、その次のセクションにまでお進みください。

#用語の説明
###MQTT

MQTT: ブローカー、チャンネル、クライアント(発行者/購読者)

MQTTは、特にバッテリーが少なく、ネットワーク接続が理想的でないIoTデバイスで使用するために設計された軽量なプロトコルです。
MQTTは、「チャンネル」という概念に基づいたパブリッシュ・サブスクライブ通信パターンに基づいています。簡単に言えば、あなた(加入者)がMQTTチャンネルに加入していれば、そのチャンネルに送信する任意のIoTデバイス(パブリッシャー)からIoTデータを受信することが出来ます。

MQTTチャンネルはMQTT "ブローカー"によって管理されており、これを"サーバー"と考えるたとき、パブリッシャーと加入者は"クライアント"と考えることができます。

###Grafana
Grafanaとは、簡単に言えば、Grafanaがプラグインを持っているデータソースから、あらゆるデータを表示することができる、美しくて強力なダッシュボードシステムです。

image.png

各Grafanaプラグインは、以下のことを理解するアダプターとして機能します。

  • データストアがデータを保存する形式
  • データストアからデータを取り出す方法
  • データストアから取得したデータを、Grafanaがダッシュボードに表示するために使用するデータ形式に変換する方法

###Graphite
Graphiteは時系列データ収集システムです。Graphiteに格納された時系列データは、APIのエンドポイントからデータを取得することができます。

#構造イメージ: MQTT、Graphite、Grafana
すべてのコンポーネントをまとめてアーキテクチャ図を作ると以下のようになります。

スクリーンショット 2020-06-03 9.23.16.png

#MQTT, Graphite, Grafanaの実装方法
これらを実際に行っていく方法は2つあります。どちらを選択するかは、あなたがどのような人であるか、何らかの形で依存しています。あなたはどちらですか?

#####方法1: 「私は普段忙しく、設定の失敗でさらに忙しくなる思いをしたくない方」

  • ホストサービスを利用する
  • 所要時間5分(最低限のスキルセット)

#####方法2: 「私は本物のエンジニアであるという方」

  • すべて自分で設定してください
  • 所要時間は少なくとも10時間以上(スキル等による)

##実装の手順

それぞれの方法に必要な簡単な手順をご紹介します。
#####方法1:ホストサービスを使用する(5分

  1. MQTTチャネルを使用して、MQTTプロトコルを介してMQTTブローカーにデータを送信するようにIoTデバイスを設定
  2. GraphiteからIoTを取得して表示するようにGrafanaを設定

#####方法2:すべてを自分で設定する(> 10時間

  1. MQTTブローカーの設定
  2. Graphiteのセットアップ
  3. Grafanaの設定
  4. MQTTチャネルを使用して、MQTTプロトコルを介してMQTTブローカーにデータを送信するようにIoTデバイスを設定
  5. MQTTブローカーにサブスクライブするためのMQTTクライアントの設定
  6. Carbonプロトコルを介してIoTデータをGraphiteに送信するためにMQTTクライアントを設定
  7. GraphiteからIoTを取得して表示するようにGrafanaを設定

##実際に実装していく
###方法1:ホスティングサービスを利用する
この記事では、より簡単な方法1のみを紹介し、より複雑な方法2は近い将来、ゴリゴリの詳細と共に記事にしたいと思います。

  1. ホストされたMQTT/Graphite/Grafanaサービスにサインアップします。(推奨ツール:Metricfire (無料トライアルあり)

  2. ダッシュボードから MQTT ブローカーのエンドポイントとチャネルを取得します。

スクリーンショット 2020-06-03 10.02.30.png
  1. MQTTブローカーのエンドポイント/チャンネルに送信するようにIoTデバイスを設定します。

これはお使いのIoTデバイスにもよりますが、一般的には、前のステップからMQTTブローカーのホスト名/IPアドレスとMQTTチャネルにIoTデバイスのMQTTクライアント(パブリッシャー)をポイントするだけです。

  1. 左メニューのGrafanaをクリックして、ダッシュボードを可視化します。
スクリーンショット 2020-06-03 10.04.37.png

実際にGrafanaにIoTデータのダッシュボードを作る方法はこちらの「Grafanaを基礎から解説 〜実際に導入までしてみる〜をご参照ください。

image.png

データを可視化出来たら、あとはダッシュボードを好きなようにカスタマイズ、そしてアラート設定を行い、自分、またはチームメートと共に使用しやすいものに改良していきます。

#最後に

いかがだったでしょうか?監視は導入が大変というイメージがあるかもしれませんが、非常に簡単にセットアップできたはずです。
また、この時代、IoTにも監視は付き物となってきますので、是非こちらの方法をご検討ください。MetricFireでは無料相談やデモも行っているようなので、さらに詳しい内容をお求めの方はMetricFireに直接お話いただければと思います。ご希望の方はこちらから

それでは、またの記事でお会いしましょう!

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?