【IoTの監視】MQTTとGraphiteを使用してGrafanaで可視化

【IoTの監視】MQTTとGraphiteを使用してGrafanaで可視化

Table of Contents

  • はじめに
  • 用語の説明
    • MQTT
    • Grafana
    • Graphite
  • 構造イメージ: MQTT、Graphite、Grafana
  • MQTT, Graphite, Grafanaの実装方法 - 方法1: 「私は普段忙しく、設定の失敗でさらに忙しくなる思いをしたくない方」 - 方法2: 「私は本物のエンジニアであるという方」
  • 実装の手順 - 方法1:ホストサービスを使用する(5分 - 方法2:すべてを自分で設定する(> 10時間
  • 実際に実装していく
    • 方法1:ホスティングサービスを利用する
  • 最後に

はじめに

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

MQTT (クライアント、ブローカー、チャネル)、Graphite (時系列データ収集)、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に直接お話いただければと思います。ご希望の方はこちらから

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

You might also like other posts...
grafana Mar 12, 2024 · 6 min read

The Value Hosted Graphite brings to the Heroku Marketplace

Maximizing Heroku Monitoring Insights with HostedGraphite. Unlocking Heroku's Full Potential Through Real-time Monitoring and... Continue Reading

grafana Nov 27, 2023 · 7 min read

Grafana Tutorial - Annotations

This Grafana tutorial is about annotations. Grafana annotations are for users who want to... Continue Reading

grafana Oct 30, 2023 · 2 min read

Grafanaの使い方:アノテーション(注釈)を追加する方法

Grafanaは、ユーザーがデータベースを監視および分析できるようにすることで、パフォーマンスの問題を特定して修正するのに役立つツールです。 Grafanaは、さまざまな機能を備えた優れたグラフと視覚化で有名です。 この記事では、Grafanaの機能の1つである注釈についてです。 Continue Reading

header image

We strive for
99.999% uptime

Because our system is your system.

14-day trial 14-day trial
No Credit Card Required No Credit Card Required