次の方法で共有


診断設定を使用して Azure Cache for Redis を監視する

Azure Cache for Redis には、 診断設定に次の 2 つの監視オプションがあります。

  • キャッシュ メトリックは 、キャッシュ操作に関する Azure Monitor メトリックをログに記録します。
  • 接続ログ は、キャッシュへの接続をログに記録します。 Azure では、要求ごとにこれらのログ ( データ プレーン ログとも呼ばれます) がキャプチャされます。 接続ログの内容は、リソースの種類によって異なります。

Azure Monitor の監視とログ機能の概要については、 Azure Monitor の診断設定に関するページを参照してください。

利用可能範囲

レベル Basic、Standard、Premium Enterprise および Enterprise Flash
キャッシュ メトリック はい はい
接続ログ はい はい

キャッシュ メトリック

Azure Redis では、 サーバーの負荷1 秒あたりの接続数など、多くの有用なメトリックが出力されます。 Azure Redis メトリックの完全な一覧については、「 メトリック」を参照してください。

キャッシュ メトリックをログに記録するには、階層の手順に従って、キャッシュ診断設定AllMetrics オプションを有効にします。 メトリックを保持する期間を構成できます。 メトリックのログ記録とエクスポートの詳細については、「 Azure Cache for Redis メトリック」を参照してください。

接続ログ

Azure Cache for Redis では、Azure 診断設定を使用して、キャッシュに関するクライアント接続情報をログに記録します。 診断設定でこの情報をログに記録して分析すると、誰がいつ、誰がキャッシュに接続するかを理解するのに役立ちます。 ログ データは、セキュリティ監査の目的で使用したり、セキュリティの問題の範囲を特定したりするために使用できます。

メモ

redis-cli INFO または CLIENT LIST コマンドを使用して、キャッシュ インスタンスにオンデマンドで接続されているユーザーをいつでも確認できます。

接続ログの実装と生成されるログは Azure Redis レベルで似ていますが、Basic レベル、Standard レベル、Premium レベルには、Enterprise レベルと Enterprise Flash レベルとの違いがいくつかあります。

重要

  • Basic レベル、Standard レベル、Premium レベルでは、接続ログによってキャッシュ内の現在のクライアント接続が ポーリング されます。 同じクライアント IP アドレスは、接続が続く限り繰り返し表示できます。
  • Enterprise および Enterprise Flash レベルでは、ログ記録は接続 イベントに重点を置いています。 ログ記録は、接続イベントまたはその他の接続関連イベントが最初に発生した場合にのみ発生します。

要件と制限

Basic、Standard、Premium レベルのキャッシュでは、各一意の IP アドレスから送信された接続の数を含め、IP アドレスによってクライアント接続をポーリングします。 これらのログは累積されませんが、10 秒間隔で作成された特定の時点のスナップショットを表します。 これらのレベルでは、成功または失敗した認証イベントや切断イベントはログに記録されません。

次の制限事項に留意してください。

  • これらの層の接続ログは、10 秒ごとに作成されたポイントインタイム スナップショットで構成されるため、10 秒以内に確立および削除された接続はログに記録されません。
  • 認証イベントと切断イベントはログに記録されません。
  • 診断設定は、選択した宛先へのフローを開始するまでに最大 90 分 かかる場合があります。
  • 接続ログにより、キャッシュのパフォーマンスが低下する可能性があります。
  • Log Analytics にログをストリーミングするには、Analytics ログの価格プランのみがサポートされています。 詳細については、「Azure Monitor の価格」を参照してください。

重要

ログを選択すると、カテゴリ グループまたはカテゴリ グループのいずれかを選択できます。これは、Azure サービス全体のログの定義済みのグループです。 カテゴリ グループを使用する場合、保持設定を構成することはできません。 接続ログの保持期間を設定する必要がある場合は、代わりに [カテゴリ ] で項目を選択します。 詳細については、「 カテゴリ グループ」を参照してください。

ログの保存先

Azure Redis インスタンスの診断設定を有効にすると、リソース ログを次の宛先に送信できます。

  • Log Analytics ワークスペースに送信する。 このワークスペースは、監視対象のリソースと同じリージョンにする必要はありません。

  • [ストレージ アカウントへのアーカイブ] 。 ストレージ アカウントは、キャッシュと同じリージョンに存在する必要があります。

  • イベント ハブにストリーミングします。 イベント ハブは、キャッシュと同じリージョンにある必要があります。

    仮想ネットワークが有効になっている場合、診断設定はイベント ハブ リソースにアクセスできません。 Azure Event Hubs で [ 信頼された Microsoft サービスによるこのファイアウォールのバイパスを許可 する] 設定を有効にして、イベント ハブ リソースへのアクセスを許可します。

  • パートナー ソリューションに送信します。 パートナーの潜在的なログ ソリューションの一覧については、「 Azure Native Integrations を使用した Azure の拡張 - データとストレージ」を参照してください。

診断ログをストレージ アカウントまたはイベント ハブに送信すると、いずれかの宛先に対して通常のデータ料金が課金されます。 Azure Cache for Redis ではなく、Azure Monitor で課金されます。 Log Analytics にログを送信すると、Log Analytics のデータ インジェストに対してのみ課金されます。 価格の詳細については、 Azure Monitor の価格に関するページを参照してください。

Azure portal を使用して診断設定を有効にする

  1. キャッシュの Azure portal ページで、左側のナビゲーション ウィンドウの [監視] の下にある [診断設定] を選択します。

  2. [診断設定] ページで、[診断設定の追加] を選択します。

    [診断設定の追加] が強調表示されている [診断設定] ページを示すスクリーンショット。

  3. [ 診断設定 ] ページで、診断設定の名前を入力し、目的の監視オプションを選択します。 たとえば、[ AllMetrics ] を選択してすべてのメトリックをログに記録し、 allLogs選択して接続済みクライアントリストMSEntra 認証監査ログの両方をログに記録します

  4. 1 つ以上の宛先と宛先の詳細を選択し、[ 保存] を選択します。

    Premium キャッシュの診断設定の構成ページを示すスクリーンショット。

REST API を使用して接続ログを有効にする

診断設定を作成するには、次のように対話型コンソールで Azure Monitor REST API を使用します。 詳細については、「 診断設定 - 作成または更新」を参照してください。

依頼

PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview

パラメーター/ヘッダー

  • Content-Type: application/json
  • name: 診断設定の名前
  • resourceUri: subscriptions/<your subscription id>/resourceGroups/<cache resource group>/providers/Microsoft.Cache/Redis/<cache name>
  • api-version: 2017-05-01-preview

本文の例

{
    "properties": {
      "storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/apptest/providers/Microsoft.Storage/storageAccounts/appteststorage1",
      "eventHubAuthorizationRuleId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/eventhubs/myeventhub/authorizationrules/myrule",
      "eventHubName": "myeventhub",
      "workspaceId": "/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/insights-integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
      "logs": [
        {
          "category": "ConnectedClientList",
          "enabled": true,
          "retentionPolicy": {
            "enabled": false,
            "days": 0
          }
        }
      ]
    }
}

Azure CLI を使用して接続ログを有効にする

診断設定を作成するには、Azure CLI az monitor diagnostic-settings create コマンドを使用します。 コマンドとパラメーターの説明の詳細については、「 プラットフォーム ログとメトリックをさまざまな宛先に送信するための診断設定を作成する」を参照してください。

次の例は、Azure CLI を使用して 4 つの異なるエンドポイントにデータをストリーミングする方法を示しています。

az monitor diagnostic-settings create 
    --resource /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupname}/providers/Microsoft.Cache/Redis/{cacheName}
    --name {logName}
    --logs '[{"category": "ConnectedClientList","enabled": true,"retentionPolicy": {"enabled": false,"days": 0}}]'    
    --event-hub {eventHubName}
    --event-hub-rule /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.eventhub/namespaces/{eventHubNamespace}/authorizationrule/{ruleName}
    --storage-account /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}
    --workspace /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{logAnalyticsWorkspaceName}
    --marketplace-partner-id/subscriptions/{subscriptionID}/resourceGroups{resourceGroupname}/providers/Microsoft.Datadog/monitors/mydatadog

接続ログの内容

ConnectedClientList ログ カテゴリには、次のフィールドとプロパティが表示されます。 Azure Monitor では、ACRConnectedClientListのリソース プロバイダー名の下の MICROSOFT.CACHE テーブルにログが収集されます。

Azure Storage のフィールドまたはプロパティ Azure Monitor ログのプロパティ 説明
time TimeGenerated ログが生成されたときの UTC タイムスタンプ。
___location Location Azure Redis Cache がアクセスされた Azure リージョン。
category 該当なし 利用可能なログカテゴリーConnectedClientList
resourceId _ResourceId Azure Redis リソース ログが有効になっています。
operationName OperationName ログ レコードに関連付けられた Redis 操作。
properties 該当なし 次の行を参照してください。
tenant CacheName Azure Redis インスタンスの名前。
roleInstance RoleInstance クライアントの一覧をログに記録したロール インスタンス。
connectedClients.ip ClientIp Redis クライアントの IP アドレス。
connectedClients.privateLinkIpv6 PrivateLinkIpv6 Redis クライアントのプライベート リンク IPv6 アドレス (該当する場合)。
connectedClients.count ClientCount 関連付けられた IP アドレスからの Redis クライアント接続の数。

ストレージ アカウント ログのサンプル

ストレージ アカウントに送信されるログの内容は、次の例のようになります。

{
    "time": "2021-08-05T21:04:58.0466086Z",
    "___location": "canadacentral",
    "category": "ConnectedClientList",
    "properties": {
        "tenant": "mycache", 
        "connectedClients": [
            {
                "ip": "192.123.43.36", 
                "count": 86
            },
            {
                "ip": "10.1.1.4",
                "privateLinkIpv6": "fd40:8913:31:6810:6c31:200:a01:104", 
                "count": 1
            }
        ],
        "roleInstance": "1"
    },
    "resourceId": "/SUBSCRIPTIONS/eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c/RESOURCEGROUPS/AZURE-CACHE/PROVIDERS/MICROSOFT.CACHE/REDIS/MYCACHE", 
    "Level": 4,
    "operationName": "Microsoft.Cache/ClientList"
}

Azure portal、Azure CLI、または Azure PowerShell を使用して診断設定を作成する方法の詳細については、「Azure でプラットフォーム ログとメトリックを収集するための診断設定を作成する」を参照してください。