Azure Monitor ログを設定し、Azure Logic Apps の診断データを収集する

実行時にロジック アプリに関するより豊富なデバッグ情報を取得するには、Azure Monitor ログを設定して使用し、トリガー イベント、実行イベント、アクション イベントなどのランタイム データやイベントに関する情報を Log Analytics ワークスペースに記録して格納します。 Azure Monitor を使用すると、クラウド環境とオンプレミス環境を監視して、可用性とパフォーマンスをより簡単に維持することができます。 Azure Monitor ログを使用することで、この情報を収集して確認するのに役立つログ クエリを作成できます。 さらに、Azure Storage や Azure Event Hubs などの他の Azure サービスでこの診断データを使用することもできます。

ロジック アプリのログを設定するには、ロジック アプリを作成するときに Log Analytics を有効にするか、既存のロジック アプリの Log Analytics ワークスペースに Logic Apps 管理ソリューション をインストールします。 このソリューションでは、ロジック アプリの実行に関する集約情報が提供され、状態、実行時間、再送信の状態、関連付け ID などの特定の詳細情報が含まれています。 次に、この情報に対してログの記録とクエリの作成を有効にするために、Azure Monitor ログを設定します

この記事では、新しいロジック アプリと既存のロジック アプリで Log Analytics を有効にする方法、Logic Apps 管理ソリューションをインストールして設定する方法、および Azure Monitor ログのクエリを設定して作成する方法について説明します。

前提条件

開始する前に、Log Analytics ワークスペースが必要です。 ワークスペースがない場合は、Log Analytics ワークスペースの作成方法について確認してください。

新しいロジック アプリの Log Analytics を有効にする

ロジック アプリを作成するときに、Log Analytics を有効にすることができます。

  1. Azure portal 内のロジック アプリを作成するための情報を指定するウィンドウで、次の手順を実行します。

    1. [Log Analytics][オン] を選択します。

    2. Log Analytics ワークスペース の一覧から、ロジック アプリの実行からデータを送信するワークスペースを選択します。

      ロジック アプリに関する情報の入力

      この手順を完了すると、Azure によりロジック アプリが作成されます。このアプリは、Log Analytics ワークスペースに関連付けられています。 この手順では、ワークスペースに Logic Apps 管理ソリューションが自動的にインストールされます。

  2. 完了したら [作成] を選択します。

  3. ロジック アプリを実行した後、ロジック アプリの実行状態を表示するには、次の手順を続行します

Logic Apps 管理ソリューションをインストールする

ロジック アプリの作成時にすでに Log Analytics をオンにしている場合は、この手順をスキップしてください。 Log Analytics ワークスペースには、Logic Apps 管理ソリューションが既にインストールされています。

  1. Azure portal の検索ボックスに「log analytics workspaces」と入力し、 [Log Analytics ワークスペース] を選択します。

    [Log Analytics ワークスペース] を選択する

  2. [Log Analytics ワークスペース] でワークスペースを選択します。

    Log Analytics ワークスペースを選択する

  3. [概要] ウィンドウで [Log Analytics の使用を開始する] > [監視ソリューションの構成] の順に選択し、 [ソリューションの表示] を選択します。

    [概要] ウィンドウで [ソリューションの表示] を選択する

  4. [概要][追加] を選択します。

    [概要] ウィンドウで新しいソリューションを追加する

  5. [Marketplace] が開いたら、検索ボックスに「logic apps management」と入力し、 [Logic Apps 管理] を選択します。

    Marketplace から [Logic Apps 管理] を選択する

  6. [ソリューションの説明] ウィンドウで [作成] を選択します。

    [作成] を選択して [Logic Apps 管理] ソリューションを追加する

  7. ソリューションをインストールする Log Analytics ワークスペースを確認して確定し、もう一度 [作成] を選択します。

    [Logic Apps 管理] の [作成] を選択する

    Log Analytics ワークスペースが含まれる Azure リソース グループに Azure によってソリューションがデプロイされると、ワークスペースの [概要] ウィンドウにソリューションが表示されます。

    ワークスペースの [概要] ウィンドウ

Azure Monitor ログを設定する

ランタイム イベントおよびデータに関する情報を Azure Monitor ログに格納するとき、この情報の検索と確認に役立つログ クエリを作成できます。

注意

診断設定を有効にした後、診断データが指定された宛先 (Log Analytics、イベント ハブ、ストレージ アカウントなど) のログに最大 30 分間送信されない場合があります。 この遅延は、この期間の診断データが存在しないため確認できない可能性があることを意味します。 完了したイベントと追跡対象プロパティは、10 ~ 15 分間 Log Analytics ワークスペースに表示されない場合があります。

  1. Azure Portal で、ご利用のロジック アプリを探して選択します。

  2. ロジック アプリ メニューの [監視] で、 [診断設定] > [診断設定を追加する] を追加します。

    [監視] で、[診断設定] > [診断設定を追加する] を選択する

  3. 設定を作成するには、次の手順を実行します。

    1. 設定の名前を入力します。

    2. [Log Analytics への送信] を選択します。

    3. [サブスクリプション] では、Log Analytics ワークスペースに関連付けられている Azure サブスクリプションを選択します。

    4. [Log Analytics ワークスペース] では、使用するワークスペースを選択します。

    5. [ログ] にある [WorkflowRuntime] カテゴリを選択します。これは、記録するイベント カテゴリを指定します。

    6. すべてのメトリックを選択するには、 [メトリック][AllMetrics] を選択します。

    7. 終了したら、 [保存] を選択します。

    次に例を示します。

    Log Analytics ワークスペースとログ対象のデータを選択する

ロジック アプリの実行状態を表示する

ロジック アプリが実行されると、それらの実行に関するデータを Log Analytics ワークスペースに表示できます。

  1. Azure portal で、Log Analytics ワークスペースを探して開きます。

  2. ワークスペースのメニューで、 [ワークスペースの概要] > [Logic Apps 管理] を選択します。

    ロジック アプリの実行状態と実行件数

    注意

    実行後すぐに [Logic Apps 管理] タイルに結果が表示されない場合は、 [最新の情報に更新] を選択するか、しばらく待ってから再試行してください。

    ここでは、ロジック アプリの実行は名前または実行状態でグループ化されます。 このページには、ロジック アプリの実行のアクションまたはトリガーで発生したエラーに関する詳細も表示されます。

    ロジック アプリの実行状態の概要

  3. 特定のロジック アプリまたは状態のすべての実行を表示するには、そのロジック アプリまたは状態の行を選択します。

    特定のロジック アプリのすべての実行を表示する例は次の通りです。

    ロジック アプリの実行と状態を表示する

    追跡対象プロパティを設定したアクションでは、 [追跡対象プロパティ] 列で [表示] を選択してプロパティを表示することもできます。 追跡対象プロパティを検索するには、列フィルターを使用します。

    ロジック アプリの追跡対象プロパティを表示する

  4. 結果をフィルター処理するには、クライアント側とサーバー側の両方でフィルター処理を実行します。

    • クライアント側のフィルター:列ごとに次のように必要なフィルターを選択します。

      列フィルターの例

    • サーバー側のフィルター:特定の時間枠を選択するか、表示される実行の数を制限するには、ページの上部にあるスコープ コントロールを使用します。 既定では、一度に 1000 件のレコードのみ表示されます。

      時間枠を変更する

  5. 特定の実行のすべてのアクションとその詳細を表示するには、ロジック アプリの実行の行を選択します。

    特定のロジック アプリの実行のすべてアクションとトリガーを表示する例は次のとおりです。

    ロジック アプリの実行のアクションを表示する

診断データを Azure Storage と Azure Event Hubs に送信する

Azure Monitor ログと併せて、ロジック アプリの診断データを他の Azure サービスで使用する方法を次のように拡張できます。

これにより、Azure Stream AnalyticsPower BI などの他のサービスのテレメトリと分析を使用したリアルタイム監視が可能になります。 次に例を示します。

診断データを送信する場所に応じて、まず Azure ストレージ アカウントを作成するか、Azure イベント ハブを作成することを確認してください。 その後、データの送信先を選択できます。 保有期間は、ストレージ アカウントを使用する場合にのみ適用されます。

データを Azure ストレージ アカウントまたはイベント ハブに送信する

Azure Monitor の診断イベント

各診断イベントには、ご利用のロジック アプリとそのイベントに関する詳細 (状態、開始時刻、終了時刻など) が含まれています。 監視、追跡、ログをプログラムで設定する際に、この情報を Azure Logic Apps 用 REST APIAzure Monitor 用 REST API で使用できます。 また、次に示す clientTrackingId および trackedProperties プロパティを使用することもできます。

  • clientTrackingId:指定しなかった場合、自動的にこの ID が生成され、ロジック アプリの実行でイベント (このロジック アプリから呼び出される入れ子になったワークフローなど) どうしが関連付けられます。 この ID は、カスタム ID 値を指定した x-ms-client-tracking-id ヘッダーをトリガー要求で渡すことで、トリガー内で手動で指定できます。 要求トリガー、HTTP トリガー、または webhook トリガーを使用できます。

  • trackedProperties:診断データの入力または出力を追跡するには、ロジック アプリ デザイナーを使用するか、またはロジック アプリの JSON 定義から直接、アクションに trackedProperties セクションを追加します。 追跡対象プロパティで追跡できるのは、1 つのアクションの入出力のみです。ただし、イベントの correlation プロパティを使用すると、1 回の実行に含まれる複数のアクションにわたってそれらを相互に関連付けることができます。 1 つ以上のプロパティを追跡するには、trackedProperties セクションと必要なプロパティをアクションの定義に追加します。

    次に示す例では、アクションの入力からの追跡対象プロパティが [変数を初期化する] アクションの定義に含まれています。このプロパティには、レコードではなく配列を入力します。

    {
       "Initialize_variable": {
          "type": "InitializeVariable",
          "inputs": {
             "variables": [
                {
                   "name": "ConnectorName", 
                   "type": "String", 
                   "value": "SFTP-SSH" 
                }
             ]
          },
          "runAfter": {},
          "trackedProperties": { 
             "myTrackedPropertyName": "@action().inputs.variables[0].value"
          }
       }
    }
    

    次の例では、複数の追跡対象プロパティを示します。

    "HTTP": {
       "type": "Http",
       "inputs": {
          "body": "@triggerBody()",
          "headers": {
             "Content-Type": "application/json"
          },
          "method": "POST",
          "uri": "http://store.fabrikam.com",
       },
       "runAfter": {},
       "trackedProperties": {
          "myActionHTTPStatusCode": "@action()['outputs']['statusCode']",
          "myActionHTTPValue": "@action()['outputs']['body']['<content>']",
          "transactionId": "@action()['inputs']['body']['<content>']"
       }
    }
    

次の例では、ActionCompleted イベントに clientTrackingIdtrackedProperties 属性がどのように含まれるかを示します。

{
   "time": "2016-07-09T17:09:54.4773148Z",
   "workflowId": "/subscriptions/XXXXXXXXXXXXXXX/resourceGroups/MyResourceGroup/providers/Microsoft.Logic/workflows/MyLogicApp",
   "resourceId": "/subscriptions/<subscription-ID>/resourceGroups/MyResourceGroup/providers/Microsoft.Logic/workflows/MyLogicApp/runs/<run-ID>/actions/Http",
   "category": "WorkflowRuntime",
   "level": "Information",
   "operationName": "Microsoft.Logic/workflows/workflowActionCompleted",
   "properties": {
      "$schema": "2016-06-01",
      "startTime": "2016-07-09T17:09:53.4336305Z",
      "endTime": "2016-07-09T17:09:53.5430281Z",
      "status": "Succeeded",
      "code": "OK",
      "resource": {
         "subscriptionId": "<subscription-ID>",
         "resourceGroupName": "MyResourceGroup",
         "workflowId": "<logic-app-workflow-ID>",
         "workflowName": "MyLogicApp",
         "runId": "08587361146922712057",
         "location": "westus",
         "actionName": "Http"
      },
      "correlation": {
         "actionTrackingId": "e1931543-906d-4d1d-baed-dee72ddf1047",
         "clientTrackingId": "<my-custom-tracking-ID>"
      },
      "trackedProperties": {
         "myTrackedPropertyName": "<value>"
      }
   }
}

次のステップ