Überwachen von Azure Managed Redis-Daten (Vorschau) mithilfe von Diagnoseeinstellungen
Diagnoseeinstellungen in Azure werden zum Sammeln von Ressourcenprotokollen verwendet. Eine Azure-Ressource gibt Ressourcenprotokolle aus und stellt umfangreiche, in kurzen Abständen erfasste Betriebsdaten der Ressource bereit. Diese Protokolle werden pro Anforderung erfasst und auch als „Datenebenenprotokolle“ bezeichnet. Eine empfohlene Übersicht über die Funktionen in Azure finden Sie unter Diagnoseeinstellungen in Azure Monitor. Der Inhalt dieser Protokolle variiert je nach Ressourcentyp. In Azure Managed Redis (Vorschau) stehen zwei Optionen für die Protokollierung zur Verfügung:
- Cachemetriken (also „AllMetrics“) zum Protokollieren von Metriken aus Azure Monitor
- Verbindungsprotokolle zum Protokollieren von Verbindungen mit dem Cache zu Sicherheits- und Diagnosezwecken.
Cachemetriken
Azure Managed Redis (Vorschau) gibt viele Metriken wie Serverauslastung und Verbindungen pro Sekunde aus, deren Protokollierung nützlich ist. Wenn Sie die Option AllMetrics auswählen, können diese und andere Cachemetriken protokolliert werden. Sie können konfigurieren, wie lange die Metriken aufbewahrt werden. Ein Beispiel für das Exportieren von Cachemetriken in ein Speicherkonto finden Sie hier.
Verbindungsprotokolle
Azure Managed Redis verwendet Azure-Diagnoseeinstellungen, um Informationen zu Clientverbindungen mit Ihrem Cache zu protokollieren. Dank der Protokollierung und anschließenden Analyse dieser Diagnoseeinstellung können Sie besser verstehen, wer eine Verbindung mit Ihren Caches herstellt und welchen Zeitstempel diese Verbindungen aufweisen. Mit diesen Protokoll-Daten können Sie das Ausmaß einer Sicherheitsverletzung ermitteln und Sicherheitsüberprüfungen durchführen.
Azure Managed Redis verwendet die Funktion für Überwachungsverbindungsereignisse, die in den Redis Enterprise-Stapel integriert ist. Verbindungsüberwachungsereignisse ermöglichen die Protokollierung aller Verbindungs-, Trennungs- und Authentifizierungsereignisse, einschließlich fehlgeschlagener Authentifizierungsereignisse.
Wichtig
Die Protokollierung in Azure Managed Redis konzentriert sich auf jedes Verbindungsereignis. Protokolle werden erst erfasst, wenn das eigentliche Ereignis zum ersten Mal auftritt.
Voraussetzungen/Einschränkungen der Verbindungsprotokollierung
- Wenn Sie die OSS-Clusterrichtlinie verwenden, werden Protokolle von jedem Datenknoten ausgegeben. Wenn Sie die Unternehmensclusterrichtlinie verwenden, gibt nur der Knoten, der als Proxy verwendet wird, Protokolle aus. Beide Versionen decken jedoch alle Verbindungen mit dem Cache ab. Es handelt sich nur um einen Unterschied in der Architektur.
- Datenverluste (d. h. fehlende Verbindungsereignisse) sind selten, aber möglich. Datenverluste werden in der Regel durch Netzwerkprobleme verursacht.
- Die Trennungsprotokolle sind noch nicht vollständig stabil, und Ereignisse werden möglicherweise übersehen.
- Da Verbindungsprotokolle in Azure Managed Redis ereignisbasiert sind, achten Sie auf Ihre Aufbewahrungsrichtlinien. Wenn die Aufbewahrung beispielsweise auf 10 Tage festgelegt ist und vor 15 Tagen ein Verbindungsereignis aufgetreten ist, ist diese Verbindung möglicherweise noch vorhanden, aber das Protokoll für diese Verbindung wird nicht beibehalten.
- Bei Verwendung der aktiven Georeplikation muss die Protokollierung für jede Cache-Instanz in der Georeplikationsgruppe einzeln konfiguriert werden.
- Es kann bis zu 90 Minuten dauern, bis alle Diagnoseeinstellungen zum ausgewählten Ziel gesendet werden.
- Das Aktivieren von Verbindungsprotokollen kann zu einer geringen Leistungsbeeinträchtigung der Redis-Instanz führen.
Hinweis
Es ist immer möglich, die Befehle INFO oder CLIENT LIST zu verwenden, um bei Bedarf zu überprüfen, wer mit einer Cache-Instanz verbunden ist.
Wichtig
Beim Auswählen von Protokollen können Sie entweder die spezifische Kategorie oder Kategoriegruppen auswählen, bei denen es sich um vordefinierte Gruppierungen von Protokollen in Azure-Diensten handelt. Bei Verwendung von Kategoriegruppenkönnen Sie die Aufbewahrungseinstellungen nicht mehr konfigurieren. Wenn Sie die Aufbewahrungsdauer für Ihre Verbindungsprotokolle bestimmen müssen, wählen Sie stattdessen das Element im Abschnitt Kategorien aus.
Protokollziele
Sie können die Diagnoseeinstellungen für Azure Managed Redis-Instanzen aktivieren und Ressourcenprotokolle an die folgenden Ziele senden:
- Der Log-Analytics-Arbeitsbereich muss sich nicht in derselben Region wie die überwachte Ressource befinden.
- Speicherkonto: Muss sich in derselben Region wie der Cache befinden. Premium-Speicherkonten werden jedoch nicht als Ziel unterstützt.
- Event Hub: Diagnoseeinstellungen können nicht auf Event Hub-Ressourcen zugreifen, wenn virtuelle Netzwerke aktiviert sind. Aktivieren Sie die Einstellung Vertrauenswürdigen Microsoft-Diensten die Umgehung dieser Firewall erlauben? in Event Hub, um Zugriff auf Ihre Event Hub-Ressourcen zu gewähren. Der Event Hub muss sich in derselben Region wie der Cache befinden.
- Partnerlösung: Eine Liste der potenziellen Partnerprotokollierungslösungen finden Sie hier.
Weitere Informationen zu Diagnoseanforderungen finden Sie unter Diagnoseeinstellungen.
Wenn Sie Diagnoseprotokolle an eines der beiden Ziele senden, werden Ihnen die normalen Datentarife für die Nutzung von Speicherkonten und Event Hub berechnet. Die Abrechnung erfolgt unter Azure Monitor und nicht unter Azure Managed Redis. Beim Senden von Protokollen an Log Analyticswird Ihnen nur die Log-Analytics-Datenerfassung in Rechnung gestellt.
Weitere Preisinformationen finden Sie unter Azure Monitor – Preise.
Aktivieren der Verbindungsprotokollierung im Azure-Portal
Melden Sie sich beim Azure-Portal an.
Navigieren Sie zu Ihrem Azure Managed Redis-Konto. Öffnen Sie den Bereich Diagnoseeinstellungen – Überwachung im Abschnitt Überwachung auf der linken Seite. Wählen Sie dann Diagnoseeinstellung hinzufügen aus.
Wählen Sie im Bereich Diagnoseeinstellung – Überwachung unter Kategorien die Option Verbindungsereignisse aus.
Weitere Informationen zu den protokollierten Daten finden Sie unter Inhalt der Verbindungsprotokolle.
Nachdem Sie Verbindungsereignisse ausgewählt haben, senden Sie Ihre Protokolle an Ihr bevorzugtes Ziel. Wählen Sie die Informationen im Arbeitsbereich aus.
Aktivieren der Verbindungsprotokollierung mit der REST-API
Verwenden Sie die Azure Monitor-REST-API, um eine Diagnoseeinstellung über die interaktive Konsole zu erstellen. Weitere Informationen finden Sie unter Account Filters – Create Or Update (Erstellen oder Aktualisieren von Kontofiltern).
Anforderung
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
Header
Parameter/Header | Wert/Beschreibung |
---|---|
name |
Der Name Ihrer Diagnoseeinstellung. |
resourceUri |
subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.Cache/RedisEnterprise/{CACHE_NAME}/databases/default |
api-version |
2017-05-01-preview |
Content-Type |
Anwendung/json |
Text
{
"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
}
}
]
}
}
Aktivieren der Verbindungsprotokollierung mit der Azure CLI
Verwenden Sie den Befehl az monitor diagnostic-settings create
, um eine Diagnoseeinstellung mit der Azure CLI zu erstellen. Weitere Informationen zu Befehls- und Parameterbeschreibungen finden Sie unter Erstellen von Diagnoseeinstellungen zum Senden von Plattformprotokollen und -Metriken an verschiedene Ziele. In diesem Beispiel wird gezeigt, wie Sie die Azure CLI verwenden, um Daten an vier verschiedene Endpunkte zu streamen:
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
Inhalt der Verbindungsprotokolle
Diese Felder und Eigenschaften werden in der Protokollkategorie ConnectionEvents
angezeigt. In Azure Monitor werden Protokolle in der Tabelle REDConnectionEvents
unter dem Ressourcenanbieternamen von MICROSOFT.CACHE
gesammelt.
Azure Storage-Feld oder -Eigenschaft | Eigenschaft von Azure Monitor-Protokolle | BESCHREIBUNG |
---|---|---|
time |
TimeGenerated |
Der Zeitstempel (UTC), unter dem das Ereignisprotokoll erfasst wurde. |
location |
Location |
Der Standort (Region), an dem auf die Azure Managed Redis-Instanz zugegriffen wurde. |
category |
Nicht zutreffend | Verfügbare Protokoll-Kategorien: ConnectionEvents . |
resourceId |
_ResourceId |
Die Azure Managed Redis-Ressource, für die Protokolle aktiviert sind. |
operationName |
OperationName |
Der Redis-Vorgang, der dem Protokolldatensatz zugeordnet ist. |
properties |
– | Die Inhalte dieser Felder werden in den folgenden Zeilen beschrieben. |
eventEpochTime |
EventEpochTime |
Der UNIX-Zeitstempel (Anzahl der Sekunden seit dem 1. Januar 1970), wenn das Ereignis in UTC aufgetreten ist. Der Zeitstempel kann mithilfe der Funktion „unixtime_seconds_todatetime“ im Log Analytics-Arbeitsbereich in das datetime-Format konvertiert werden. |
clientIP |
ClientIP |
Die IP-Adresse des Redis-Clients. Bei Verwendung von Azure Storage wird die IP-Adresse basierend auf dem Cachetyp im IPv4- oder Private Link-IPv6-Format angegeben. Bei Verwendung von Log Analytics befindet sich das Ergebnis immer im IPv4-Format, da ein separates IPv6-Feld bereitgestellt wird. |
– | PrivateLinkIPv6 |
Die Private Link-IPv6-Adresse des Redis-Clients (wird nur ausgegeben, wenn sowohl Private Link als auch Log Analytics verwendet werden). |
id |
ConnectionId |
Eindeutige Verbindungs-ID, die von Redis zugewiesen wird. |
eventType |
EventType |
Typ des Verbindungsereignisses („new_conn“, „auth“ oder „close_conn“). |
eventStatus |
EventStatus |
Ergebnisse einer Authentifizierungsanforderung als Statuscode (gilt nur für Authentifizierungsereignisse). |
Hinweis
Bei Verwendung von Private Link wird nur eine IPv6-Adresse protokolliert (es sei denn, Sie streamen die Daten an Log Analytics). Sie können die IPv6-Adresse in die entsprechende IPv4-Adresse konvertieren, indem Sie die letzten vier Bytes der Daten in der IPv6-Adresse betrachten. Die letzten vier Bytes in der Private Link-IPv6-Adresse „fd40:8913:31:6810:6c31:200:a01:104“ beispielsweise sind im Hexadezimalformat „0a“, „01“, „01“ und „04“. (Beachten Sie, dass führende Nullen nach jedem Doppelpunkt weggelassen werden.) Diese entsprechen „10“, „1“, „1“ und „4“ im Dezimalformat, wodurch sich die IPv4-Adresse „10.1.1.4“ ergibt.
Ein Beispiel von einem Speicherkontoprotokoll
Wenn Sie Ihre Protokolle an ein Speicherkonto senden, sieht ein Protokoll für ein Verbindungsereignis wie folgt aus:
{
"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"
}
}
Und das Protokoll für ein Authentifizierungsereignis sieht wie folgt aus:
{
"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
}
}
Und das Protokoll für ein Trennungsereignis sieht wie folgt aus:
{
"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"
}
}
Nächste Schritte
Ausführliche Informationen zum Erstellen einer Diagnoseeinstellung über das Azure-Portal, die Befehlszeilenschnittstelle oder PowerShell finden Sie unter Erstellen einer Diagnoseeinstellung zum Sammeln von Plattformprotokollen und Metriken in Azure.