Überwachen von Azure Cache for Redis-Daten mithilfe von Diagnoseeinstellungen
Artikel
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 Cache for Redis stehen zwei Optionen für die Protokollierung zur Verfügung:
Verbindungsprotokolle zum Protokollieren von Verbindungen mit dem Cache zu Sicherheits- und Diagnosezwecken.
Umfang der Verfügbarkeit
Tarif
Basic, Standard und Premium
Enterprise und Enterprise Flash
Cachemetriken
Ja
Ja
Verbindungsprotokolle
Ja
Ja
Cachemetriken
Azure Cache for Redis 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 Cache for 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.
Unterschiede zwischen Azure Cache for Redis-Tarifen
Die Implementierung von Verbindungsprotokollen unterscheidet sich bei den Tarifen geringfügig:
Caches der Tarife „Basic“, „Standard“ und „Premium“ fragt Clientverbindungen nach IP-Adresse ab, einschließlich der Anzahl der Verbindungen, die von jeder eindeutigen IP-Adresse stammen. Diese Protokolle sind nicht kumulativ. Sie stellen Zeitpunktmomentaufnahmen dar, die in Intervallen von 10 Sekunden erstellt wurden. Authentifizierungsereignisse (erfolgreiche und fehlgeschlagene) sowie Trennungsereignisse werden in diesen Tarifen nicht protokolliert.
Caches der Tarife „Enterprise“ und „Enterprise Flash“ verwenden die in Redis Enterprise integrierte Funktion zum Überwachen von Verbindungsereignissen. Verbindungsüberwachungsereignisse ermöglichen die Protokollierung aller Verbindungs-, Trennungs- und Authentifizierungsereignisse, einschließlich fehlgeschlagener Authentifizierungsereignisse.
Die erstellten Verbindungsprotokolle sehen in den verschiedenen Tarifen ähnlich aus, weisen jedoch einige Unterschiede auf. Die beiden Formate werden später im Artikel ausführlicher dargestellt.
Wichtig
Bei der Verbindungsprotokollierung in den Tarifen „Basic“, „Standard“ und „Premium“ werden die aktuellen Clientverbindungen im Cache abgerufen. Die gleichen Client-IP-Adressen werden immer wieder angezeigt. Die Protokollierung in den Tarifen „Enterprise“ und „Enterprise Flash“ konzentriert sich auf jedes Verbindungsereignis. Protokolle werden erst erfasst, wenn das eigentliche Ereignis zum ersten Mal auftritt.
Voraussetzungen/Einschränkungen der Verbindungsprotokollierung
Tarife „Basic“, „Standard“ und „Premium“
Da Verbindungsprotokolle in diesen Tarifen aus Point-in-Time-Momentaufnahmen bestehen, die alle 10 Sekunden erstellt werden, erfolgt keine Protokollierung von Verbindungen, die innerhalb eines 10-Sekunden-Intervalls hergestellt und wieder entfernt werden.
Authentifizierungsereignisse werden nicht protokolliert.
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 Cache-Instanz führen.
Beim Streaming von Protokollen an Azure Log Analytics wird nur der Preisplan für Analytics-Protokolle unterstützt. Weitere Informationen finden Sie unter Azure Monitor-Preise.
Enterprise- und Enterprise Flash-Tarife
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 den Enterprise-Tarifen 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 Cache-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 Cache for 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.
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. Sie werden unter Azure Monitor und nicht unter Azure Cache for Redis abgerechnet. Beim Senden von Protokollen an Log Analyticswird Ihnen nur die Log-Analytics-Datenerfassung in Rechnung gestellt.
Navigieren Sie zu Ihrem Azure Cache for Redis-Konto. Öffnen Sie den Bereich Diagnoseeinstellungen auf der linken Seite unter Überwachungsabschnitt. Wählen Sie dann Diagnoseeinstellung hinzufügen aus.
Wählen Sie im Bereich Diagnoseeinstellungen die Option ConnectedClientList aus Kategorien aus.
Nachdem Sie ConnectedClientList ausgewählt haben, senden Sie Ihre Protokolle an Ihr bevorzugtes Ziel. Wählen Sie die Informationen im Arbeitsbereich aus.
Navigieren Sie zu Ihrem Azure Cache for 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.
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
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
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:
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:
Diese Felder und Eigenschaften werden in der Protokollkategorie ConnectedClientList angezeigt. In Azure Monitor werden Protokolle in der Tabelle ACRConnectedClientList unter dem Ressourcenanbieternamen von MICROSOFT.CACHE gesammelt.
Azure Storage-Feld oder -Eigenschaft
Eigenschaft von Azure Monitor-Protokolle
BESCHREIBUNG
time
TimeGenerated
Der Zeitstempel für den Zeitpunkt, zu dem das Protokoll im UTC generiert wurde
location
Location
Der Speicherort (Region), in dem auf Azure Cache für die Redis-Instanz zugegriffen wurde.
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 Speicherort (Region), in dem auf Azure Cache für die Redis-Instanz zugegriffen wurde.
Der Azure-Cache für die Redis-Ressource, für welche 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: