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 の価格」を参照してください。
Enterprise および Enterprise Flash レベルのキャッシュでは、Redis Enterprise に組み込まれている 監査接続イベント 機能が使用されます。 監査接続イベントを使用すると、失敗した認証イベントを含め、すべての接続、切断、認証イベントをログに記録できます。
次の制限事項に留意してください。
-
OSS クラスター ポリシーを使用すると、各データ ノードからログが出力されます。
エンタープライズ クラスター ポリシーを使用すると、プロキシとして使用されているノードのみがログを出力します。 この違いはアーキテクチャのみです。 どちらのバージョンも、キャッシュへのすべての接続を対象とします。
- データの損失や接続イベントの欠落はまれですが、可能です。 通常、データ損失はネットワークの問題によって発生します。
- 切断ログが完全に安定していない可能性があり、イベントが見つからない可能性があります。
- Enterprise レベルの接続ログはイベント ベースであるため、保持ポリシーを検討してください。 リテンション期間が 10 日に設定されている場合、15 日前に開始された接続がまだ存在する可能性がありますが、その接続イベントのログは保持されません。
-
アクティブ geo レプリケーションを使用する場合は、geo レプリケーション グループ内のキャッシュ インスタンスごとに個別にログ記録を構成する必要があります。
- 診断設定は、選択した宛先へのフローを開始するまでに最大 90 分 かかる場合があります。
- 接続ログにより、キャッシュのパフォーマンスが低下する可能性があります。
重要
ログを選択すると、カテゴリ グループまたはカテゴリ グループのいずれかを選択できます。これは、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 を使用して診断設定を有効にする
キャッシュの Azure portal ページで、左側のナビゲーション ウィンドウの [監視] の下にある [診断設定] を選択します。
[診断設定] ページで、[診断設定の追加] を選択します。
[ 診断設定 ] ページで、診断設定の名前を入力し、目的の監視オプションを選択します。 たとえば、[ AllMetrics ] を選択してすべてのメトリックをログに記録し、 allLogs を 選択して接続済みクライアントリスト と MSEntra 認証監査ログの両方をログに記録します。
1 つ以上の宛先と宛先の詳細を選択し、[ 保存] を選択します。
ご利用のキャッシュの Azure portal ページの左側のナビゲーション ウィンドウにある [監視] で、メトリック用の [診断設定 - メトリック] またはログ用の [診断設定 - 監査] を選択します。
[ 診断設定 - メトリック] または [診断設定 - 監査] ページで、[ 診断設定の追加] を選択します。
メトリックまたはリソース ログの [診断設定 ] ページで、診断設定の名前を入力し、必要なメトリックまたはリソース ログ のオプションを選択します。 [ログ] ページで、[ 接続イベント ] カテゴリまたは 監査 または allLogs カテゴリ グループを選択できます。 これらの選択肢のいずれかを選択すると、接続ログが有効になります。
1 つ以上の宛先と宛先の詳細を選択し、[ 保存] を選択します。
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
}
}
]
}
}
依頼
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/RedisEnterprise/<cache name>
-
api-version
: 2017-05-01-preview
本文の例
{
"properties": {
"storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/apptest/providers/Microsoft.Storage/storageAccounts/myteststorage",
"eventHubAuthorizationRuleID": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/authorizationrules/myrule",
"eventHubName": "myeventhub",
"marketplacePartnerId": "/subscriptions/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/resourceGroups/test-rg/providers/Microsoft.Datadog/monitors/mydatadog",
"workspaceId": "/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/insights integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
"logs": [
{
"category": "ConnectionEvents",
"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
az monitor diagnostic-settings create
--resource /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisenterprise/{cacheName}/databases/default
--name {logName}
--logs '[{"category": "ConnectionEvents","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"
}
以下のフィールドとプロパティは ConnectionEvents
ログ カテゴリに出現します。 Azure Monitor では、REDConnectionEvents
のリソース プロバイダー名の下の 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 |
該当なし |
次の行を参照してください。 |
eventEpochTime |
EventEpochTime |
UTC UNIX タイムスタンプ、またはイベントが発生した 1970 年 1 月 1 日以降の秒数。 Log Analytics ワークスペースの関数datetime を使用して、タイムスタンプをunixtime_seconds_todatetime 形式に変換できます。 |
clientIP |
ClientIP |
Redis クライアントの IP アドレス。 Azure Storage を使用する場合、IP アドレスはキャッシュの種類に基づく IPv4 または Private Link IPv6 形式です。 Log Analytics を使用する場合、この結果は常に IPv4 になります。これは、個別の IPv6 フィールドがあるためです。 |
該当なし |
PrivateLinkIPv6 |
Redis クライアントのプライベート リンク IPv6 アドレス。Private Link と Log Analytics の両方を使用している場合にのみ出力されます。 |
id |
ConnectionId |
Redis によって割り当てられた一意の接続 ID。 |
eventType |
EventType |
接続イベントの種類: new_conn 、 auth 、または close_conn 。 |
eventStatus |
EventStatus |
状態コードとしての認証要求の結果。 認証イベントにのみ適用されます。 |
メモ
Private Link を使用する場合は、Log Analytics にデータをストリーミングしない限り、IPv6 アドレスのみがログに記録されます。 IPv6 アドレスの最後の 4 バイトのデータを使用して、IPv6 アドレスを同等の IPv4 アドレスに変換できます。 たとえば、Private Link IPv6 アドレス fd40:8913:31:6810:6c31:200:a01:104
では、最後の 4 バイト (16 進数) は 0a
、 01
、 01
、および 04
です。 (アドレスでは、コロンの後の先頭の 0 は省略されます)。これらの値は、10 進数の 10
、 1
、 1
、および 4
に対応し、IPv4 アドレス 10.1.1.4
を生成します。
ストレージ アカウント ログのサンプル
ストレージ アカウントに送信される接続イベントのログは、次の例のようになります。
{
"time": "2023-01-24T10:00:02.3680050Z",
"resourceId": "/SUBSCRIPTIONS/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/RESOURCEGROUPS/TEST/PROVIDERS/MICROSOFT.CACHE/REDISENTERPRISE/AUDITING-SHOEBOX/DATABASES/DEFAULT",
"category": "ConnectionEvents",
"___location": "westus",
"operationName": "Microsoft.Cache/redisEnterprise/databases/ConnectionEvents/Read",
"properties": {
"eventEpochTime": 1674554402,
"id": 6185063009002,
"clientIP": "20.228.16.39",
"eventType": "new_conn"
}
}
認証イベントのログは、次の例のようになります。
{
"time": "2023-01-24T10:00:02.3680050Z",
"resourceId": "/SUBSCRIPTIONS/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/RESOURCEGROUPS/TEST/PROVIDERS/MICROSOFT.CACHE/REDISENTERPRISE/AUDITING-SHOEBOX/DATABASES/DEFAULT",
"category": "ConnectionEvents",
"___location": "westus",
"operationName": "Microsoft.Cache/redisEnterprise/databases/ConnectionEvents/Read",
"properties": {
"eventEpochTime": 1674554402,
"id": 6185063009002,
"clientIP": "20.228.16.39",
"eventType": "auth",
"eventStatus": 8
}
}
切断イベントのログは次のようになります。
{
"time": "2023-01-24T10:00:03.3680050Z",
"resourceId": "/SUBSCRIPTIONS/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/RESOURCEGROUPS/TEST/PROVIDERS/MICROSOFT.CACHE/REDISENTERPRISE/AUDITING-SHOEBOX/DATABASES/DEFAULT",
"category": "ConnectionEvents",
"___location": "westus",
"operationName": "Microsoft.Cache/redisEnterprise/databases/ConnectionEvents/Read",
"properties": {
"eventEpochTime": 1674554402,
"id": 6185063009002,
"clientIP": "20.228.16.39",
"eventType": "close_conn"
}
}
関連コンテンツ
Azure portal、Azure CLI、または Azure PowerShell を使用して診断設定を作成する方法の詳細については、「Azure でプラットフォーム ログとメトリックを収集するための診断設定を作成する」を参照してください。