使用診斷設定監視 Azure 受控 Redis (預覽) 數據
Azure 中的診斷設定可用來收集資源記錄。 Azure 資源會發出資源記錄,並提供該資源作業的豐富、經常性資料。 會針對每個要求擷取這些記錄,這些記錄也稱為「資料平面記錄」。 如需 Azure 中功能的建議概觀,請參閱 Azure 監視器中的診斷設定。 這些記錄的內容會依資源類型而有所不同。 在 Azure 受控 Redis(預覽版)中,有兩個選項可供記錄:
- 用來記錄 Azure 監視器計量的快取計量 (也就是 "AllMetrics")
- 連線記錄會記錄快取的連線以符合安全性和診斷目的。
快取計量
Azure 受控 Redis (預覽版) 會 發出許多計量 ,例如 伺服器負載 和 每秒 連線,有助於記錄。 選取 [AllMetrics] 選項,即可記錄這些和其他快取計量。 您可以設定計量的保留時間長度。 如需將快取計量匯出至儲存體帳戶的範例,請參閱這裡。
連線記錄
Azure 受控 Redis 會使用 Azure 診斷設定來記錄用戶端連線到快取的資訊。 透過記錄和分析此診斷設定,便可了解誰正在連結至您的快取,以及這些連線的時間戳記。 記錄資料可用於識別安全性缺口的範圍,並用於安全性稽核目的。
Azure 受控 Redis 會使用 Redis Enterprise 堆棧內建的稽核聯機事件 功能。 稽核連線事件允許記錄每個連線、中斷連線和驗證事件,包括失敗的驗證事件。
重要
Azure 受控 Redis 中的記錄著重於每個連線 事件。 只有在第一次發生實際事件時,才會發生記錄。
連線記錄的必要條件/限制
- 使用 OSS 叢集原則時,會從每個資料節點發出記錄。 當您使用企業叢集原則時,只有做為 Proxy 的節點會發出記錄。 這兩個版本仍然涵蓋與快取的所有連線。 這只是架構差異。
- 資料遺失 (也就是遺失連線事件) 很少見,但仍有發生的可能性。 資料遺失通常是由網路問題所造成。
- 中斷連線記錄仍不是完全穩定的狀態,而且可能會遺漏事件。
- 由於 Azure 受控 Redis 上的連線記錄是以事件為基礎,因此請小心保留原則。 例如,如果保留設定為 10 天,且連線事件在 15 天前發生,該連線仍可能存在,但該連線的記錄不會保留下來。
- 如果使用作用中異地複寫,則必須個別針對異地復寫群組中的每個快取執行個體設定記錄。
- 所有診斷設定最多可能需要 90 分鐘的時間,才能開始流向您選取的目的地。
- 啟用連線記錄可能會導致 Redis 實例效能降低。
注意
一律可以使用 INFO 或 CLIENT LIST 命令,以視需要確認連線到快取執行個體的人員。
重要
選取記錄時,您可以選擇特定的類別或類別群組,這是跨 Azure 服務預先定義的記錄群組。 當您使用類別群組時,就無法再進行保留設定。 如果您需要判斷連線記錄的保留期間,請改為選取 [類別] 區段中的項目。
記錄目的地
您可以開啟 Azure 受控 Redis 實例的診斷設定,並將資源記錄傳送至下列目的地:
- Log Analytics 工作區 - 所在區域無須與受監視的資源相同。
- 儲存體帳戶 - 所在區域必須與快取相同。 不過,不支援將進階儲存體帳戶作為目的地。
- 事件中樞 - 啟用虛擬網路時,診斷設定無法存取事件中樞資源。 在事件中樞啟用 [允許受信任的 Microsoft 服務略過此防火牆嗎?] 設定,授與事件中樞資源的存取權。 事件中樞所在的區域必須與快取相同。
- 合作夥伴解決方案 - 您可以在這裡找到潛在的合作夥伴記錄解決方案清單
如需診斷需求的詳細資訊,請參閱診斷設定。
將診斷記錄傳送至任一目的地時,系統會使用儲存體帳戶和事件中樞使用量的一般資料費率來計費。 您會在 Azure 監視器而非 Azure 受控 Redis 下計費。 將記錄傳送至 Log Analytics 時,您只需支付 Log Analytics 資料擷取的費用。
如需詳細定價資訊,請參閱 Azure 監視器定價。
使用 Azure 入口網站啟用連線記錄
登入 Azure 入口網站。
流覽至您的 Azure 受控 Redis 帳戶。 開啟左側 [監視] 區段下的 [診斷設定 - 稽核] 窗格。 接著選取 [新增診斷設定]。
在 [診斷設定 - 稽核] 窗格中,選取 [類別] 中的 [連線事件]。
如需所記錄資料的詳細資訊,請參閱以下連線記錄的內容。
選取 [連線事件] 之後,請將記錄傳送至偏好的目的地。 在工作窗格中選取該資訊。
使用 REST API 啟用連線記錄
使用 Azure 監視器 REST API,透過互動式主控台建立診斷設定。 如需詳細資訊,請參閱 建立或更新 \(英文\)。
要求
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
標頭
參數/標頭 | 值/描述 |
---|---|
name |
診斷設定的名稱。 |
resourceUri |
subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.Cache/RedisEnterprise/{CACHE_NAME}/databases/default |
api-version |
2017-05-01-preview |
Content-Type |
application/json |
本文
{
"properties": {
"storageAccountId": "/subscriptions/df602c9c-7aa0-407d-a6fb-eb20c8bd1192/resourceGroups/apptest/providers/Microsoft.Storage/storageAccounts/myteststorage",
"eventHubAuthorizationRuleID": "/subscriptions/1a66ce04-b633-4a0b-b2bc-a912ec8986a6/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/authorizationrules/myrule",
"eventHubName": "myeventhub",
"marketplacePartnerId": "/subscriptions/abcdeabc-1234-1234-ab12-123a1234567a/resourceGroups/test-rg/providers/Microsoft.Datadog/monitors/mydatadog",
"workspaceId": "/subscriptions/4b9e8510-67ab-4e9a-95a9-e2f1e570ea9c/resourceGroups/insights integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
"logs": [
{
"category": "ConnectionEvents",
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
}
]
}
}
使用 Azure CLI 啟用連線記錄
使用 az monitor diagnostic-settings create
命令,透過 Azure CLI 建立診斷設定。 如需命令與參數說明的詳細資訊,請參閱建立診斷設定,將平台記錄與計量傳送至不同的目的地。 此範例示範如何使用 Azure CLI,將資料串流至四個不同的端點:
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
連線記錄的內容
記錄類別 ConnectionEvents
會顯示這些欄位和屬性。 在 Azure 監視器中,系統會將記錄收集在資料表 REDConnectionEvents
中的資源提供者名稱 MICROSOFT.CACHE
下。
Azure 儲存體欄位或屬性 | Azure 監視器記錄屬性 | 描述 |
---|---|---|
time |
TimeGenerated |
擷取事件記錄檔時的時間戳記 (UTC)。 |
location |
Location |
存取 Azure 受控 Redis 實例的位置(區域)。 |
category |
n/a | 可用的記錄類別:ConnectionEvents 。 |
resourceId |
_ResourceId |
已啟用記錄的 Azure 受控 Redis 資源。 |
operationName |
OperationName |
記錄檔記錄的相關 Redis 作業。 |
properties |
n/a | 此欄位的內容說明於下列資料列中。 |
eventEpochTime |
EventEpochTime |
事件在 UTC 發生時,UNIX 時間戳記 (自 1970 年 1 月 1 日起的秒數)。 可以使用記錄分析工作區中的 unixtime_seconds_todatetime 函式,將時間戳記轉換成日期時間格式。 |
clientIP |
ClientIP |
Redis 用戶端 IP 位址。 如果使用的是 Azure 儲存體,IP 位址會根據快取類型,採用 IPv4 或私人連結 IPv6 格式。 如果使用的是 Log Analytics,因為提供的是個別的 IPv6 欄位,結果一律會採用 IPv4。 |
n/a | PrivateLinkIPv6 |
Redis 用戶端私人連結 IPv6 位址 (只有在同時使用 Private Link 和記錄分析時才會發出)。 |
id |
ConnectionId |
Redis 指派的唯一連線識別碼。 |
eventType |
EventType |
連線事件的類型 (new_conn、auth 或close_conn)。 |
eventStatus |
EventStatus |
驗證要求的結果作為狀態代碼 (僅適用於驗證事件)。 |
注意
如果使用私人連結,則只會記錄 IPv6 位址 (除非您將資料串流處理至記錄分析)。 您可以查看 IPv6 位址中的最後四個位元組資料,將 IPv6 位址轉換成對等的 IPv4 位址。 例如,在私人連結 IPv6 位址 "fd40:8913:31:6810:6c31:200:a01:104" 中,十六進位的最後四個位元組是 "0a"、"01"、"01" 和 "04"。 (請注意,每個冒號之後的前置零都會遭到省略。)這些對應到十進位中的 "10"、"1"、"1" 和 "4",即 IPv4 位址 "10.1.1.4"。
範例儲存體帳戶記錄
如果您將記錄傳送至儲存體帳戶,連線事件的記錄如下所示:
{
"time": "2023-01-24T10:00:02.3680050Z",
"resourceId": "/SUBSCRIPTIONS/4A1C78C6-5CB1-422C-A34E-0DF7FCB9BD0B/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/4A1C78C6-5CB1-422C-A34E-0DF7FCB9BD0B/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/4A1C78C6-5CB1-422C-A34E-0DF7FCB9BD0B/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 入口網站、CLI 或 PowerShell 建立診斷設定的詳細資訊,請參閱建立診斷設定以收集 Azure 中的平台記錄和計量一文。