🍃
Logic Apps から Log Ingestion API を実行
はじめに
本記事では、Logic Apps のマネージド ID と HTTP アクションを活用し、Log Ingestion API を通じて Log Analytics ワークスペースにカスタムログを記録する方法を解説します。Azure Monitor コネクターでは直接ログを書き込むアクションが用意されていませんが、Log Ingestion API を利用することで柔軟なログ収集が可能となります。
事前準備
以下の Microsoft ドキュメントに沿って、次の 3 つの準備を行います。
- データ収集エンドポイントを作成する
- Log Analytics ワークスペースに新しいテーブルを作成する
- データ収集ルールを作成する
また Microsoft Entra アプリケーションを作成する の代わりに Logic Apps のマネージド ID を有効化します。
DCR にアクセス許可を割り当てる で [アクセス権の割り当て先] で [マネージド ID] を選択し、Logic Apps のマネージド ID を指定します。
HTTP アクションの設定
Logic Apps の HTTP アクションを以下のように設定します。
設定項目 | 設定値 |
---|---|
URI | https://your-dce-name.ingest.monitor.azure.com/dataCollectionRules/your-dcr-immutable-id/streams/your-stream-name?api-version=2023-01-01 |
Method | POST |
Headers | Content-Type : application/json |
Body | 書き込みたいログを Array 型の JSON 形式で指定 |
Advanced parameters | Authentication を追加 |
Authentication type | Managed identity |
Managed identity | System-assigned managed identity |
Audience | https://monitor.azure.com/ |
URI サンプル
https://dce-cus-default-xxxx.centralus-1.ingest.monitor.azure.com/dataCollectionRules/dcr-1234567890abcdefghijklmnopqrstuv/streams/Custom-MyTableRawData?api-version=2023-01-01
Body サンプル
[
{
"Time": "2025-06-12T03:24:24.4122873Z",
"Computer": "Computer1",
"AdditionalContext": {
"InstanceName": "user1",
"TimeZone": "Pacific Time",
"Level": 4,
"CounterName": "AppMetric1",
"CounterValue": 15.3
}
},
{
"Time": "2025-06-12T03:24:24.4122873Z",
"Computer": "Computer2",
"AdditionalContext": {
"InstanceName": "user2",
"TimeZone": "Central Time",
"Level": 3,
"CounterName": "AppMetric1",
"CounterValue": 23.5
}
}
]
設定イメージは以下の通りです。
実行結果
Logic Apps の実行結果例です。
Log Analytics ワークスペースにデータが記録されていることを確認できます。
まとめ
Logic Apps のマネージド ID と HTTP アクションを活用することで、Log Ingestion API を通じて柔軟にカスタムログを Log Analytics ワークスペースへ記録できます。
この仕組みは監査や運用自動化、セキュリティ監視など幅広い用途に応用可能になります。
参考
Discussion