Surveiller les données d’Azure Cache pour 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 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 Cache pour 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.

Étendue de la disponibilité

Niveau De base, Standard et Premium Entreprise et Enterprise Flash
Métriques du cache Oui Oui
Journaux de connexion Oui Oui

Métriques du cache

Azure Cache pour 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 Cache pour 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é.

Différences entre les niveaux Azure Cache pour Redis

L’implémentation des journaux de connexion est légèrement différente d’un niveau à l’autre :

  • Les caches de niveau De base, Standard et Premium interrogent les connexions clientes par adresse IP, y compris le nombre de connexions provenant de chaque adresse IP unique. Les journaux ne sont pas cumulatifs. Ils représentent des instantanés ponctuels pris à intervalles de dix secondes. Les événements d’authentification (réussite et échec) et de déconnexion ne sont pas enregistrés dans ces niveaux.
  • Les caches de niveau Enterprise et Enterprise Flash utilisent la fonctionnalité d’événements de connexion d’audit intégrée à 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é.

Les journaux de connexion produits se ressemblent d’un niveau à l’autre, mais présentent certaines différences. Les deux formats sont présentés plus en détail plus loin dans l’article.

Important

La journalisation des connexions aux niveaux De base, Standard et Premium interroge les connexions clientes actuelles dans le cache. Les mêmes adresses IP clientes apparaissent encore et encore. La journalisation dans les niveaux Enterprise et Enterprise Flash est axée 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

Niveaux De base, Standard et Premium

  • Étant donné que les journaux de connexion de ces niveaux se composent d’instantanés à un point dans le temps pris toutes les 10 secondes, les connexions établies et supprimées entre des intervalles de 10 secondes ne sont pas journalisées.
  • Les événements d’authentification ne sont pas consignés.
  • 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 de cache.
  • Seul le plan tarifaire Journaux Analytics est pris en charge lors de la diffusion en continu des journaux vers Azure Log Analytics. Pour plus d’informations, consultez Tarification Azure Monitor.

Niveaux Entreprise et Enterprise Flash

  • 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 des niveaux Enterprise 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égradation des performances de l’instance de cache.

Notes

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 Cache pour 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 Cache pour 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 Cache pour Redis. Ouvrez le volet Paramètres de diagnostic sous la section Supervision à gauche. Sélectionnez ensuite Ajouter un paramètre de diagnostic.

    Select diagnostics

  3. Dans le volet Paramètres de diagnostic, sélectionnez ConnectedClientList 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é ConnectedClientList, envoyez vos journaux à votre destination préférée. Sélectionnez les informations dans le volet de travail.

    Select enable resource-specific

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/Redis/{CACHE_NAME}
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/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
          }
        }
      ]
    }
}

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/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

Contenu des journaux de connexion

Ces champs et propriétés s’affichent dans la catégorie journal ConnectedClientList. Dans Azure Monitor, les journaux d’activité sont collectés dans la table ACRConnectedClientList 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 Timestamp de la date à laquelle le journal a été généré, en UTC.
location Location Emplacement (région) dans lequel l’accès à l’instance Azure Cache pour Redis a été effectué.
category n/a Catégories journal disponibles : ConnectedClientList.
resourceId _ResourceId Ressource Azure Cache pour 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.
tenant CacheName Nom de l’instance Azure Cache pour Redis.
roleInstance RoleInstance Instance de rôle qui a consigné la liste des clients.
connectedClients.ip ClientIp Adresse IP du client Redis.
connectedClients.privateLinkIpv6 PrivateLinkIpv6 Adresse IPv6 de liaison privée du client Redis (le cas échéant).
connectedClients.count ClientCount Nombre de connexions au client Redis à partir de l’adresse IP associée.

Exemple de journal de compte de stockage

Si vous envoyez vos journaux à un compte de stockage, le contenu des journaux ressemble à ce qui suit.

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

Requêtes Log Analytics

Notes

Pour obtenir un tutoriel sur l’utilisation d’Azure Log Analytics, consultez Vue d’ensemble de Log Analytics dans Azure Monitor. N’oubliez pas que l’affichage des journaux dans Log Analtyics peut prendre jusqu’à 90 minutes.

Voici quelques requêtes de base à utiliser comme modèles.

  • Connexions au client Azure Cache pour Redis par heure dans la plage d’adresses IP spécifiée :
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)
  • Adresses IP uniques des clients Redis qui se sont connectées au cache :
ACRConnectedClientList
| summarize count() by ClientIp

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