みなさん、こんにちは。DatadogテクニカルエバンジェリストのTaijiです。
こちらは2022年アドベントカレンダー25日目の記事です🎄
前の記事は @yukin01 さんの Datadog SLO の推移をダッシュボードに表示する でした。
今回は、Azure IoT Hubをプラットフォームとして監視する方法を紹介したいと思います!
はじめに
現在、大手クラウドベンダーにおいて、MQTTブローカーも含めIoTのメッセージハブとなれる機能を提供しているケースが非常に少なくなっています。その中で、このAzure IoT Hubは、1つの有用な選択肢となると個人的に考えています。
趣味の範囲で運用する分には監視までは不要かと思いますが、業務領域で運用を考えているならば当然監視をどうするかも含め設計が必要になってきます。
DatadogとAzureのIntegration
Datadogでは幸いAzureとのIntegrationをデフォルトで提供しています。ですので、基本的にはAzureのアカウントをDatadogに紐付ける形でメトリクスを収集できるようになります。
では最初にDatadogの公式ドキュメントを見てみましょう。Integrationsの下にMicrosoft Azureのページがあります。
これによると、Azureに接続すると以下のことができるようです。
- Datadog Agent をインストールして、またはインストールせずに、Azure VM からメトリクスを取得。
- すべての Azure サービスの標準 Azure モニターメトリクスを収集: Application Gateway、App Service (Web および Mobile)、Batch サービス、イベントハブ、IoT Hub、Logic App、Redis Cache、サーバーファーム (App Service プラン)、SQL データベース、SQL 可変プール、仮想マシンスケールセットなど。
- リージョン、リソースグループ、カスタム Azure タグなど関連リソースについての Azure 固有の情報を Azure メトリクスにタグ付け。
- Datadog が生成したメトリクスを取得し Azure 環境固有のインサイトを提供。
- ログ、メトリクス、APM トレーシング、ユーザーアクティビティなどの間および Datadog 組織内の Azure アプリケーションからのデータを関連付け。
この2番めに記載のある「すべての Azure サービスの標準 Azure モニターメトリクスを収集」にIoT Hubも含まれていますね!
では、早速AzureとのIntegrationを行っていきましょう。
公式ドキュメントによるとCLIとAzureポータルでの両方からインテグレーションが可能なようです。
ここではシンプルにCLIでやってみたいと思います。
Azure CLIがインストールされてない方は、こちらを参考に自分の環境にCLIツールをインストールしておきましょう。
Azureへの操作
以下のコマンドでログインします。
az login
ブラウザが開きログインを求められるので自分のアカウントでログインします。
ログインに成功すると自分のアカウント情報が出力されると思います。
次に、サービスプリンシパルアプリケーションを作成します。以下のコマンドを実行しましょう。これは監視するサブスクリプションに対するmonitoring reader
ロールをサービスプリンシパルに付与します。
{subscription_id}には、前の手順で表示されたid
を設定します。
az ad sp create-for-rbac --role "Monitoring Reader" --scopes /subscriptions/{subscription_id}
アカウント情報が表示されない、または再度表示させたい場合は以下のコマンドを実行してください。
az account show
Integrationが完了するとAzureのActive Directoryに所有しているアプリケーション
として先程コマンドラインから作成したアプリが表示されます。
アプリの詳細画面から証明書とシークレット
を選択し、新しいクライアントシークレットを登録します。
説明はdatadogClientSecret
とします。
Datadogへの操作
IntegrationメニューからAzureのIntegrationを選び、[New App Registration]を選択します。
こちらにクライアントID
テナントID
クライアントシークレット
を入力します。
メトリクスのフィルターはとりあえずそのまま空にしておきましょう。
Azure IoT Hubのメトリクスは こちらから確認 できます。
最後にInstall Integration
をクリックします。
確かに前述の通り、AzureへのIntegrationをインストールしたら、同時にAzre IoT HubへのIntegrationも有効化されました。
ダッシュボードで確認
Datadogの左側のメニューから [Dashboard] を選択します。
デフォルトで主要なサービスのダッシュボード(レイアウト)が用意されています。Azure IoT Hubも用意されているのでこちらを選択してみましょう。
私の環境(Azure IoT Hub)では、1つのデバイスをクラウド上に作成済みなので、[Devices Registered] に1と表示されています。なお、物理デバイスは接続してないので、データは連携されておらず各チャートは空のままです、ごめんなさい。。。
いくつかのメジャーなメトリクスが予めレイアウトされており、すぐに使い始めることが可能です。
ダッシュボードレイアウトをカスタマイズしたい場合、ダッシュボード左上にある [Clone dashboard] をクリックして(コピーして)編集することができます。
まとめ
いかがでしたでしょうか?Datadogでは非常に簡単にAzure IoT Hubの監視ができることが分かりましたね。
これで、IoTをEnterprise向けに運用する際も、安心して運用保守していけるのではないでしょうか。
参考リンク
Azureポータル
Azure IoT Hub ドキュメント
Datadog 無料トライアルアカウント
DatadogとAzureのIntegration
DatadogとAzure IoT HubのIntegration