Azure ログを Datadog に送信

概要

このガイドを使用して、Azure サブスクリプションから Datadog へのロギングを設定します。

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

全サイト: すべての Datadog サイトは、このページの手順を使用して、Azure ログを Datadog に送信することができます。

US3: 組織が Datadog US3 サイト上にある場合、Azure Native インテグレーションを使用して、Azure ログ転送の構成を簡素化することができます。Datadog では、可能な限りこの方法を使用することを推奨しています。構成は、Azure の Datadog リソースを通じて行います。これは、ログ転送のための Azure Event Hub プロセスを置き換えます。詳細は Azure Native Logging Guide を参照してください。

開始するには、以下のボタンをクリックし、Azure Portal のフォームに入力します。Datadog アカウントにアクティビティログをストリーミングするために必要な Azure リソースが、自動的にデプロイされます。

Azure にデプロイ

あるいは、Datadog は、Azure アクティビティログと Azure プラットフォームログ (リソースログを含む) の送信に使用できる自動化スクリプトを提供しています。

Azure アクティビティログ

以下の手順に従って、アクティビティ ログを Datadog アカウントにストリーミングするために必要な Azure リソースを作成および構成するスクリプトを実行します。これらのリソースには、アクティビティログの診断設定、Azure Functions、Event Hub ネームスペース、Event Hub が含まれます。

  1. Azure ポータルで、Cloud Shell に移動します。
azure cloud shell
  1. 以下のコマンドを実行して、自動化スクリプトを 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")

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

  1. 以下のコマンドを実行し、<API_KEY>Datadog API トークンに、<SUBSCRIPTION_ID> を Azure サブスクリプション ID に置き換えてスクリプトを起動します。オプションパラメーターを追加して、デプロイを構成します。

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

./activity_logs_deploy.ps1 -ApiKey <API_KEY> -SubscriptionId <SUBSCRIPTION_ID>

Azure プラットフォームログ

Azure プラットフォームのログ (リソースログを含む) を送信するには、Event Hub とログ転送機能のペアをデプロイします。 デプロイ後、ログを Datadog にストリーミングするために、各ログソースの診断設定を作成します。

  1. Azure ポータルで、Cloud Shell に移動します。

  2. 以下の Powershell コマンドを実行して、自動化スクリプトを 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")

   

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

  1. 以下の Powershell コマンドを実行し、<API_KEY>Datadog API トークンに、<SUBSCRIPTION_ID> を Azure サブスクリプション ID に置き換えてスクリプトを起動します。その他のオプションパラメーターを追加して、デプロイを構成することもできます。オプションパラメーターを参照してください。

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

   ./resource_deploy.ps1 -ApiKey <API_KEY> -SubscriptionId <SUBSCRIPTION_ID>

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

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

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

アクティビティログとリソースログの設定

アクティビティログとリソースログの両方をストリーミングするには、オプションのパラメーター -ResourceGroupLocation <REGION> を含む最初のスクリプトを実行します。アクティビティログはサブスクリプションレベルのソースなので、どのリージョンでもパイプラインを作成できます。これがデプロイされたら、-westus でリソースに診断設定を追加して、同じイベントハブを通してリソースログを送信します。

: このインテグレーションは、イベントを収集しません。

オプションパラメーター

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

-Flag <Default Parameter>説明
-DatadogSite <datadoghq.com>このフラグを別の Datadog サイトを使用してパラメーターとして追加して、Datadog インスタンスをカスタマイズします。Datadog サイト:
-Environment <AzureCloud>このフラグをパラメーターとして追加して、Azure 独立クラウドのストレージを管理します。追加のオプションは、AzureChinaCloudAzureGermanCloudAzureUSGovernment です。
-ResourceGroupLocation <westus2>更新された Azure-region を使用してこのフラグを追加することにより、Azure リソースグループとリソースがデプロイされるリージョンを選択できます。
-ResourceGroupName <datadog-log-forwarder-rg>更新されたパラメーターを使用してこのフラグを追加することにより、Azure リソースグループの名前をカスタマイズします。
-EventhubNamespace <datadog-ns-4c6c53b4-1abd-4798-987a-c8e671a5c25e>更新済みのパラメーターでこのフラグを追加し、Azure Event Hub の名前空間をカスタマイズします。デフォルトで、datadog-ns-<globally-unique-ID> が生成されています。
-EventhubName <datadog-eventhub>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Event Hub の名前をカスタマイズします。
-FunctionAppName <datadog-functionapp-1435ad2f-7c1f-470c-a4df-bc7289d8b249>更新済みのパラメーターでこのフラグを追加し、Azure 関数の名前をカスタマイズします。デフォルトで、datadog-functionapp-<globally-unique-ID> が生成されています。
-FunctionName <datadog-function>更新されたパラメーターを使用してこのフラグを追加することにより、Azure Function の名前をカスタマイズします。
-DiagnosticSettingName <datadog-activity-logs-diagnostic-setting>更新されたパラメーターを使用してこのフラグを追加することにより、Azure 診断設定の名前をカスタマイズします。(アクティビティログの送信にのみ関連)

インストールでエラーが発生した場合は、よくあるエラーケースについて、[自動ログ収集][1]を参照してください。

Datadog サイトではサポートされていません。

Datadog は、Azure ログ収集に Event Hub セットアップを使用することを推奨します。ただし、このセクションの手順に従って、Azure Blob Storage からすべての Azure App Services ログを転送することもできます。

  1. Azure Blob Storage をまだセットアップしていない場合は、次のいずれかの方法で開始してください。
  2. 以下の手順で、Datadog-Azure 関数をセットアップして、Blob Storage からログを転送します。
  3. ログを Blob Storage に転送するようにAzure App Services を構成します。
関数アプリを作成

この目的のためにすでに関数アプリを構成している場合は、Event Hub トリガーテンプレートを使用して関数アプリに新しい関数を追加に進んでください。

  1. Azure ポータルで Function App overview に移動し、Create をクリックします。
  2. Instance Details セクションで、以下の設定を構成します。 a. Code ラジオボタンを選択します。 b. Runtime stack では、Node.js を選択します。 c. Version では、18 LTS を選択します。 d. Operating System では、Windows を選択します。
  3. その他の設定は必要に応じて行ってください。
  4. Review + create をクリックしてリソースを検証します。検証が成功したら、Create をクリックします。
Azure Blob Storage トリガーテンプレートを使用して新しい関数を関数アプリに追加
  1. Function App overview から新規または既存の関数アプリを選択します。
  2. Functions タブで、Create をクリックします。
  3. Development environment フィールドで、Develop in portal を選択します。
  4. Select a template で、Azure Blob storage trigger を選択します。
  5. Storage account connection を選択します。 : 詳細は、Azure ストレージアカウントの接続文字列を構成を参照してください。
  6. Create をクリックします。

詳細は、Azure 関数の概要を参照してください。

Blob Storage トリガーを Datadog に指定
  1. Event Hub トリガー関数の詳細ページで、Developer サイドメニューの Code + Test をクリックします。
  2. 関数の index.js ファイルに Datadog-Azure 関数コードを追加します。
  3. 環境変数 DD_API_KEY で Datadog API キーを追加するか、20 行目の <DATADOG_API_KEY> を置き換えて関数コードにコピーします。
  4. Datadog US1 サイトを使用していない場合は、関数アプリの構成タブにある DD_SITE 環境変数で Datadog サイトを設定するか、21 行目の関数コードにサイトパラメーターをコピーします。
  5. 関数を保存します。
  6. Developer サイドメニューの Integration をクリックします。
  7. Trigger and inputs の下にある Azure Blob Storage をクリックします。
  8. Blob Parameter NameblobContent に設定し、Save をクリックします。
  9. このリソースからのログを Datadog Log Explorer で確認して、セットアップが正しいことを確認します。

ログアーカイブ

Azure Native インテグレーションを使用している場合でも、Azure Blob Storage にログをアーカイブするには、App Registration が必要です。Azure Blob Storage にログをアーカイブするには、設定手順に従って、App Registration を使用してインテグレーションを構成します。アーカイブ目的で作成された App Registration には、Monitoring Reader ロールを割り当てる必要はありません。

App Registration を構成したら、Azure Blob Storage に書き込むログアーカイブを作成することができます。

: ストレージバケットが Azure Native インテグレーションで監視されているサブスクリプションにある場合、Azure Integration Tile に App Registration が冗長である旨の警告が表示されます。この警告は無視することができます。

その他の参考資料

お役に立つドキュメント、リンクや記事: