Microsoft Azure
Incident Management が一般に使用できるようになりました。 Incident Management が広範に使用できるようになりました。

Microsoft Azure

Crawler Crawler

概要

Microsoft Azure に接続すると、以下のことができます。

  • Agent をインストールして、またはインストールしないで、Azure VM からメトリクスを取得できます。
  • Azure VM に Azure 固有の情報 (場所など) をタグ付けできます。
  • 他のサービスのメトリクスを取得できます。Application Gateway、App Service (Web および Mobile)、Batch サービス、イベントハブ、IOT Hub、Logic App、Redis Cache、サーバーファーム (App Service プラン)、SQL データベース、SQL 可変プール、仮想マシンスケールセットなどが含まれます。
Datadog の Azure インテグレーションは、Azure Monitor からすべてのメトリクスを収集するように構築されています。Datadog では継続的にドキュメントを更新してすべてのサブインテグレーションを表示できるように努めていますが、新しいメトリクスやサービスがクラウドサービスから次々にリリースされるため、インテグレーション一覧が追い付かないことがあります。
azure.*.status および azure.*.count メトリクスは、Datadog により Azure Resource Health から生成されています。このメトリクスに関する詳細は、こちらでご確認いただけます
インテグレーション説明
Analysis Servicesクラウドでデータモデルを提供するサービス
API ManagementAPI を公開、セキュリティ保護、変換、管理、監視するサービス
App ServiceWeb、モバイル、API、およびビジネスロジックアプリケーションをデプロイおよびスケーリングするためのサービス
App Service EnvironmentApp Service のアプリを大規模かつ安全に実行するための環境を提供するサービス
App Service PlanWeb アプリを実行するためのコンピューティングリソースのセット
Application GatewayWeb アプリケーションへのトラフィックを管理できる Web トラフィックロードバランサー
Automation複数の環境を横断して自動化と構成管理を提供するサービス
Batch Serviceマネージド型のタスクスケジューラーおよびプロセッサー
Cognitive ServicesAI やデータサイエンスの知識なしでアプリケーションの構築を可能にする API、SDK、サービス
Container Instances基底のインフラストラクチャーをプロビジョニングおよび管理する必要なく、コンテナをデプロイするサービス
Container Service実稼働準備が整った Kubernetes、DC/OS、または Docker Swarm クラスター
Cosmos DBドキュメント、キー/値、ワイドカラム、グラフデータベースなどをサポートするデータベースサービス
Customer Insightsオーガニゼーションが複数のデータセットを結合して、360 度の包括的な顧客ビューを構築できるようにするサービス
Data Explorer迅速かつスケーラブルなデータ調査サービス
Data Factoryデータの保管・移動・処理サービスを、自動化されたデータパイプラインとして構築するサービス
Data Lake Analyticsビッグデータを簡略化する分析ジョブサービス
Data Lake Storeビッグデータ分析を可能にする無制限のデータレイク
Database for MariaDBエンタープライズ対応のフルマネージド型コミュニティ MariaDB データベースを提供するサービス
Event Grid公開/サブスクライブモデルを使用して均一なイベント消費を可能にするイベントルーティングサービス
Event Hubマネージド型の大規模データストリーミングサービス
ExpressRouteオンプレミスのネットワークをクラウドに拡張するサービス
FirewallAzure Virtual Network のリソースを保護するクラウドネイティブのネットワークセキュリティ
Functionsイベントトリガーに呼応してコードをサーバーレスで実行するサービス
HDInsights膨大な量のデータを処理するクラウドサービス
IOT Hub何十億もの IOT 資産の接続、監視、管理
Key Vaultクラウドアプリケーションおよびサービスが使用する暗号化キーを保護および管理するサービス
Load Balancerアプリケーションをスケーリングし、サービスの高可用性を実現
Logic App強力なインテグレーションソリューションの構築
Machine Learningモデルをより早く構築しデプロイするための、エンタープライズレベルの機械学習サービス
Network InterfacesVM とインターネット、Azure、オンプレミスリソースとの通信を提供
Notification Hubs任意のバックエンドから任意のプラットフォームへ通知を送信できるようにするプッシュエンジン
Public IP Addressインターネットとのインバウンド通信およびアウトバウンド接続を可能にするリソース
Redis Cacheマネージド型のデータキャッシュ
Relay企業ネットワーク内で実行されているサービスをパブリッククラウドに安全に公開
Cognitive Search優れた検索エクスペリエンスを追加するためのツールを提供する、サービスとしての検索クラウドソリューション
StorageBLOBファイルキューテーブルのためのストレージ
Stream Analyticsデバイスからの大量のデータストリーミングを調べるイベント処理エンジン
SQL Databaseクラウドの拡張性の高いリレーショナルデータベース
SQL Database Elastic Pool複数のデータベースのパフォーマンス管理
Usage and Quotasお使いの Azure の使用状況を示します。
Virtual Machine仮想マシン管理サービス
Virtual Machine Scale Set同一の VM をセットでデプロイ、管理、オートスケーリング
Virtual NetworkAzure リソースがお互いと、インターネットと、オープンプレミスネットワークと、安全に通信できるようにします。

セットアップ

インストール

Azure CLI ツールまたは Azure ポータルを使用して、Microsoft Azure アカウントを Datadog と統合します。このインテグレーション方法は、すべての Azure クラウド (パブリック、中国、ドイツ、政府) で自動的に機能します。以下の手順に従うと、Datadog は、使用されているクラウドを自動的に検出してインテグレーションを完了します。

Azure CLI を使用して統合する

Azure CLI を使用して Datadog を Azure と統合するには、Azure CLI をインストールしておく必要があります。

最初に、Datadog と統合する Azure アカウントにログインします。

az login

account show コマンドを実行します。

az account show

生成されたテナント ID 値を Datadog Azure インテグレーションタイルTenant name/ID に入力します。

次の形式を使用して、サービスプリンシパルとなるアプリケーションを作成します。

az ad sp create-for-rbac --role "Monitoring Reader" --scopes /subscriptions/{subscription_id}
  • このコマンドは、監視するサブスクリプションに対する monitoring reader ロールをサービスプリンシパルに付与します。
  • このコマンドによって生成されたappIDDatadog Azure インテグレーションタイルClient ID に入力する必要があります。
  • 自分で選択した名前を使用する場合は、--name <CUSTOM_NAME> を追加します。それ以外の場合は、Azure によって一意の名前が生成されます。この名前は、セットアッププロセスでは使用されません。
  • 自分で選択したパスワードを使用する場合は、--password <CUSTOM_PASSWORD> を追加します。それ以外の場合は、Azure によって一意のパスワードが生成されます。このパスワードは、Datadog Azure インテグレーションタイルClient Secret に入力する必要があります。

最初に、Datadog と統合する Azure アカウントにログインします。

azure login

account show コマンドを実行します。

az account show

生成されたテナント ID 値を Datadog Azure インテグレーションタイルTenant name/ID に入力します。

名前とパスワードを作成します。

azure ad sp create -n <NAME> -p <PASSWORD>
  • <NAME> は使用されませんが、セットアッププロセスの一環として必要です。
  • 選択した <PASSWORD> は、Datadog Azure インテグレーションタイルClient Secret に入力する必要があります。
  • このコマンドから返されるオブジェクト ID を、次のコマンドの <OBJECT_ID> の代わりに使用します。

次の形式を使用して、サービスプリンシパルとなるアプリケーションを作成します。

azure role assignment create --objectId <オブジェクト_ID> -o "Monitoring Reader" -c /subscriptions/<サブスクリプション_ID>/
  • このコマンドは、監視するサブスクリプションに対する monitoring reader ロールをサービスプリンシパルに付与します。
  • このコマンドによって生成されたサービスプリンシパル名Datadog Azure インテグレーションタイルClient ID に入力する必要があります。
  • <SUBSCRIPTION_ID> は監視対象の Azure サブスクリプションです。これは、azure account show コマンドを使用すると、またはポータルに ID として一覧表示されます。

最初に、Datadog と統合する Azure アカウントにログインします。

azure login

account show コマンドを実行します。

az account show

生成されたテナント ID 値を Datadog Azure インテグレーションタイルTenant name/ID に入力します。

名前、ホームページ、識別子 URI、パスワードを作成します。

azure ad app create --name "<NAME>" --home-page "<URL>" --identifier-uris "<URL>" --password "<PASSWORD>"

以下を使用して、サービスプリンシパルを作成します。

Azure cli < 0.10.2 の場合

azure ad sp create {app-id}

Azure cli >= 0.10.2 の場合

azure ad sp create -a {app-id}
  • このコマンドから返されるオブジェクト ID を、次のコマンドの <OBJECT_ID> の代わりに使用します。

次の形式を使用して、Active Directory アプリケーションを作成します。

azure role assignment create --objectId <オブジェクト_ID> --roleName "Monitoring Reader" --subscription <サブスクリプション_ID>
  • このコマンドは、監視するサブスクリプションに対する monitoring reader ロールをサービスプリンシパルに付与します。
  • <SUBSCRIPTION_ID> は監視対象の Azure サブスクリプションです。これは、azure account show コマンドを使用すると、またはポータルに ID として一覧表示されます。

Azure ポータルを使用して統合する

  1. Active Directory でアプリ登録を作成し、正しい認証情報を Datadog に渡します。
  2. 監視するサブスクリプションに対する読み取りアクセス権をこのアプリケーションに付与します。
アプリ登録の作成
  1. Azure Active Directory で、アプリの登録に移動し、新規登録をクリックします。
  2. 以下の各項目を入力し、作成ボタンをクリックします。: 名前とサインオン URL は使用されませんが、セットアッププロセスで必要です。
  • 名前: Datadog Auth
  • サポート対象のアカウントの種類: この組織ディレクトリのアカウントのみ (Datadog)
  • リダイレクト URI: https://app.datadoghq.com、Datadog EU サイトを使用する場合は、https://app.datadoghq.eu
読み取りアクセス許可をアプリケーションに付与する
  1. 検索ボックスまたは左のサイドバーから、サブスクリプションに移動します。

  2. 監視するサブスクリプションをクリックします。

  3. サブスクリプションのメニューでアクセス制御 (IAM)を選択し、次に追加 -> ロールの割り当ての追加を選択します。

  4. Role では、 Monitoring Reader を選択します。Select では、前の手順で作成したアプリケーションの名前を選択します。

  5. 保存をクリックします。

  6. Datadog を使用して監視する他のサブスクリプションについても、この手順を繰り返します。: Azure Lighthouse のユーザーは、顧客テナントからサブスクリプションを追加できます。

: ARM によってデプロイされた VM がメトリクスを収集できるようにするには、診断を有効にする必要があります。診断の有効化を参照してください。

インテグレーションを完了する
  1. App Registrations で、作成したアプリを選択します。Application IDTenant ID をコピーし、Datadog Azure インテグレーションタイルClient IDTenant ID に貼り付けます。

  2. 同じアプリで、Manage -> Certificates and secrets と移動します。

  3. datadogClientSecret という新しい Client Secret を追加し、 Expires を選択し、Add をクリックします。

  4. キー値が表示されたら、コピーして Datadog Azure インテグレーションタイルClient Secret に貼り付け、Install Integration または Update Configuration をクリックします。

コンフィギュレーション

オプションで、Optionally filter to VMs with tag にタグを入力することで、Datadog にプルされる Azure VM を制限できます。

この <KEY>:<VALUE> 形式のタグのカンマ区切りリストは、メトリクスを収集する際に使用されるフィルターを定義します。? (1 文字の場合) や * (複数文字の場合) などのワイルドカードも使用できます。定義されたタグのいずれかに一致する VM だけが Datadog にインポートされます。それ以外は無視されます。タグの前に ! を追加することで、指定されたタグに一致する VM を除外することもできます。たとえば、以下のとおりです。

datadog:monitored,env:production,!env:staging,instance-type:c1.*

メトリクスの収集

インテグレーションタイルのセットアップが完了すると、メトリクスがクローラーによって収集されます。他のメトリクスを収集する場合は、以下のように、Datadog Agent を VM にデプロイします。

Agent のインストール

  1. Azure ポータルで、 VM -> Settings -> Extensions -> Add と移動し、Datadog Agent を選択します。
  2. 作成をクリックし、Datadog API キーを入力して、OKをクリックします。

オペレーティングシステムまたは CICD ツールに応じた Agent のインストール方法については、アプリ内の Datadog Agent のインストール手順を参照してください。

: Azure の拡張機能と併せて Datadog Agent をインストールする場合、ドメインコントローラーはご利用いただけません。

検証

新しいサブスクリプションでアプリケーションから取得したメトリクスが表示されるまで数分かかる場合があります。

Azure VM のデフォルトのダッシュボードに移動し、このダッシュボードにインフラストラクチャーのデータが表示されていることを確認します。

ログの収集

Azure から Datadog へログを送信する最適な方法は、Agent または DaemonSet を使うことです。一部のリソースではできない場合があります。その場合、Azure Event Hub を使いログ転送パイプラインを作成し、Azure プラットフォームログを収集することをお勧めします。Azure プラットフォームログを Event Hub にストリーミングできないリソースには、Blob Storage 転送オプションを使用できます。

Datadog が提供する、使用できる自動スクリプトは 2 つあります。

最初のスクリプトは、アクティビティログを Datadog アカウントにストリーミングするために必要な Azure リソースを作成、構成します。これらのリソースには、アクティビティログの診断設定、Azure Functions、Event Hub ネームスペース、Event Hub が含まれます。

2 番目のスクリプトは、診断設定なしで、Event Hub と Azure Function の部分のみをデプロイするより一般的なオプションです。これは、ストリーミングソースを構成するために使用できます。いずれの場合も、Event Hub は他のストリーミングソースで使用できます。

例:

‘westus’ からアクティビティログとリソースログの両方をストリーミングする場合は、オプションのパラメーター ‘-ResourceGroupLocation westus’ を含む最初のスクリプトを実行します (アクティビティログはサブスクリプションレベルのソースであるため、任意のリージョンでパイプラインを作成できます)。これがデプロイされると、‘westus’ のリソースに診断設定を追加することで、同じ Event Hub を介してリソースログを送信できます。

Azure から Datadog へのアクティビティログの送信:

ステップ 1: Azure ポータルで、Cloud Shell に移動します。

ステップ 2: 以下のコマンドを実行して、自動化スクリプトを Cloud Shell 環境にダウンロードします。

アクティビティログステップ 1

(New-Object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/DataDog/datadog-serverless-functions/master/azure/eventhub_log_forwarder/activity_logs_deploy.ps1", "activity_logs_deploy.ps1")

スクリプトの内容を表示することもできます。

ステップ 3: 以下のコマンドを実行してスクリプトを呼び出します。<api_key>Datadog API トークンに置き換え、<subscription_id> を Azure サブスクリプション ID に置き換えます。他のオプションのパラメーターを追加して、デプロイを構成することもできます。オプションのパラメーターを参照してください。

アクティビティログステップ 2

./activity_logs_deploy.ps1 -ApiKey <api_key> -SubscriptionId <subscription_id> 

Azure から Datadog へのプラットフォームログの送信:

Azure プラットフォームログ (リソースログを含む) を送信するための一般的なソリューションの場合、Event Hub とログフォワーダーのみをデプロイすることもできます。 このパイプラインをデプロイした後、各ログソースの診断設定を作成し、Datadog にストリーミングするように構成できます。

ステップ 1: Azure ポータルで、Cloud Shell に移動します。

ステップ 2: 以下のコマンドを実行して、自動化スクリプトを Cloud Shell 環境にダウンロードします。

プラットフォームログステップ 1

(New-Object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/DataDog/datadog-serverless-functions/master/azure/eventhub_log_forwarder/resource_deploy.ps1", "resource_deploy.ps1")

[スクリプトの内容を表示する](https://github. com/DataDog/datadog-serverless-functions/blob/master/azure/eventhub_log_forwarder/resource_deploy.ps1)こともできます。

ステップ 3: 以下のコマンドを実行してスクリプトを呼び出します。<api_key>Datadog API トークンに置き換え、<subscription_id> を Azure サブスクリプション ID に置き換えます。他のオプションのパラメーターを追加して、デプロイを構成することもできます。オプションのパラメーターを参照してください。

プラットフォームログステップ 2

./resource_deploy.ps1 -ApiKey <api_key> -SubscriptionId <subscription_id> 

ステップ 4: Datadog にログを送信するすべての Azure リソースの診断設定を作成します。これらの診断設定を構成して、作成したばかりの Event Hub へのストリーミングを開始します。

注: リソースは同じ Azure リージョン内の Event Hub にのみストリーミングできるため、リソースログをストリーミングするリージョンごとにステップ 2 を繰り返す必要があります。

注: プラットフォームログパイプライン用にデプロイされたすべての Azure リソースには、デフォルト名に追加された Resource-Group-Location が含まれています。例: ‘datadog-eventhub-westus’。ただし、パラメーターをオーバーライドすれば、この規則を変更できます。

オプションパラメーター

注: パラメーターをカスタマイズするときは、カスタムリソース名が一意であることを確認してください。リソース名が他の Azure リソースのリスト内にまだ存在していないことを確認します。

-Flag <Default Parameter>説明
-DatadogSite <datadoghq.com>このフラグを別の datadog-url を使用してパラメーターとして追加して、Datadog インスタンスをカスタマイズします。Datadog サイト:
-Environment <AzureCloud>このフラグをパラメーターとして追加して、Azure 独立クラウドのストレージを管理します。追加のオプションは、AzureChinaCloudAzureGermanCloudAzureUSGovernment です。
-ResourceGroupLocation <westus2>更新された Azure-region を使用してこのフラグを追加することにより、Azure Resource-Group とリソースがデプロイされるリージョンを選択できます。
-ResourceGroupName <datadog-log-forwarder-rg>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Resource-Group の名前をカスタマイズします。
-EventhubNamespace <datadog-eventhub-namespace>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Event-Hub ネームスペースをカスタマイズします。
-EventhubName <datadog-eventhub>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Event-Hub の名前をカスタマイズします。
-FunctionAppName <datadog-functionapp>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Function-App の名前をカスタマイズします。
-FunctionName <datadog-function>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Function の名前をカスタマイズします。
-DiagnosticSettingName <datadog-activity-logs-diagnostic-setting>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Diagnostic-Setting の名前をカスタマイズします。(アクティビティログの送信にのみ関連)

インストールエラーが発生した場合は、トラブルシューティングセクションにアクセスすれば、一般的なエラーケースをすばやく解決できます。

Azure から Datadog にログを送信するには、以下の手順に従ってください。

  1. Azure Event Hub を作成。
  2. Datadog-Azure 関数を Event Hub トリガーでセットアップし、Datadog へログを転送します。
  3. 診断設定を作成し、Azure サービスが Event Hub へログをストリーミングするように構成する。

以下の手順では、Azure Portal を使用した基本的な初期設定について説明します。手順はすべて、Azure ドキュメントを参照し、CLI、Powershell、リソーステンプレートで実行できます。

Azure Event Hub

Azure Event Hub を作成:

以下の手順に従って、新しいネームスペースを作成するか、既存のネームスペースに新しいイベントハブを追加します。

  1. Azure ポータルで、Event Hubs 概要に移動し、Add をクリックします。
  2. 名前、価格帯、サブスクリプション、リソースグループを入力します。
  3. 場所を選択します。: Event Hub とログの送信元となるリソースは同じ場所になければなりません。アクティビティログや他のアカウント全体のログソースは、その限りではありません。
  4. スループット単位、アベイラビリティーゾーン、および自動インフレに必要なオプションを選択します。
  5. 作成をクリックします。

イベントハブをイベントハブネームスペースに追加します。

  1. Azure ポータルで、新規または既存のネームスペースに移動します。
  2. + Event Hub をクリックします。
  3. 名前、パーティション数、およびメッセージ保持に必要なオプションを選択します。
  4. 作成をクリックします。

Datadog-Azure 関数

Datadog-Azure 関数を Event Hub トリガーでセットアップし、Datadog へログを転送します。

新しい関数アプリを作成するか、既存の関数アプリを使用して、次のセクションにスキップします。

  1. Azure ポータルで、Function Apps -> Functions と移動し、Add をクリックします。
  2. サブスクリプション、リソースグループ、地域を選択し、関数の名前を入力します。
  3. Publish to Code, Runtime stack to Node.js, and Version to 12 LTS を選択します。
  4. Next:Hosting をクリックします。
  5. ストレージアカウントとプランの種類を選択し、Operating System to Windows を選択します。
  6. 確認し、新しい関数アプリを作成します。
  7. デプロイが完了するのを待ちます。

イベントハブトリガーテンプレートを使用して、関数アプリに新しい関数を追加します。

  1. 関数アプリリストから新規/既存の関数アプリを選択します。
  2. 関数メニューから Functions を選択し、Add をクリックします。
  3. テンプレートメニューから Azure イベントハブトリガーを選択し、New をクリックします。
  4. イベントハブ接続用のネームスペースとイベントハブを選択し、OK をクリックします。
  5. Create Function をクリックします。

イベントハブトリガーを Datadog にポイントします。

  1. 関数ビューから新しいイベントハブトリガーを選択します。
  2. 開発者側メニューの Code + Test をクリックします。
  3. Datadog-Azure 関数コードを index.js ファイルに追加します。
  4. 関数アプリのコンフィギュレーションタブで DD_API_KEY 環境変数を作成して API キーを追加するか、22 行目の <DATADOG_API_KEY> を置き換えて関数コードにコピーします。
  5. 関数を保存します。
  6. トリガーの Integration をクリックしてから Azure Event Hubs をクリックし、次の設定を確認します。 a. Event Parameter Name が eventHubMessages に設定されている。 b. Event Hub Cardinality が Many に設定されている。 c. Event Hub Data Type が空のままになっている。
  7. 保存をクリックします。
  8. 関数を実行し、Datadog ログエクスプローラーでテストメッセージをチェックし、設定が正しいことを確認します。

アクティビティログ

  1. Azure ポータルで、Activity Log に移動します。
  2. Diagnostic Settings をクリックします。
  3. Add diagnostic setting をクリックします。
  4. カテゴリの詳細で、Datadog に送るログのカテゴリを選択します。
  5. 送信先情報で、Stream to an event hub を選択します。
  6. イベントハブのネームスペースと名前を設定します。これらは、ネームスペーストリガーの作成に使用したネームスペースネームのスペースおよび名前と一致する必要があります。
  7. 共有アクセスキーを設定します。このキーは送信アクセスまたは管理アクセスで構成しなければなりません。
  8. 保存をクリックします。
  9. Datadog ログエクスプローラーでこのリソースからのログをチェックして、正しくセットアップできたことを確認します。

リソースログ

診断設定を作成し、Azure サービスが Event Hub へログを転送するように構成する。

  1. Azure ポータルで、Datadog に送るログのリソースへ移動します。
  2. リソースブレードの監視セクションで、Diagnostic settings をクリックします。
  3. Add diagnostic setting をクリックします。
  4. カテゴリの詳細で、Datadog に送るログのカテゴリを選択します。
  5. 送信先情報で、Stream to an event hub を選択します。
  6. イベントハブのネームスペースと名前を設定します。これらは、ネームスペーストリガーの作成に使用したネームスペースネームのスペースおよび名前と一致する必要があります。
  7. 共有アクセスキーを設定します。このキーは送信アクセスまたは管理アクセスで構成しなければなりません。
  8. 保存をクリックします。
  9. Datadog ログエクスプローラーでこのリソースからのログをチェックして、正しくセットアップできたことを確認します。

すべての Azure App Service からログを収集するには、主に以下の手順に従います。

  1. Azure ポータルAzure ストレージエクスプローラーAzure CLI、または Powershell から Azure BLOB ストレージをセットアップします。
  2. BLOB ストレージから Datadog へログを転送する Datadog-Azure 関数をセットアップします。
  3. ログを BLOB ストレージに転送する Azure App Service を構成します。

新しい Azure Blob ストレージ関数を作成する

Azure 関数に精通していない場合は、Azure Portal で初めての関数を作成するを参照してください。

  1. Azure ポータルで、 Function Apps -> Functions と移動し、Add をクリックします。
  2. サブスクリプション、リソースグループ、地域を選択し、関数の名前を入力します。
  3. Publish Code とランタイムスタック Node.js を選択します。
  4. Next:Hosting をクリックします。
  5. ストレージアカウントとプランの種類を選択し、オペレーティングシステム Windows を選択します。
  6. 確認し、新しい関数を Create します。
  7. デプロイが完了したら、関数アプリリストから新しい関数を選択します。
  8. 関数をポータル内で作成し、Blog Storage トリガーテンプレート (**More templates…**から選択) を使用することを選択します。必要に応じて、Microsoft.Azure.WebJobs.Extensions.EventHubs 拡張をインストールします。
  9. Storage account connection を選択するか追加し、Create を作成します。
  10. index.js ファイルを作成し、Datadog-Azure 関数コードを追加します (<DATADOG_API_KEY> はご使用の Datadog API キーに置き換えます)。
  11. 関数を保存します。
  12. 統合で、BLOB パラメーター名blobContent に設定し、保存をクリックします。
  13. Datadog ログエクスプローラーでログをチェックして、正しくセットアップできたことを確認します。

収集データ

メトリクス

azure.cdn_profiles.status.status
(gauge)
Status of Azure CDN Profiles
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.abandon.success
(count)
Number of cloud-to-device commands abandoned by the device
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.complete.success
(count)
Number of cloud-to-device commands completed successfully by the device
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.reject.success
(count)
Number of cloud-to-device commands rejected by the device
azure.devices_elasticpools_iothubtenants.c2d.methods.failure
(count)
The count of all failed direct method calls.
azure.devices_elasticpools_iothubtenants.c2d.methods.request_size
(gauge)
The average min and max of all successful direct method requests.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.methods.response_size
(gauge)
The average min and max of all successful direct method responses.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.methods.success
(count)
The count of all successful direct method calls.
azure.devices_elasticpools_iothubtenants.c2d.twin.read.failure
(count)
The count of all failed back-end-initiated twin reads.
azure.devices_elasticpools_iothubtenants.c2d.twin.read.size
(gauge)
The average min and max of all successful back-end-initiated twin reads.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.twin.read.success
(count)
The count of all successful back-end-initiated twin reads.
azure.devices_elasticpools_iothubtenants.c2d.twin.update.failure
(count)
The count of all failed back-end-initiated twin updates.
azure.devices_elasticpools_iothubtenants.c2d.twin.update.size
(gauge)
The average min and max size of all successful back-end-initiated twin updates.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.twin.update.success
(count)
The count of all successful back-end-initiated twin updates.
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.built_in.events
(count)
Number of times messages were successfully written to the built-in endpoint (messages/events)
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.event_hubs
(count)
Number of times messages were successfully written to Event Hub endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.service_bus_queues
(count)
Number of times messages were successfully written to Service Bus Queue endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.service_bus_topics
(count)
Number of times messages were successfully written to Service Bus Topic endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage
(count)
Number of times messages were successfully written to storage endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage.blobs
(count)
Number of blobs written to storage endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage.bytes
(gauge)
Amount of data in bytes written to storage endpoints
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.built_in.events
(gauge)
The average latency between message ingress to the IoT hub and message ingress into the built-in endpoint (messages/events) in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.event_hubs
(gauge)
The average latency between message ingress to the IoT hub and message ingress into an Event Hub endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.service_bus_queues
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a Service Bus Queue endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.service_bus_topics
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a Service Bus Topic endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.storage
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a storage endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.dropped
(count)
Number of messages dropped because the delivery endpoint was dead
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.fallback
(count)
Number of messages written to the fallback endpoint
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.invalid
(count)
The count of messages not delivered due to incompatibility with the endpoint
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.orphaned
(count)
The count of messages not matching any routes including the fallback route
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.success
(count)
Number of times messages were successfully written to endpoints (total)
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.all_protocol
(count)
Number of device-to-cloud telemetry messages attempted to be sent to your IoT hub
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.send_throttle
(count)
Number of throttling errors due to device throughput throttles
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.success
(count)
Number of device-to-cloud telemetry messages sent successfully to your IoT hub
azure.devices_elasticpools_iothubtenants.d2c.twin.read.failure
(count)
The count of all failed device-initiated twin reads.
azure.devices_elasticpools_iothubtenants.d2c.twin.read.size
(gauge)
The average min and max of all successful device-initiated twin reads.
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.twin.read.success
(count)
The count of all successful device-initiated twin reads.
azure.devices_elasticpools_iothubtenants.d2c.twin.update.failure
(count)
The count of all failed device-initiated twin updates.
azure.devices_elasticpools_iothubtenants.d2c.twin.update.size
(gauge)
The average min and max size of all successful device-initiated twin updates.
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.twin.update.success
(count)
The count of all successful device-initiated twin updates.
azure.devices_elasticpools_iothubtenants.daily_message_quota_used
(count)
Number of total messages used today. This is a cumulative value that is reset to zero at 00:00 UTC every day.
azure.devices_elasticpools_iothubtenants.device_data_usage
(count)
Bytes transferred to and from any devices connected to IotHub
azure.devices_elasticpools_iothubtenants.devices.connected_devices.all_protocol
(count)
Number of devices connected to your IoT hub
azure.devices_elasticpools_iothubtenants.devices.total_devices
(count)
Number of devices registered to your IoT hub
azure.devices_elasticpools_iothubtenants.jobs.cancel_job.failure
(count)
The count of all failed calls to cancel a job.
azure.devices_elasticpools_iothubtenants.jobs.cancel_job.success
(count)
The count of all successful calls to cancel a job.
azure.devices_elasticpools_iothubtenants.jobs.completed
(count)
The count of all completed jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_direct_method_job.failure
(count)
The count of all failed creation of direct method invocation jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_direct_method_job.success
(count)
The count of all successful creation of direct method invocation jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_twin_update_job.failure
(count)
The count of all failed creation of twin update jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_twin_update_job.success
(count)
The count of all successful creation of twin update jobs.
azure.devices_elasticpools_iothubtenants.jobs.failed
(count)
The count of all failed jobs.
azure.devices_elasticpools_iothubtenants.jobs.list_jobs.failure
(count)
The count of all failed calls to list jobs.
azure.devices_elasticpools_iothubtenants.jobs.list_jobs.success
(count)
The count of all successful calls to list jobs.
azure.devices_elasticpools_iothubtenants.jobs.query_jobs.failure
(count)
The count of all failed calls to query jobs.
azure.devices_elasticpools_iothubtenants.jobs.query_jobs.success
(count)
The count of all successful calls to query jobs.
azure.devices_elasticpools_iothubtenants.tenant_hub.requested_usage_rate
(gauge)
requested usage rate
Shown as percent
azure.devices_elasticpools_iothubtenants.twin_queries.failure
(count)
The count of all failed twin queries.
azure.devices_elasticpools_iothubtenants.twin_queries.result_size
(gauge)
The average min and max of the result size of all successful twin queries.
Shown as byte
azure.devices_elasticpools_iothubtenants.twin_queries.success
(count)
The count of all successful twin queries.
azure.devices_elasticpools.elastic_pool.requested_usage_rate
(gauge)
requested usage rate
Shown as percent
azure.insights_autoscalesettings.metric_threshold
(count)
The configured autoscale threshold when autoscale ran.
azure.insights_autoscalesettings.observed_capacity
(count)
The capacity reported to autoscale when it executed.
azure.insights_autoscalesettings.observed_metric_value
(count)
The value computed by autoscale when executed
azure.insights_autoscalesettings.scale_actions_initiated
(count)
The direction of the scale operation.
azure.locationbasedservices_accounts.latency
(gauge)
Duration of API calls
Shown as millisecond
azure.network_connections.bits_in_per_second
(rate)
Bits ingressing Azure per second
Shown as bit
azure.network_connections.bits_out_per_second
(rate)
Bits egressing Azure per second
Shown as bit
azure.network_connections.status
(gauge)
Status of Azure Network Connections metrics
azure.network_dnszones.query_volume
(count)
Number of queries served for a DNS zone
azure.network_dnszones.record_set_capacity_utilization
(gauge)
Percent of Record Set capacity utilized by a DNS zone
Shown as percent
azure.network_dnszones.record_set_count
(count)
Number of Record Sets in a DNS zone
azure.network_networkwatchers_connectionmonitors.average_roundtrip_ms
(gauge)
Average network round-trip time (ms) for connectivity monitoring probes sent between source and destination
Shown as millisecond
azure.network_networkwatchers_connectionmonitors.probes_failed_percent
(gauge)
% of connectivity monitoring probes failed
Shown as percent
azure.network_trafficmanagerprofiles.qps_by_endpoint
(count)
Number of times a Traffic Manager endpoint was returned in the given time frame
azure.network_virtualnetworkgateways.tunnel_average_bandwidth
(rate)
Average bandwidth of a tunnel in bytes per second
Shown as byte
azure.network_virtualnetworkgateways.tunnel_egress_bytes
(gauge)
Outgoing bytes of a tunnel
Shown as byte
azure.network_virtualnetworkgateways.tunnel_egress_packet_drop_tsmismatch
(count)
Outgoing packet drop count from traffic selector mismatch of a tunnel
azure.network_virtualnetworkgateways.tunnel_egress_packets
(count)
Outgoing packet count of a tunnel
azure.network_virtualnetworkgateways.tunnel_ingress_bytes
(gauge)
Incoming bytes of a tunnel
Shown as byte
azure.network_virtualnetworkgateways.tunnel_ingress_packet_drop_tsmismatch
(count)
Incoming packet drop count from traffic selector mismatch of a tunnel
azure.network_virtualnetworkgateways.tunnel_ingress_packets
(count)
Incoming packet count of a tunnel
azure.operationalinsights_workspaces.status
(gauge)
Status of Azure Operational Insights
azure.powerbidedicated_capacities.query_duration
(gauge)
DAX Query duration in last interval
Shown as millisecond
azure.powerbidedicated_capacities.query_pool_job_queue_length
(count)
Number of jobs in the queue of the query thread pool.
azure.servicefabric_clusters.status
(gauge)
Status of Azure Service Fabric
azure.storage.availability
(gauge)
The percentage of availability for the storage service or the specified API operation.
Shown as percent
azure.storage.egress
(gauge)
The amount of egress data, in bytes.
Shown as byte
azure.storage.ingress
(gauge)
The amount of ingress data, in bytes.
Shown as byte
azure.storage.status
(gauge)
Status of Azure Storage Integration
azure.storage.success_e2_e_latency
(gauge)
The average end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds.
Shown as millisecond
azure.storage.success_server_latency
(gauge)
The average latency used by Azure Storage to process a successful request, in milliseconds.
Shown as millisecond
azure.storage.transactions
(count)
The number of requests made to a storage service or the specified API operation.
azure.storage.used_capacity
(gauge)
Account used capacity
Shown as byte
azure.usage.remaining_api_calls
(gauge)
The number of remaining api calls until a rate limit is hit
azure.web_sites_slots.app_connections
(count)
Connections
azure.web_sites_slots.average_memory_working_set
(gauge)
Average memory working set
Shown as byte
azure.web_sites_slots.average_response_time
(count)
Average Response Time
Shown as second
azure.web_sites_slots.bytes_received
(gauge)
Data In
Shown as byte
azure.web_sites_slots.bytes_sent
(gauge)
Data Out
Shown as byte
azure.web_sites_slots.cpu_time
(gauge)
CPU Time
Shown as second
azure.web_sites_slots.function_execution_count
(count)
Function Execution Count
azure.web_sites_slots.function_execution_units
(count)
Function Execution Units
azure.web_sites_slots.handles
(count)
Handle Count
azure.web_sites_slots.http101
(count)
Http 101
azure.web_sites_slots.http2xx
(count)
Http 2xx
azure.web_sites_slots.http3xx
(count)
Http 3xx
azure.web_sites_slots.http401
(count)
Http 401
azure.web_sites_slots.http403
(count)
Http 403
azure.web_sites_slots.http404
(count)
Http 404
azure.web_sites_slots.http406
(count)
Http 406
azure.web_sites_slots.http4xx
(count)
Http 4xx
azure.web_sites_slots.http5xx
(count)
Http Server Errors
azure.web_sites_slots.memory_working_set
(gauge)
Memory working set
Shown as byte
azure.web_sites_slots.requests
(count)
Requests
azure.web_sites_slots.threads
(count)
Thread Count

イベント

Azure インテグレーションは、すべての Azure イベントを Datadog のイベントストリームに送信します。

サービスのチェック

Azure インテグレーションには、サービスのチェック機能は含まれません。

タグ

Azure インテグレーションメトリクス、イベント、およびサービスチェックは、次のタグを受け取ります。

インテグレーションネームスペースDatadog タグキー
すべての Azure インテグレーションすべてcloud_providerregionkindtypenameresource_grouptenant_namesubscription_namesubscription_idstatus(該当する場合)
Azure VM インテグレーションazure.vm.*hostsizeoperating_systemavailability_zone
Azure App Service Plansazure.web_serverfarms.*per_site_scalingplan_sizeplan_tieroperating_system
Azure App Services Web Apps & Functionsazure.app_services.*azure.functions.*operating_systemserver_farm_idreservedusage_statefx_version(linux ウェブアプリのみ)、php_versiondot_net_framework_versionjava_versionnode_versionpython_version
Azure SQL DBazure.sql_servers_databases.*license_typemax_size_mbserver_namerolezone_redundant
レプリケーションリンクのみ: state primary_server_name primary_server_region secondary_server_name secondary_server_region
Azure Load Balancerazure.network_loadbalancers.*sku_name
Azure Usage and Quotaazure.usage.*usage_categoryusage_name

トラブルシューティング

自動ログ収集

命名の競合

デフォルトパラメーターの 1 つと同じリソース名を持つ Azure リソースがあると、名前の競合が発生する可能性があります。Azure では、リソースが個々のサブスクリプション内でリソース名を共有することは許可されていません。環境内にまだ存在しない一意の名前でデフォルトパラメーターの名前を変更することをお勧めします。

たとえば、‘datadog-eventhub’ という名前の eventhub を既に所有している場合は、-EventhubName フラグを使用して eventhub リソースのデフォルト名を変更します。

./resource_deploy.ps1 -ApiKey <your_api_key> -SubscriptionId <your_subscription_id> -EventhubName <new-name>

注: オプションのパラメーターセクションに移動して、構成可能なパラメーターのリストを見つけます。

注: この失敗が原因でスクリプトを再実行する場合は、リソースグループ全体を削除して、新しい実行を作成することもお勧めします。

未登録のリソースプロバイダー

エラー The subscription is not registered to use namespace ‘Microsoft.EventHub’ が原因でスクリプトの実行が失敗した場合:

Azure には、各サービスのリソースプロバイダーがあります。たとえば、Azure EventHub の場合は Microsoft.EventHub です。Azure サブスクリプションが必要なリソースプロバイダーに登録されていない場合、スクリプトは失敗します。この問題は、リソースプロバイダーに登録することで修正できます。CloudShell でこのコマンドを実行します。

az provider register --namespace Microsoft.EventHub

ログの割り当て超過

スクリプトは正常にインストールされたのに、ログエクスプローラー内にアクティビティ/プラットフォームログが表示されない場合

ログ保持の 1 日の割り当てを超えていないことを確認します。

注: スクリプトの実行後、5 分以上経ってからログエクスプローラーでログの検索を開始することをお勧めします。

ご不明な点は、Datadog のサポートチームまでお問い合わせください。

その他の参考資料