診断設定を使ってDatadogにAzure リソースのログを送信
診断設定等で取得されるAzureリソースのログはDatadogにも転送する事が出来ます。
今回はアクテビティログを例にAzureリソースのログを診断設定を使ってDatadogへ転送する手順について纏めてみました。
イベントハブ(Azure Event Hubs)や関数アプリ(Azure Function Apps)のリソース作成、設定からAzureリソースの診断設定、Datadogでのログ確認までを纏めています。
Azureテナント(サブスクリプション)とDatadogの接続手順についてはこちらに纏めています。
Azure Event Hubsのリソース作成
公式サイト手順
Datadog公式サイトの手順を参考に進めます。
自動でリソースを作成する方法もありますが、今回は理解を深める為に手動で設定しています。
Azure Event Hubsとは
Azure Event Hubsは、大量のデータをリアルタイムで収集、処理、保存を目的として提供されるサービスです。
今回はAzureリソースのログ収集に利用します。
少しややこしいのですが、Azure Event HubsはAzure Event Hubs名前空間とイベントハブ(Event Hubs)から構成されます。
イメージで言うと名前空間は、イベントハブ(Event Hubs)を収容する為の箱(コンテナー)になります。
イベントハブ(Event Hubs)はデータを受信、送信するためのアクセスポイント(実体)になります。
イベントハブ(Event Hubs)のリソースは名前空間内に作成します。
Azure Event Hubs名前空間作成
Azure Event Hubs名前空間のリソースを作成します。
リソース名は"test-datadog"としています。
Event Hubsリソース作成 | |
Event Hubsで作成を選択します。 | |
名前空間の名前や場所を設定します。 ※検証目的の設定です。実際の利用用途や利用量に応じて設定します。 |
|
詳細はデフォルト値のまま変更せずに次へ進めます。 | |
ネットワークもデフォルト値のまま変更せずに次へ進めます。 | |
確認画面で作成を選択します。 |
イベントハブ(Event Hubs)作成
イベントハブ(Event Hubs)を作成します。
イベントハブ(Event Hubs)はEvent Hubs名前空間リソース内に作成します。
イベントハブ(Event Hubs)名はDatadog-01としています。
イベントハブ(Event Hubs)作成 | |
Event Hubsのリソースメニューを選択します。 | |
名前を入力します。 それ以外はデフォルト値のままとしています。 確認および作成を選択します。 |
関数アプリ(Azure Function App)のリソース作成
関数アプリ(Azure Function App)とは
関数アプリ(Azure Function App)は関数(Functions)を実行するサーバーレスサービスです。
イベントに応答してコードを自動的に実行するマネージドサービスです。
イベントハブ(Event Hubs)で受信したデータをDatadogに送信する役割を担います。
関数アプリ(Azure Function App)リソース作成
関数アプリ(Azure Function App)のリソースを作成します。
プランは従量課金(Serverless)を選択しています。
リソース名は"func-test-datadog"としています。
※検証目的の設定です。利用用途に応じて設定値は適時選択してください。
使用量クオータ設定
関数アプリ(Azure Function App)の従量課金(Serverless)は利用量に応じて課金が発生します。
使用量クオータを設定しておくことで想定しない課金を防ぐことが出来ます。
※検証目的なので上限を設定しています。今回は仮で10000GB/秒で設定しています。(値はかなり適当です。)
使用量クオータ設定 | |
関数アプリで構成のリソースメニューを選択します。 関数のランタイム設定タブにある日ごとの使用量クオータに10000と入力し保存します。 |
|
再起動確認で続行を選択します。 |
関数(Functions)作成
コードを記載する関数(Functions)のリソースを作成します。
関数名はDatadogTriggerとしています。
Azure Event Hubs トリガーの詳細についてはマイクロソフト公式サイトを参照ください。
Azure Functions の Azure Event Hubs トリガー
DatadogのAPI Key確認方法
Datadog のAPI Key確認はOrganization SettingsのAPI Keyのメニューから出来ます。
API Key確認 | |
Organization SettingssのAPI Keyを選択します。 API Keyの一覧が表示されます。 確認したいAPI Keyを選択します。 |
|
API Keyをコピーして確認出来ます。 |
アプリケーション設定の追加
関数(Functions)で使用するDatadogの設定値をアプリケーション設定に登録します。
-
- アプリケーション設定
- DD_API_KEY:DatadogのAPIキー値を設定
- DD_SITE:Datadogの接続先URL
- アプリケーション設定
※実環境での利用時はAzure Key Vaultでのシークレット化などセキュリティ面も考慮します。
Datadog-Azure関数(Functions)コードを設定
作成した関数(Functions)にDatadog-Azure関数コードを設定します。
手順:Datadog Azure 関数
コード:index.js
関数(Functions)のテスト
Datadogへログ送信できるかテストします。
ログ送信テスト | |
関数(Functions)でテストと実行を選択します。 ※ダブルクォーテーションが無いとエラーになります。 |
|
出力で202 Acceptedが表示されている事を確認します。 | |
DatadogのLogsでログを確認します。 Test Messageが表示されている事を確認します。 |
Azure アクテビティログをDatadogに送信
DatadogにAzureリソースのログを送信する場合は診断設定を利用します。
診断設定の宛先にイベントハブ(Event Hubs)を選択します。
アクテビティログの診断設定
アクティビティログの診断設定はモニターから出来ます。
アクテビティログの診断設定 | |
モニターのリソースメニューでアクテビティログを選択します。 アクテビティログをエクスポートを選択します。 |
|
診断設定を追加するを選択します。 | |
診断設定の名前を入力します。 送信するログカテゴリにチェックを入れます。 宛先の詳細でイベントハブへのストリームを選択します。 作成したイベントハブ(Event Hubs)のリソースを選択します。 保存を選択します。 |
Datadogでアクテビティログを確認
Datadogで受信したアクテビティログを確認します。
Datadogでログを表示 | |
DatadogのLogsで受信したアクテビティログを確認出来ます。 |
※画面のログサンプルは仮想マシン(Azure VM)を起動した際のログです。
最後に
今回はアクテビティログを例にAzureリソースのログをDatadogに送る為の設定をやってみました。
自動のスクリプトも用意されていますが今回は設定確認を含めて手動でリソースを作成しています。
イベントハブ(Event Hubs)、関数アプリ(Azure Function App)を利用してDatadogへリソースのログを転送する事が出来ました。
Azureリソースのログ転送は診断設定で出来るので簡単にDatadogへログ転送出来ました。
今後もDatadogについて色々試してみたいと思います。
DatadogへのAzure テナント登録手順についてはこちらに纏めています。
Datadog Agentを利用した仮想マシンOSのログ転送設定手順についてはこちらに纏めています。