Configurer la surveillance, les alertes et la journalisation

Last reviewed 2023-08-08 UTC

Ce document du framework d'architecture Google Cloud vous explique comment configurer la surveillance, les alertes et la journalisation afin de pouvoir réagir au comportement de votre système. Cela inclut l'identification de métriques significatives à suivre et la création de tableaux de bord, pour faciliter la visualisation des informations relatives à vos systèmes.

Le programme de recherche de DevOps Resource and Assessment (DORA) définit la surveillance comme suit :

La surveillance consiste à collecter, analyser et utiliser des informations pour suivre les applications et l'infrastructure afin d'orienter les décisions commerciales. Fonction essentielle, la surveillance vous donne un aperçu de vos systèmes et de vos tâches.

Avec la surveillance, les propriétaires de services peuvent :

  • Prendre des décisions avisées lorsque des modifications apportées au service affectent les performances
  • Appliquer une approche scientifique à la gestion des incidents
  • Mesurer l'alignement de votre service sur les objectifs commerciaux

Une fois la surveillance, la journalisation et les alertes en place, vous pouvez effectuer les opérations suivantes :

  • Analyser les tendances à long terme
  • Comparer vos tests au fil du temps
  • Définir des alertes sur les métriques essentielles
  • Créer des tableaux de bord en temps réel pertinents
  • Effectuer des analyses rétrospectives
  • Surveiller les métriques propres à l'entreprise et les métriques d'état du système
    • Les métriques propres à l'entreprise vous aident à comprendre dans quelle mesure vos systèmes répondent aux besoins de votre activité. Par exemple, utilisez les métriques pour surveiller les éléments suivants :
      • Le coût d'une application pour servir un utilisateur
      • La variation du volume de trafic sur le site après une refonte
      • Le temps nécessaire à un client pour acheter un produit sur votre site
    • Les métriques d'état du système vous aident à déterminer si vos systèmes fonctionnent correctement et à des niveaux de performances acceptables.

Suivez les quatre signaux clés suivants pour surveiller votre système :

  • Latence. Le temps nécessaire au traitement d'une requête.
  • Trafic. La quantité de demandes sur votre système.
  • Erreurs. Le taux de requêtes ayant échoué. L'échec peut être explicite (par exemple, HTTP 500s), implicite (par exemple, une réponse HTTP 200 associée au mauvais contenu) ou lié à une règle (par exemple, si vous vous engagez sur des temps de réponse d'une seconde, toute requête supérieure à une seconde est une erreur).
  • Saturation. Le niveau d'occupation de votre service. La saturation est une mesure de la fraction système qui met l'accent sur les ressources les plus limitées (c'est-à-dire, dans un système à mémoire limitée, qui affiche la mémoire ; dans un système avec des E/S limitées, qui affiche les E/S).

Créer un plan de surveillance

Créez un plan de surveillance conforme à la mission de votre organisation et à sa stratégie d'exploitation. Incluez une planification de surveillance et d'observabilité dans le processus de développement des applications. L'inclusion d'un plan de surveillance dès le début du développement des applications peut permettre à une organisation d'atteindre l'excellence opérationnelle.

Incluez les informations suivantes dans votre plan de surveillance :

  • Incluez tous vos systèmes, y compris les ressources sur site et les ressources cloud.
  • Incluez la surveillance de vos coûts liés au cloud pour vous assurer que les événements de scaling n'entraînent pas le dépassement de vos seuils budgétaires.
  • Établissez différentes stratégies de surveillance pour mesurer les performances de l'infrastructure, l'expérience utilisateur et les indicateurs clés de performance (KPI) commerciaux. Par exemple, les seuils statiques peuvent fonctionner correctement pour mesurer les performances de l'infrastructure, mais ils ne reflètent pas vraiment l'expérience utilisateur.

Mettez à jour le plan au fur et à mesure de l'évolution de vos stratégies de surveillance. Itérez à plusieurs reprises sur ce plan pour améliorer l'état des systèmes.

Définir des métriques qui mesurent tous les aspects de votre organisation

Définissez les métriques nécessaires pour mesurer le comportement de votre déploiement. Pour ce faire :

  • Définissez vos objectifs commerciaux.
  • Identifiez les métriques et les KPI qui peuvent vous fournir des informations quantifiables pour mesurer les performances. Assurez-vous que vos définitions de métriques prennent bien en compte tous les aspects de votre organisation, des besoins métier (y compris les coûts liés au cloud) aux composants techniques.
  • Utilisez ces métriques pour créer des indicateurs de niveau de service (SLI pour "Service Level Indicator") pour vos applications. Pour en savoir plus, consultez la section Choisir les SLI appropriés.

Métriques courantes pour divers composants

Les métriques sont générées à tous les niveaux de votre service, de l'infrastructure et la mise en réseau à la logique métier. Exemple :

  • Métriques de l'infrastructure :
    • Statistiques sur les machines virtuelles, y compris les instances, le processeur, la mémoire, l'utilisation et les décomptes.
    • Statistiques basées sur les conteneurs, y compris l'utilisation et la capacité des clusters, l'utilisation au niveau du pod et les décomptes.
    • Statistiques réseau, y compris les entrées/sorties, la bande passante entre les composants, la latence et le débit.
    • Requêtes par seconde, telles qu'évaluées par l'équilibreur de charge
    • Nombre total de blocs de disques lus, par disque
    • Paquets envoyés via une interface réseau donnée
    • Taille du tas de mémoire pour un processus donné
    • Distribution des latences de réponse
    • Nombre de requêtes non valides rejetées par une instance de base de données
  • Métriques des applications :
    • Comportement propre aux applications, y compris les requêtes par seconde, les écritures par seconde et les messages envoyés par seconde.
  • Métriques de statistiques de services gérés :
    • RPS, débit, latence et utilisation des services gérés par Google (API ou produits tels que BigQuery, App Engine et Bigtable)
  • Métriques de statistiques de connectivité réseau :
    • Statistiques relatives aux VPN/interconnexions concernant la connexion à des systèmes sur site ou à des systèmes externes à Google Cloud.
  • SLI
    • Métriques associées à l'état général du système.

Configurer la surveillance

Configurez la surveillance pour surveiller les ressources sur site et les ressources cloud.

Choisissez une solution de surveillance qui :

  • est indépendant de la plate-forme ;
  • fournit des fonctionnalités uniformes pour la surveillance des environnements sur site, hybrides et multicloud.

L'utilisation d'une plate-forme unique pour consolider les données de surveillance provenant de différentes sources vous permet de créer des métriques uniformes et des tableaux de bord de visualisation.

Lorsque vous configurez la surveillance, automatisez les tâches autant que possible.

Surveillance avec Google Cloud

L'utilisation d'un service de surveillance comme Cloud Monitoring est plus facile que de créer un service de surveillance vous-même. Surveiller une application complexe est déjà un projet d'ingénierie conséquent en soi. Même si vous disposez d'une infrastructure pour l'instrumentation, la collecte et l'affichage de données ou encore les alertes, créer et gérer cette infrastructure est une tâche à temps plein.

Pensez à utiliser Cloud Monitoring pour obtenir une visibilité sur les performances, la disponibilité et l'état de vos applications, qu'elles soient hébergées dans votre infrastructure sur site ou dans le cloud.

Cloud Monitoring est un service géré qui fait partie de Google Cloud Observability. Vous pouvez utiliser Cloud Monitoring pour surveiller les services Google Cloud et les métriques personnalisées. Cloud Monitoring fournit une API pour l'intégration à des outils de surveillance tiers.

Cloud Monitoring regroupe les métriques, les journaux et les événements de l'infrastructure cloud de votre système. Ces données fournissent aux développeurs et aux opérateurs un riche ensemble de signaux observables qui peuvent accélérer l'analyse des causes fondamentales des problèmes et réduire les délais moyens de résolution. Vous pouvez utiliser Cloud Monitoring pour définir des alertes et des métriques personnalisées qui répondent à vos objectifs d'entreprise et vous permettent d'agréger, de visualiser et de surveiller l'état du système.

Cloud Monitoring fournit des tableaux de bord configurés par défaut pour vos services applicatifs Open Source et cloud. Le modèle de métriques vous permet de définir des tableaux de bord personnalisés grâce à des outils de visualisation performants et de configurer des graphiques dans l'explorateur de métriques.

Configurer les alertes

Un bon système d'alerte améliore votre capacité à publier des fonctionnalités. Il permet de comparer les performances au fil du temps pour déterminer la vitesse de publication des fonctionnalités ou la nécessité d'effectuer un rollback de version. Pour en savoir plus sur les rollbacks, consultez la section Restaurer facilement des versions précédentes.

Lorsque vous configurez des alertes, mappez les alertes directement avec vos métriques critiques. Ces métriques critiques incluent les suivantes :

  • Les quatre signaux clés :
    • Latence
    • Trafic
    • Erreurs
    • Saturation
  • État du système
  • Utilisation du service
  • Événements relatifs à la sécurité
  • Expérience utilisateur

Rendez les alertes exploitables afin de réduire le délai de résolution. Pour ce faire, procédez comme suit pour chaque alerte :

  • Incluez une description claire, en indiquant le composant surveillé et son impact sur l'entreprise.
  • Fournissez toutes les informations nécessaires pour agir immédiatement. Si la compréhension des alertes nécessite d'effectuer plusieurs clics et de consulter plusieurs pages, il est difficile pour la personne d'astreinte d'agir rapidement.
  • Définissez des niveaux de priorité pour différentes alertes.
  • Identifiez clairement la personne ou l'équipe responsable de la réponse aux alertes.

Pour les applications et les services critiques, intégrez des actions d'autoréparation dans les alertes déclenchées en raison de conditions d'erreur courantes telles que les échecs de fonctionnement du service, les modifications de configuration ou les pics de débit.

Lorsque vous configurez des alertes, essayez d'éliminer les tâches laborieuses. Par exemple, éliminez les erreurs fréquentes ou automatisez la correction de ces erreurs afin d'éviter le déclenchement d'une alerte. L'élimination des tâches laborieuses permet aux personnes d'astreinte de se concentrer sur la fiabilisation des composants opérationnels de votre application. Pour en savoir plus, consultez la section Créer une culture de l'automatisation.

Créer des tableaux de bord de surveillance et d'alerte

Une fois la surveillance activée, créez des tableaux de bord complexes et pertinents contenant les informations de vos systèmes de surveillance et d'alerte.

Choisir un moyen approprié de visualiser votre tableau de bord peut être difficile à lier à vos objectifs de fiabilité. Créez des tableaux de bord pour visualiser les deux éléments suivants :

  • Analyse à court terme et en temps réel
  • Analyse à long terme

Pour en savoir plus sur la mise en œuvre de la gestion visuelle, consultez l'article sur la fonctionnalité Gestion visuelle.

Activer la journalisation pour les applications critiques

Les services de journalisation sont essentiels à la surveillance de vos systèmes. Bien que les métriques constituent la base des éléments spécifiques à surveiller, les journaux contiennent des informations précieuses nécessaires au débogage, à l'analyse de la sécurité et aux exigences de conformité.

La journalisation des données générées par vos systèmes vous aide à garantir une stratégie de sécurité efficace. Pour plus d'informations sur la journalisation et la sécurité, consultez la section Mettre en œuvre la journalisation et les contrôles de détection dans la catégorie Sécurité du framework d'architecture.

Cloud Logging est un service de journalisation intégré qui vous permet de stocker, rechercher, analyser et surveiller les données et les événements des journaux, puis d'envoyer des alertes si nécessaire. Logging collecte automatiquement les journaux des services Google Cloud et d'autres fournisseurs de services cloud. Ces journaux peuvent vous servir à créer des métriques pour la surveillance ainsi que des exportations de journaux vers des services externes, tels que Cloud Storage, BigQuery et Pub/Sub.

Mettre en place un outil d'audit

Pour vous aider à répondre à des questions telles que "qui a fait quoi, où et quand" dans vos projets Google Cloud, utilisez les Cloud Audit Logs.

Cloud Audit Logs capture plusieurs types d'activités, telles que :

  • Les journaux des activités d'administration contiennent des entrées relatives aux appels d'API et aux autres opérations d'administration qui modifient la configuration ou les métadonnées des ressources. Les journaux d'activité d'administration sont toujours activés.
  • Les journaux d'audit de type Accès aux données enregistrent les appels d'API qui créent, modifient ou lisent des données fournies par l'utilisateur. Les journaux d'audit relatifs à l'accès aux données sont désactivés par défaut car leur taille peut être assez conséquente. Vous pouvez configurer les services Google Cloud qui génèrent des journaux d'accès aux données.

Pour obtenir la liste des services Google Cloud qui génèrent des journaux d'audit, consultez la page Services Google avec journaux d'audit. Limitez l'accès aux journaux d'audit à l'aide des contrôles IAM (Identity and Access Management).

Étapes suivantes