Freigeben über


Überwachen von Azure Cache for Redis-Daten 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 Cache for Redis stehen zwei Optionen für die Protokollierung zur Verfügung:

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.
  • 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. 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.

Weitere Preisinformationen finden Sie unter Azure Monitor – Preise.

Aktivieren der Verbindungsprotokollierung im Azure-Portal

  1. Melden Sie sich beim Azure-Portal an.

  2. 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.

    Select diagnostics

  3. Wählen Sie im Bereich Diagnoseeinstellungen die Option ConnectedClientList aus Kategorien aus.

    Weitere Informationen zu den protokollierten Daten finden Sie unter Inhalt der Verbindungsprotokolle.

  4. Nachdem Sie ConnectedClientList ausgewählt haben, senden Sie Ihre Protokolle an Ihr bevorzugtes Ziel. Wählen Sie die Informationen im Arbeitsbereich aus.

    Select enable resource-specific

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/Redis/{CACHE_NAME}
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/appteststorage1",
      "eventHubAuthorizationRuleId": "/subscriptions/1a66ce04-b633-4a0b-b2bc-a912ec8986a6/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/eventhubs/myeventhub/authorizationrules/myrule",
      "eventHubName": "myeventhub",
      "workspaceId": "/subscriptions/4b9e8510-67ab-4e9a-95a9-e2f1e570ea9c/resourceGroups/insights-integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
      "logs": [
        {
          "category": "ConnectedClientList",
          "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/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}/proviers/Microsoft.Datadog/monitors/mydatadog

Inhalt der Verbindungsprotokolle

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.
category Verfügbare Protokoll-Kategorien: ConnectedClientList.
resourceId _ResourceId 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.
tenant CacheName Der Name Ihres Azure-Caches für die Redis-Instanz.
roleInstance RoleInstance Die Rolleninstanz, die die Clientliste protokolliert hat.
connectedClients.ip ClientIp Die IP-Adresse des Redis-Clients.
connectedClients.privateLinkIpv6 PrivateLinkIpv6 Die private Link-IPv6-Adresse des Redis-Clients (falls zutreffend).
connectedClients.count ClientCount Die Anzahl der Redis-Clientverbindungen von der zugeordneten IP-Adresse.

Ein Beispiel von einem Speicherkontoprotokoll

Wenn Sie Ihre Protokolle an ein Speicherkonto senden, sieht der Inhalt der Protokolle wie hier aus.

{
    "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/E6761CE7-A7BC-442E-BBAE-950A121933B5/RESOURCEGROUPS/AZURE-CACHE/PROVIDERS/MICROSOFT.CACHE/REDIS/MYCACHE", 
    "Level": 4,
    "operationName": "Microsoft.Cache/ClientList"
}

Log-Analytics-Abfragen

Hinweis

Ein Tutorial zur Verwendung von Azure Log Analytics finden Sie unter Übersicht über Log Analytics in Azure Monitor. Denken Sie daran, dass es bis zu 90 Minuten dauern kann, bis Protokolle in Log Analtyics angezeigt werden.

Hier sind einige grundlegende Abfragen, die als Modelle verwendet werden sollten.

  • Azure Cache für Redis-Clientverbindungen pro Stunde innerhalb des angegebenen IP-Adressbereichs:
let IpRange = "10.1.1.0/24";
ACRConnectedClientList
// For particular datetime filtering, add '| where TimeGenerated between (StartTime .. EndTime)'
| where ipv4_is_in_range(ClientIp, IpRange)
| summarize ConnectionCount = sum(ClientCount) by TimeRange = bin(TimeGenerated, 1h)
  • Eindeutige Redis-Client-IP-Adressen, die mit dem Cache verbunden sind:
ACRConnectedClientList
| summarize count() by ClientIp

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.