Partager via


Surveiller les données d’Azure Managed Redis (préversion) à 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 plans 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 (préversion), deux options de journalisation sont disponibles :

  • 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 (préversion) émet de nombreuses métriques, telles que la Charge du serveur et les Connexions par seconde, qui sont utiles dans le cadre de la journalisation. 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 journaux se produisent uniquement lorsque l’événement réel s’est 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. Lorsque vous utilisez la stratégie de cluster d’entreprise, seul le nœud utilisé comme proxy émet des journaux. 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 entièrement stables et les événements peuvent être manqués.
  • É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 la destination sélectionnée.
  • L’activation des journaux de connexion peut entraîner une légère détérioration des performances de 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

Lorsque vous sélectionnez les journaux d’activité, vous pouvez choisir la catégorie ou les groupes de catégorie spécifiques, qui sont des regroupements prédéfinis de journaux d’activité sur 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 journal 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 Description
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 journal.
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).

Notes

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 IPv6 de liaison privée « fd40:8913:31:6810:6c31:200:a01:104 », les quatre derniers octets en hexadécimal sont « 0a », « 01 », « 01 » et « 04 ». (Notez que les zéros de début sont omis après chaque signe deux-points.) Ils correspondent à « 10 », « 1 », « 1 » et « 4 » en décimal, ce qui nous donne l’adresse IPv4 « 10.1.1.4 ».

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.