Azure 自動ログ転送のセットアップ

This product is not supported for your selected Datadog site. ().

概要

このガイドを使用して、Azure 自動ログ転送をセットアップおよび管理します。ログ転送は、Datadog で直接構成するか、Azure Resource Manager (ARM) テンプレートを使用してデプロイできます。

ARM テンプレートは、ログを収集して Datadog に転送するサブスクリプションに一連の Azure サービス (ストレージアカウントと関数アプリ) からリソースをデプロイします。これらのサービスは、ログの量に応じて自動的にスケールアップまたはスケールダウンします。スケーリングは、選択したサブスクリプションとリージョンにデプロイされた一連の関数アプリで構成されるコントロールプレーンによって管理されます。ストレージアカウントと関数アプリは、Datadog にログを転送する各サブスクリプションにデプロイされます。

すべてのサイト: 自動ログ転送はすべての Datadog サイト で使用できます。

サポートされる Azure 環境: 自動ログ転送は Azure Commercial (Public) クラウドのみをサポートしています。Azure Government および Azure China はサポートされていません。Datadog for Government サイトを使用している場合、この機能は Azure Commercial クラウドのワークロードでのみ使用できます。

自動セットアップか手動セットアップかの選択

手動セットアップ方法を選択するのは、次のような場合です。

  • リソースにカスタムタグを適用する

自動セットアップ方法を使用するのは、次のような場合です。

  • Azure ポータルを通じてデプロイメントを自動化する
  • 宣言型テンプレートを通じてインフラストラクチャーを管理する
  • アクセス、タグ、および請求を中央で制御する
  • リソースを正しい順序で一貫した方法で再デプロイする
  • イベントハブではなくストレージアカウントを使用することでコストを削減する

セットアップ

Configure Log Forwarding

Configure Log Forwarding フローを使用して、Datadog で直接新しいログフォワーダーをセットアップするか既存のログフォワーダーを管理します。このフローを使用して、ゼロから自動ログ転送をデプロイしたり、既存のセットアップを更新したりできます。たとえば、サブスクリプションの追加や削除、ログフィルターの変更などです。

  1. Datadog で Integrations > Azure の順に移動します。
  2. Configure Log Forwarding をクリックします。
  3. 新しいセットアップをデプロイするか既存のセットアップを更新するかを選択します。
  4. 提供されたコマンドをコピーし、Azure Cloud Shell に貼り付けます。
  5. ログを転送するサブスクリプションを選択します。
  6. 必要に応じて、ログフィルターを追加または削除します。
  7. Confirm をクリックします。

ARM テンプレート

または、Azure Public ARM テンプレートを使用して自動ログ転送をデプロイすることもできます。下記のセクションで、テンプレートの各ページを完了するための手順を示します。

Basics (基本)

  1. Project details の下で、管理グループを選択します。これは、ARM テンプレートで自動ログ転送用に選択したサブスクリプションに対する権限を付与するために必要です。
  2. Instance details の下で、次の値を選択します。
    • Region。コントロールプレーンがデプロイされる場所です。
    • Subscriptions to Forward Logs。ログ転送のために構成されるサブスクリプションです。
    • Control Plane Subscription。コントロールプレーンがデプロイされるサブスクリプションです。
    • Resource Group Name。コントロールプレーンで使用するリソースグループです。コントロールプレーンサービスの管理を簡素化するために、新しい未使用のリソースグループ名を選択することをお勧めします。
Azure 自動ログ転送の ARM テンプレートの Basics ページ
  1. Next をクリックします。

Datadog Configuration (Datadog の構成)

  1. Datadog API キーの値を入力します。
  2. Datadog サイトを選択します。
Azure 自動ログ転送の ARM テンプレートの [Datadog Configuration] ページ
  1. Next をクリックします。

Deployment (デプロイメント)

  1. デプロイメントの警告を確認するためにチェックボックスをクリックします。
  2. Review + create をクリックします。

Review + create (確認と作成)

  1. 最終的なデプロイメントの詳細を確認します。
  2. Create をクリックします。

リソースタグフィルタリング

タグフィルターを使用して、どの Azure リソースのログを Datadog に転送するかを制御できます。タグフィルターの構文、ワイルドカードのサポート、および例については、Azure スタートアップガイドのリソースタグフィルタリングを参照してください。

Log Analytics ワークスペース

自動ログフォワーダーを使用して Azure Log Analytics ワークスペース (LAW) から Datadog にログを転送することができます。以前は、LAW からの診断設定ログのみがサポートされていました。データエクスポートルールを使用して、LAW のログテーブルから Datadog にログを転送することもできます。

制限

  • ログフォワーダーと同じリージョン内の LAW リソースに対してのみ転送をセットアップできます。
  • LAW には最大 10 個のデータエクスポートルールを作成できます。LAW にデータエクスポートルールの空きがない場合は、既存のルールを削除して空きを作ってください。
  • すべてのログテーブルをエクスポートできるわけではありません。Microsoft のサポート対象外のテーブルのリストを参照してください。

Log Analytics ワークスペースからログを転送する

  1. 自動ログフォワーダーをまだ作成していない場合は、セットアップの手順に従います。すでにログフォワーダーがある場合は、最新バージョンに更新されていることを確認してください。
  2. Azure ポータルで、目的の Log Analytics ワークスペースに移動します。
  3. Settings の下で、Data export をクリックします。
  4. New export rule をクリックします。
  5. ルールに名前を付け、Enable upon creation をチェックし、Next をクリックします。
  6. エクスポートするテーブルを選択します。この選択は、後でデータエクスポートルールを編集することで変更できます。Next をクリックします。
  7. Destination typeStorage Account を選択します。ログフォワーダーを含むサブスクリプションを選択し、ログフォワーダーのストレージアカウントを選択します。通常、これらのアカウントには ddlogstorage というプレフィックスが付いています。Next をクリックします。
  8. ルールを確認し、Create をクリックします。LAW からのログが数分以内に Datadog に表示されるようになります。

トラブルシューティング

ログが Datadog に表示されない

データエクスポートルールの作成後に Datadog にログが表示されない場合

  1. データエクスポートルールが有効になっていることを確認してください。
  2. 宛先ストレージアカウントが自動ログフォワーダーによって作成されたものであることを確認してください (名前は通常 ddlogstorage で始まります)。
  3. ストレージアカウントでコンテナを確認してください。am- というプレフィックスが付いたコンテナが LAW のエクスポートです。insights- というプレフィックスのコンテナしか表示されない場合、データエクスポートルールが適切に構成されていない可能性があります。
  4. LAW で過去 2 時間以内に新しいログが収集されたことを確認してください。

その他の情報については、Microsoft のデータエクスポートのトラブルシューティングに関する FAQ を参照してください。

エクスポートするログの選択

データエクスポートルールで、Log Analytics ワークスペースからどのログテーブルをエクスポートするかを指定できます。データエクスポートルールを編集して、テーブルを追加または削除します。

期待されるレイテンシー

LAW のログは、通常は Datadog に 2 ~ 5 分以内に表示されますが、最初に表示されるまでには最大 20 分かかる場合があります。LAW のログのプロパティは、LAW 以外のログとは異なる場合があります。

アーキテクチャ

使用されるサービス

  • Azure Function アプリは、Azure サブスクリプション内のリソースを検出し、ログフォワーダーのスケーリングを行い、検出されたリソースに対して診断設定を構成します。
  • Azure Container Apps は、診断設定によって生成されたリソースログを収集し、すでに処理済みのログを追跡し、Datadog に送信します。
  • Azure Storage Accounts は、リソースによって生成されたログおよびサブスクリプション ID、リソース ID、リージョンなどのメタデータを一時的に保存する小規模なキャッシュとして使用されます。

ハイレベルアーキテクチャ

Azure 自動ログ転送の 3 つの主要コンポーネントを示すアーキテクチャ図: コントロールプレーンとログフォワーダー (Datadog が顧客環境にデプロイ) が Azure リソースに接続

デプロイメントテンプレートにより、選択したサブスクリプションにコントロールプレーンログフォワーダーがセットアップされます。

コントロールプレーン

コントロールプレーンは、Azure Function アプリ群とキャッシュ用のストレージアカウントで構成されます。1 つのコントロールプレーンが、選択したサブスクリプションにデプロイされ、次のタスクを実行します。

  • 選択したサブスクリプションにおいて、診断設定を通じてログを出力可能なリソースを検出
  • 検出したリソースに対して診断設定を自動的に構成し、ログフォワーダーが監視するストレージアカウントにログを送るように設定
  • リソースが存在するリージョンでログフォワーダーをスケーリングし、ログ量に合わせて動的に対応

ログフォワーダー

ログフォワーダーは、Azure Container Apps のジョブとログ用のストレージアカウントで構成されます。これらは、ログ転送を行う対象として選択された各サブスクリプションに対し、コントロールプレーンによってデプロイされます。サブスクリプションごとにデプロイされるログフォワーダーの数は、リソースによって生成されるログ量に応じてスケールします。ログフォワーダーは次のタスクを実行します。

  • リソースの診断設定から生成されるログを一時的にストレージアカウントに保存
  • 保存されたログを処理し、Datadog に転送

Azure では、リソースの診断設定は同じリージョンにあるストレージアカウントしか指定できません。そのため、診断設定を持つリソースがある各リージョンでログフォワーダーが起動されます。

詳細は、Azure の Azure モニターの診断設定を参照してください。

詳細アーキテクチャ

Azure 自動ログ転送のワークフロー図: コントロールプレーンがリソースを検出し、リージョン全体にログフォワーダーをスケールし、診断設定を構成してログをストレージアカウントに送信します。その後。Container Apps が新しいログをチェックして Datadog Log Management に転送します。

セキュリティと権限

ARM テンプレートは、フォワーダーの管理とリソースへの診断設定を行うために必要な権限だけをコントロールプレーンに付与します。これを実現するため、ARM テンプレートのデプロイ時にリソースグループが作成され、必要な権限が付与されます。その後、追加のサブスクリプションに対して権限を付与したい場合は、同じ ARM テンプレートを再デプロイできます。

使用される権限

  • 選択したサブスクリプションのサブスクリプションレベルにおける Monitoring Contributor ロール

    • 診断設定が利用できるリソースを検出し、ストレージへのログ出力を有効にするために必要です。
  • 選択したサブスクリプション内のログ転送用リソースグループにおけるリソースグループレベルの Contributor ロール

    • フォワーダーのストレージアカウントや Container Apps ジョブの作成・削除などを管理するために必要です。
  • コントロールプレーンの Function Apps を更新するためのコントロールプレーンリソースグループレベルの Website Contributor ロール

リソースに関する情報はエクスポートされません。Datadog はログ出力を有効にするために必要な情報のみを要求し、このアーキテクチャからの唯一の出力は Datadog に送信されるログのみです。

: 必要に応じて、コントロールプレーン自体の健全性メトリクス、ログ、およびイベントをデバッグ目的で Datadog に送信することができます。これを行うには、コントロールプレーンの任意の Function App または Container App で環境変数 DD_TELEMETRY=true を設定します。

Log archiving

Archiving logs to Azure Blob Storage requires an App Registration. If you haven’t already, follow the automatic or manual setup instructions to configure the integration using an App Registration. App Registrations created for archiving purposes do not need the Monitoring Reader role.

After configuring an App Registration, create a log archive that writes to Azure Blob Storage.

Note: If your storage bucket is in a subscription being monitored through the Azure Native integration, a redundancy warning appears in the Azure integration tile. This warning can be safely ignored for log archiving.

アンインストール

まず、Azure Cloud Shell を開き、Azure CLI/Bash で実行されていることを確認してください。PowerShell ではありません。

アンインストールスクリプトをダウンロードして実行します。

wget https://ddazurelfo.blob.core.windows.net/uninstall/uninstall.py
python uninstall.py

スクリプトは最初に各サブスクリプションで実行中のインスタンスを検出し、次にアンインストールするインスタンスを選択するように促します。リソースの削除を確認し、リソースが削除されるまで待ちます。

参考資料