Freigeben über


Ü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

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

  1. Melden Sie sich beim Azure-Portal an.

  2. 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. Screenshot: Diagnoseeinstellungen mit der ausgewählten Option „Überwachung“ im Menü „Ressource“.

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

  4. Nachdem Sie Verbindungsereignisse ausgewählt haben, senden Sie Ihre Protokolle an Ihr bevorzugtes Ziel. Wählen Sie die Informationen im Arbeitsbereich aus. Screenshot: Aktivierte Option „Verbindungsereignisse“ im Arbeitsbereich.

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.