Partager via


Surveiller les données d’Azure Managed Redis à l’aide de paramètres de diagnostic

Les paramètres de diagnostic dans Azure sont utilisés pour collecter les journaux des ressources. Une ressource Azure émet des journaux de ressources et fournit des données riches et fréquentes sur le fonctionnement de cette ressource. Ces journaux sont capturés par requête et sont également appelés journaux de plan de données. Consultez Paramètres de diagnostic dans Azure Monitor pour obtenir une vue d’ensemble recommandée des fonctionnalités dans Azure. Le contenu de ces journaux d’activité varie en fonction du type de ressource. Dans Azure Managed Redis, deux options sont disponibles pour journaliser :

  • Métriques de cache (c’est-à-dire « AllMetrics ») utilisées pour journaliser les métriques d’Azure Monitor
  • Les journaux de connexion consignent les connexions au cache à des fins de sécurité et de diagnostic.

Métriques du cache

Azure Managed Redis émet de nombreuses métriques, telles que la Charge du serveur et les Connexions par seconde, qui sont utiles pour journaliser. La sélection de l’option AllMetrics permet de consigner ces métriques de cache et d’autres. Vous pouvez configurer la durée de conservation des métriques. Rendez-vous ici pour obtenir un exemple d’exportation de métriques de cache vers un compte de stockage.

Journaux de connexion

Azure Managed Redis utilise les paramètres de diagnostic Azure pour consigner des informations sur les connexions clientes à votre cache. La journalisation et l’analyse de ce paramètre de diagnostic vous permettent de comprendre qui se connecte à vos caches et fournissent le timestamp de ces connexions. Les données de journal peuvent être utilisées pour identifier l’étendue d’une violation de sécurité et pour effectuer un audit de sécurité.

Azure Managed Redis utilise la fonctionnalité d’audit des événements de connexion intégrée à la pile Redis Enterprise. Les événements de connexion d’audit permettent de journaliser chaque événement de connexion, de déconnexion et d’authentification, y compris les événements d’authentification ayant échoué.

Important

La journalisation dans Azure Managed Redis se concentre sur chaque événement de connexion. Les logs sont enregistrés uniquement lorsque l’événement réel se produit pour la première fois.

Prérequis/limitations de la journalisation des connexions

  • Lorsque vous utilisez la stratégie de cluster OSS, les journaux sont émis à partir de chaque nœud de données. Quand vous utilisez la stratégie de cluster d’entreprise, seul le nœud utilisé comme proxy émet des logs. Les deux versions couvrent toujours toutes les connexions au cache. Il s’agit simplement d’une différence architecturale.
  • La perte de données (c’est-à-dire l’absence d’un événement de connexion) est rare, mais possible. La perte de données est généralement due à des problèmes réseau.
  • Les journaux de déconnexion ne sont pas encore complètement stables et les événements peuvent être omis.
  • Étant donné que les journaux de connexion sur Azure Managed Redis sont basés sur des événements, faites attention à vos stratégies de rétention. Par exemple, si la conservation des données est définie sur 10 jours et qu’un événement de connexion s’est produit il y a 15 jours, cette connexion peut toujours exister, mais le journal de cette connexion n’est pas conservé.
  • Si vous utilisez la géoréplication active,la journalisation doit être configurée individuellement pour chaque instance de cache dans le groupe de géoréplication.
  • Tous les paramètres de diagnostic peuvent prendre jusqu’à 90 minutes pour commencer à circuler vers votre destination sélectionnée.
  • L’activation des journaux de connexion peut entraîner une petite dégradation des performances sur l’instance Redis.

Remarque

Il est toujours possible d’utiliser les commandes INFO ou CLIENT LIST pour vérifier qui est connecté à une instance de cache à la demande.

Important

Lors de la sélection des journaux, vous pouvez choisir soit la catégorie spécifique, soit les groupes de catégories, qui sont des regroupements prédéfinis de journaux à travers les services Azure. Lorsque vous utilisez des groupes de catégories, vous ne pouvez plus configurer les paramètres de rétention. Si vous devez déterminer la durée de rétention de vos journaux de connexion, sélectionnez plutôt l’élément dans la section Catégories.

Destinations des journaux

Vous pouvez activer les paramètres de diagnostic pour les instances Azure Managed Redis et envoyer les journaux des ressources aux destinations suivantes :

  • Espace de travail Log Analytics : Il n’est pas obligatoire que l’espace de travail réside dans la même région que la ressource supervisée.
  • Compte de stockage : Il doit se trouver dans la même région que le cache. Toutefois, les comptes de stockage Premium ne sont pas pris en charge en tant que destination.
  • Event Hub : Les paramètres de diagnostic ne peuvent pas accéder aux ressources de l’Event Hub lorsque les réseaux virtuels sont activés. Activez le paramètre Autoriser les services Microsoft approuvés à contourner ce pare-feu ? dans les Event Hubs pour accorder l’accès aux ressources de votre Event Hub. L’Event Hub doit se trouver dans la même région que le cache.
  • Solution partenaire : une liste des solutions de journalisation partenaires potentielles est disponible ici

Pour plus d’informations sur les exigences de diagnostic, consultez Paramètres de diagnostic.

Lorsque vous envoyez des journaux de diagnostic vers l’une ou l’autre destination, les tarifs de données normaux pour l’utilisation du compte de stockage et de l’Event Hub vous sont facturés. Vous êtes facturé sous Azure Monitor, et non sous Azure Managed Redis. Lorsque vous envoyez des journaux à Log Analytics, seule l’ingestion des données par Log Analytics vous est facturée.

Pour plus d’informations, consultez Tarification Azure Monitor.

Activer la journalisation des connexions à l’aide du portail Azure

  1. Connectez-vous au portail Azure.

  2. Accédez à votre compte Azure Managed Redis. Ouvrez le volet Paramètres de diagnostic – Audit sous la section Supervision à gauche. Sélectionnez ensuite Ajouter un paramètre de diagnostic. Capture d’écran des paramètres de diagnostic – Audit sélectionné dans le menu Ressource.

  3. Dans le volet Paramètre de diagnostic – Audit, sélectionnez Événements de connexion dans Catégories.

    Pour plus d’informations sur les données journalisées, consultez Contenu des journaux de connexion ci-dessous.

  4. Après avoir sélectionné les Événements de connexion, envoyez vos journaux à votre destination préférée. Sélectionnez les informations dans le volet de travail. Capture d’écran montrant l’enregistrement des événements de connexion dans le volet de travail.

Activer la journalisation des connexions à l’aide de l’API REST

Utilisez l’API REST Azure Monitor pour créer un paramètre de diagnostic via la console interactive. Pour plus d’informations, voir Créer ou mettre à jour.

Requête

PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview

headers

Paramètres/en-têtes Valeur/description
name Nom de votre paramètre de diagnostic
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

Corps

{ 
    "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
          }
        }
      ]
    }
}

Activer la journalisation des connexions à l’aide d’Azure CLI

Pour créer un paramètre de diagnostic avec Azure CLI, utilisez la commande az monitor diagnostic-settings create. Pour plus d’informations sur la commande et la description des paramètres, consultez Créer des paramètres de diagnostic pour envoyer des journaux et des métriques de plateforme à différentes destinations. Cet exemple montre comment utiliser Azure CLI pour diffuser des données vers quatre points de terminaison différents :

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

Contenu des journaux de connexion

Ces champs et propriétés s’affichent dans la catégorie de log ConnectionEvents. Dans Azure Monitor, les journaux d’activité sont collectés dans la table REDConnectionEvents sous le nom du fournisseur de ressources MICROSOFT.CACHE.

Propriété ou champ du stockage Azure Propriété des journaux Azure Monitor Descriptif
time TimeGenerated Horodatage (UTC) lors de la capture du journal des événements.
location Location Emplacement (région) dans lequel l’accès à l’instance Azure Managed Redis s’est produit.
category n/a Catégories journal disponibles : ConnectionEvents.
resourceId _ResourceId Ressource Azure Managed Redis pour laquelle les journaux sont activés.
operationName OperationName Opération Redis associée à l’enregistrement de logs.
properties n/a Le contenu de ce champ est décrit dans les lignes suivantes.
eventEpochTime EventEpochTime Horodatage UNIX (nombre de secondes depuis le 1er janvier 1970) lorsque l’événement s’est produit en UTC. L’horodatage peut être converti au format datetime à l’aide de la fonction unixtime_seconds_todatetime dans l’espace de travail Log Analytics.
clientIP ClientIP Adresse IP du client Redis. Si vous utilisez le stockage Azure, l’adresse IP est au format IPv4 ou IPv6 de liaison privée en fonction du type de cache. Si vous utilisez Log Analytics, le résultat est toujours en IPv4, car un champ IPv6 distinct est fourni.
n/a PrivateLinkIPv6 Adresse IPv6 de liaison privée du client Redis (émise uniquement si vous utilisez Private Link et Log Analytics).
id ConnectionId ID de connexion unique attribué par Redis.
eventType EventType Type d’événement de connexion (new_conn, auth ou close_conn).
eventStatus EventStatus Résultats d’une requête d’authentification en tant que code d’état (applicable uniquement pour l’événement d’authentification).

Remarque

Si une liaison privée est utilisée, seule une adresse IPv6 est enregistrée (sauf si vous diffusez les données vers Log Analytics). Vous pouvez convertir l’adresse IPv6 en adresse IPv4 équivalente en examinant les quatre derniers octets de données dans l’adresse IPv6. Par exemple, dans l’adresse fd40:8913:31:6810:6c31:200:a01:104 IPv6 de liaison privée, les quatre derniers octets en hexadécimal sont 0a, 01et 0104. (Les zéros non significatifs sont omis après chaque signe deux-points.) Ces octets correspondent à 10, 1, 1et 4 en décimal, nous donnant l’adresse 10.1.1.4IPv4 .

Exemple de journal de compte de stockage

Si vous envoyez vos journaux à un compte de stockage, un journal d’un événement de connexion ressemble à ceci :

    {
        "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"
        }
    }

Et le journal d’un événement d’authentification ressemble à ceci :

 {
        "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
        }
    }

Et le journal d’un événement de déconnexion ressemble à ceci :

    {
        "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"
        }
    }

Étapes suivantes

Pour plus d’informations sur la création d’un paramètre de diagnostic à l’aide du portail Azure, de l’interface CLI ou de PowerShell, consultez l’article Créer un paramètre de diagnostic pour collecter des journaux et métriques de plateforme dans Azure.