openGemini + EMQ X + Grafana: IoT データ視覚化プラットフォームの実践

通常、IoT デバイスは一定のサンプリング期間に従ってデータを報告しますが、デバイスごとに収集されるデータも異なり、収集されるデバイスの規模、頻度、数は比較的多くなります。例えば、スマートグリッドは、スマート変電所、送電線、スマート双方向端末、スマートメーター、スマート中央システムなどで構成されており、それぞれの部分には多数の機器があり、多数のセンサーが統合されています。グリッド構築により、測定点の規模は数千万点以上に達し、測定点が異なればミリ秒レベル、秒レベルなどの異なる周波数でデータが生成されます。

IoT データには明らかな時系列特性があるため、時系列ストレージが必要となるため、時系列データベースを使用することをお勧めします。さらに、IoT データ収集には、多数のデバイス アクセスと大量の時系列データベース送信が含まれるため、メッセージ サーバーのアクセス スループット、バックエンド時系列データベースの書き込み、およびストレージ スペースの消費に大きな圧力がかかります。

データがデータベースに保存された後は、データの視覚化、AI インテリジェント分析、デジタル ツイン、アプリケーション インターフェイスの呼び出しなど、さまざまなビジネスに同時に提供する必要があります。これにより、同時実行性とパフォーマンスに大きな課題が生じます。バックエンド時系列データベースクエリのスループット要件。

EMQ X メッセージ ミドルウェアと openGemini ワンストップ ストレージおよび分析プラットフォームを組み合わせたテクノロジー スタックは、シナリオ内のデバイス アクセス、データ ストレージ、分析を完全に実行できます。そして長期的には、このテクノロジーの組み合わせは、予想されるビジネスの成長によってもたらされる、アクセス デバイスの数とクエリの同時実行性に対する需要の増加にも対応できます。

この記事では、 IoTにおける一般的なデータ視覚化シナリオを例として、 openGemini +  EMQ を紹介します。

はじめに

ソリューションの全体的な構造を次の図に示します。

写真

EMQ X の概要

EMQ EMQ _ _ _  _ _ _ 純粋にオープン ソースを使用したい場合は、 EMQ X (オープン ソース バージョン) + Telegraf + openGemini + Grafana の組み合わせを使用することもできます。Telegraf は EMQ からの MQTT メッセージを消費します。

openGeminiとは

openGemini は、Huawei Cloud のオープンソースのクラウドネイティブ分散時系列データベースであり、高パフォーマンス、高スケーラビリティ、高同時実行性の利点があります。主にモノのインターネットと運用および保守の監視シナリオを対象としており、大規模な時系列データベースの処理と分析のためのオープンソース ソリューションを提供します。openGemini はスタンドアロンとクラスターをサポートし、エッジ、クラウド、物理マシンの展開を含むさまざまな展開形式をサポートします。主流の開発言語とバイナリ実行をサポートし、サードパーティのコンポーネントに依存せず、システムの動作状況をリアルタイムで把握できる 260 以上のシステム動作監視インジケーターが含まれています。

グラファナの紹介

Grafana は、クロスプラットフォームのオープンソースのメトリクス分析および視覚化ツールであり、収集されたデータをクエリし、柔軟な構成を通じて視覚的に表示できます。クライアントチャートを迅速かつ柔軟に作成でき、公式ライブラリにはヒートマップ、折れ線グラフ、チャート、その他の表示方法などのダッシュボードプラグインが豊富に用意されています。openGemini、Graphite、InfluxDB、OpenTSDB、Prometheus、およびその他のデータ ソースをサポートします。カスタム ルールを作成して、他のメッセージング サービスまたはコンポーネントに通知できます。

ビジネスシーン

デバイスのバッチがあり、各デバイスがクライアント ID を持ち、すべてのデバイスが MQTT プロトコルを通じて MQTT サーバー上の対応するトピックにデータを送信すると仮定します。トピックの設計は次のとおりです。

devices/{client_id}/messages

各デバイスが送信するデータ形式はJSONで、センサーで収集した温度と湿度のデータが送信されます。

  •  
{    "temperature": 23,    "humidity" : 21}

ここで、将来いつでも表示できるように、データをリアルタイムで保存する必要があります。具体的な要件は次のとおりです。

  • 各デバイスは 5 秒ごとの頻度でデータを報告し、データベースは各データを保存する必要があります。

  • 可視化システムにより、任意の時間帯の温度・湿度の平均値、最大値、最小値、および全期間の平均温度・湿度を確認できます。

現在シナリオをリストしている視覚化プラットフォームの最終的な表示効果は次のとおりです。ダッシュボードの右上隅で、時間間隔と自動更新時間を選択できますこのとき、デバイスはデータを送信し続け、それに応じてダッシュボードのデータ値が変化し、より包括的な視覚化効果を実現します。

写真

環境整備

3 つの主要コンポーネントの公式 Web サイトにはすべて、さまざまなオペレーティング システム用のインストール パッケージ リソースとチュートリアルがあります。

  • EMQX公式サイト

    https://www.emqx.com/zh

  • openGemini公式サイト

    http://www.opengemini.org

  • グラファナ公式サイト

    https://グラファナ.com

データをopenGeminiに保存するようにEMQ Xを構成する

  1. EMQ Xのダッシュボードページで、左側の「データ統合」-> 「データブリッジ」->「InfluxDB」をクリックします。

写真

2. openGemini タイミング データベース情報を構成する

  • バージョン: V1

  • サーバーアドレス: 127.0.0.1:8086、127.0.0.1 を実際の IP アドレスに置き換えます。

  • データベース名: openGemini によって内部的に作成された実際のデータベース名

  • ユーザー名とパスワード: openGemini のユーザー名とパスワード (デフォルトでは入力する必要はありません)

  • TLS を有効にする: 開始するかどうかは、openGemini が HTTPS を有効にするかどうかによって異なります。

  • 解析されたデータの定義: データの測定値、フィールド、タイムスタンプ、およびタグを設定します。キー値はすべて変数をサポートしており、行プロトコルを使用して設定できます。

     

写真

3. 「作成」ボタンをクリックしてデータブリッジの作成を完了します。

4. ルールを作成する

データ ブリッジの作成プロセスが完了したら、書き込む必要があるデータを指定するルールの作成を続けます。

SELECT    clientid,    payload.temperature as temperature,    payload.humidity as humidityFROM    "devices/1/messages"
  • 「ダッシュボード」ページで、左側の「データ統合ルール」をクリックしてルールを作成します。

  • ルール ID ' my_rule'を入力し、SQL エディターにルールを入力します。ここでは、  'devices/1/messages' トピックの MQTT メッセージを InfluxDB に保存することを選択します。ルールで選択されたフィールド (SELECT 部分) を確認してください。ステップ 2 のフィールドが含まれています。データの解析時に使用される変数を定義します。ここでのルール SQL は次のとおりです。

  • アクションを追加し、アクションのドロップダウン ボックスで [データ ブリッジ転送を使用する] オプションを選択し、以前に作成したデータ ブリッジ (テスト) を選択します。

5. テスト

MQTT X クライアントを使用して、メッセージを 'devices/1/messages' トピックにパブリッシュし、データ収集をシミュレートします。この操作により、データを openGemini に書き込むためのルールとデータ ブリッジング プロセスもトリガーされます。

写真

mqttx pub -i emqx_c -t devices/1/messages -m '{"temperature": 23, "humidity": 21}' 

視覚的な構成

1. データ ソースを構成し、 Grafana ダッシュボード ページでデータ ソース InfluxDB を追加します。

写真

構成用の接続パラメータを入力します。デフォルトでは、主要な構成情報は次のとおりです。

  • URL: ここでは http://localhost:8086 を例にしますが、Localhos は実際の IP アドレスに応じて置き換える必要があります。

  • データベース: openGemini によって内部的に作成される実際のデータベース名。ここでは例として db0 が使用されます。

写真

2. ダッシュボードの追加データソースを追加した後、ダッシュボードを作成する必要があります。インターネット上には関連するチュートリアルがたくさんあるので、ここでは詳しく説明しません。なお、ダッシュボードは複数のデータパネルで構成されており、データパネルを作成する際には、どのようなデータを表示するかを検討し、その目的に応じてクエリSQLを設計する必要があります。さらに、より良い表示効果を得るには、数値、折れ線グラフ、円グラフなど、データをどのような形式で表示するのが最適かを考慮する必要もあります。

要約する

ここまで、EMQ X + openGemini + Grafana を使用して IoT データ送信、ストレージ分析、データ表示のプロセス全体を完了する方法を紹介しましたが、EMQ アプリケーションがコレクションに含まれていることが理解できたと思います。Grafana の他の機能を深く学習して習得した後、ユーザーはより完全なデータ視覚化や監視システムをカスタマイズできるようになります。

openGemini コミュニティは、より多くの大学や企業パートナーと協力して技術革新を共同で推進することを楽しみにしています

openGemini は未来を勝ち取るために一緒に革新します!

参考文献

  1. https://www.emqx.com/zh/blog/build-emqx-influxdb-grafana-iot-data-visualization-solution-in-one-hour

  2. https://docs.emqx.com/en/enterprise/v5.0/data-integration/data-bridge-influxdb.html#quick-starts


    openGemini公式ウェブサイト:http://www.openGemini.org

    openGemini オープンソース アドレス: https://github.com/openGemini

    openGemini パブリック アカウント:

    注目へようこそ~openGeminiコミュニティに参加して、一緒に未来を構築、管理、共有することを心から歓迎します!

オープンソース フレームワーク NanUI の作者がスチールの販売に切り替えたため、プロジェクトは中断されました。Apple App Store の無料リストのナンバー 1 はポルノ ソフトウェア TypeScript です。人気が出てきたばかりなのに、なぜ大手はそれを放棄し始めるのでしょうか。 ? TIOBE 10月リスト:Javaが最大の下落、C#はJavaに迫る Rust 1.73.0リリース AIガールフレンドにイギリス女王暗殺を勧められた男性に懲役9年の実刑判決 Qt 6.6正式リリース ロイター:RISC-Vテクノロジーが中米テクノロジー戦争の鍵となる 新たな戦場 RISC-V: 単一の企業や国に支配されない レノボ、Android PC の発売を計画
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/3234792/blog/10112443