azure-resource-health-diagnose

Par github · awesome-copilot

Analysez l'état de santé des ressources Azure, diagnostiquez les problèmes à partir des journaux et de la télémétrie, et créez un plan de remédiation pour les problèmes identifiés.

npx skills add https://github.com/github/awesome-copilot --skill azure-resource-health-diagnose

Santé des ressources Azure et diagnostic des problèmes

Ce workflow analyse une ressource Azure spécifique pour évaluer son état de santé, diagnostiquer les problèmes potentiels à l'aide des journaux et données de télémétrie, et développer un plan de correction complet pour les problèmes découverts.

Prérequis

  • Serveur Azure MCP configuré et authentifié
  • Ressource Azure cible identifiée (nom et optionnellement groupe de ressources/abonnement)
  • La ressource doit être déployée et en cours d'exécution pour générer des journaux/télémétrie
  • Préférer les outils Azure MCP (azmcp-*) à l'interface Azure CLI directe quand disponibles

Étapes du workflow

Étape 1 : Obtenir les bonnes pratiques Azure

Action : Récupérer les bonnes pratiques de diagnostic et dépannage Outils : Outil bonnes pratiques Azure MCP Processus :

  1. Charger les bonnes pratiques :
    • Exécuter l'outil bonnes pratiques Azure pour obtenir les directives de diagnostic
    • Se concentrer sur la surveillance de la santé, l'analyse des journaux et les modèles de résolution de problèmes
    • Utiliser ces pratiques pour informer l'approche diagnostique et les recommandations de correction

Étape 2 : Découverte et identification des ressources

Action : Localiser et identifier la ressource Azure cible Outils : Outils Azure MCP + fallback Azure CLI Processus :

  1. Recherche de ressource :

    • Si seul le nom de la ressource est fourni : Rechercher dans les abonnements avec azmcp-subscription-list
    • Utiliser az resource list --name <resource-name> pour trouver les ressources correspondantes
    • Si plusieurs correspondances trouvées, demander à l'utilisateur de spécifier l'abonnement/groupe de ressources
    • Rassembler les informations détaillées sur la ressource :
      • Type de ressource et état actuel
      • Localisation, tags et configuration
      • Services associés et dépendances
  2. Détection du type de ressource :

    • Identifier le type de ressource pour déterminer l'approche diagnostique appropriée :
      • Web Apps/Function Apps : Journaux d'application, métriques de performance, suivi des dépendances
      • Virtual Machines : Journaux système, compteurs de performance, diagnostics de démarrage
      • Cosmos DB : Métriques de requête, limitation, statistiques de partition
      • Storage Accounts : Journaux d'accès, métriques de performance, disponibilité
      • SQL Database : Performance des requêtes, journaux de connexion, utilisation des ressources
      • Application Insights : Télémétrie d'application, exceptions, dépendances
      • Key Vault : Journaux d'accès, état des certificats, utilisation des secrets
      • Service Bus : Métriques de message, files d'attente de lettres mortes, débit

Étape 3 : Évaluation de l'état de santé

Action : Évaluer la santé actuelle et la disponibilité de la ressource Outils : Outils de surveillance Azure MCP + Azure CLI Processus :

  1. Contrôle de santé basique :

    • Vérifier l'état d'approvisionnement et le statut opérationnel de la ressource
    • Vérifier la disponibilité du service et la réactivité
    • Examiner les changements de déploiement ou configuration récents
    • Évaluer l'utilisation actuelle des ressources (CPU, mémoire, stockage, etc.)
  2. Indicateurs de santé spécifiques au service :

    • Web Apps : Codes de réponse HTTP, temps de réponse, disponibilité
    • Bases de données : Taux de réussite de connexion, performance des requêtes, deadlocks
    • Stockage : Pourcentage de disponibilité, taux de réussite des requêtes, latence
    • VMs : Diagnostics de démarrage, métriques du SE invité, connectivité réseau
    • Functions : Taux de réussite d'exécution, durée, fréquence des erreurs

Étape 4 : Analyse des journaux et télémétrie

Action : Analyser les journaux et télémétrie pour identifier les problèmes et modèles Outils : Outils de surveillance Azure MCP pour les requêtes Log Analytics Processus :

  1. Trouver les sources de surveillance :

    • Utiliser azmcp-monitor-workspace-list pour identifier les espaces de travail Log Analytics
    • Localiser les instances Application Insights associées à la ressource
    • Identifier les tables de journaux pertinentes avec azmcp-monitor-table-list
  2. Exécuter les requêtes diagnostiques : Utiliser azmcp-monitor-log-query avec des requêtes KQL ciblées basées sur le type de ressource :

    Analyse générale des erreurs :

    // Erreurs et exceptions récentes
    union isfuzzy=true 
        AzureDiagnostics,
        AppServiceHTTPLogs,
        AppServiceAppLogs,
        AzureActivity
    | where TimeGenerated > ago(24h)
    | where Level == "Error" or ResultType != "Success"
    | summarize ErrorCount=count() by Resource, ResultType, bin(TimeGenerated, 1h)
    | order by TimeGenerated desc

    Analyse de performance :

    // Modèles de dégradation de performance
    Perf
    | where TimeGenerated > ago(7d)
    | where ObjectName == "Processor" and CounterName == "% Processor Time"
    | summarize avg(CounterValue) by Computer, bin(TimeGenerated, 1h)
    | where avg_CounterValue > 80

    Requêtes spécifiques à l'application :

    // Application Insights - Requêtes échouées
    requests
    | where timestamp > ago(24h)
    | where success == false
    | summarize FailureCount=count() by resultCode, bin(timestamp, 1h)
    | order by timestamp desc
    
    // Base de données - Échecs de connexion
    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.SQL"
    | where Category == "SQLSecurityAuditEvents"
    | where action_name_s == "CONNECTION_FAILED"
    | summarize ConnectionFailures=count() by bin(TimeGenerated, 1h)
  3. Reconnaissance de modèles :

    • Identifier les modèles d'erreur récurrents ou anomalies
    • Corréler les erreurs avec les heures de déploiement ou changements de configuration
    • Analyser les tendances de performance et modèles de dégradation
    • Rechercher les échecs de dépendances ou les problèmes de services externes

Étape 5 : Classification des problèmes et analyse de la cause racine

Action : Catégoriser les problèmes identifiés et déterminer les causes racines Processus :

  1. Classification des problèmes :

    • Critique : Service indisponible, perte de données, violations de sécurité
    • Haute : Dégradation de performance, défaillances intermittentes, taux d'erreur élevé
    • Moyenne : Avertissements, configuration sous-optimale, problèmes mineurs de performance
    • Basse : Alertes informatives, opportunités d'optimisation
  2. Analyse de la cause racine :

    • Problèmes de configuration : Paramètres incorrects, dépendances manquantes
    • Contraintes de ressources : Limitations CPU/mémoire/disque, limitation de débit
    • Problèmes réseau : Problèmes de connectivité, résolution DNS, règles de pare-feu
    • Problèmes d'application : Bugs de code, fuites mémoire, requêtes inefficaces
    • Dépendances externes : Défaillances de services tiers, limites d'API
    • Problèmes de sécurité : Échecs d'authentification, expiration de certificats
  3. Évaluation de l'impact :

    • Déterminer l'impact métier et les utilisateurs/systèmes affectés
    • Évaluer les implications en matière d'intégrité des données et sécurité
    • Évaluer les objectifs de temps de récupération et priorités

Étape 6 : Générer le plan de correction

Action : Créer un plan complet pour résoudre les problèmes identifiés Processus :

  1. Actions immédiates (Problèmes critiques) :

    • Correctifs d'urgence pour restaurer la disponibilité du service
    • Solutions de contournement temporaires pour réduire l'impact
    • Procédures d'escalade pour les problèmes complexes
  2. Correctifs à court terme (Problèmes haute/moyenne priorité) :

    • Ajustements de configuration et mise à l'échelle des ressources
    • Mises à jour et correctifs d'application
    • Améliorations de la surveillance et des alertes
  3. Améliorations à long terme (Tous les problèmes) :

    • Changements architecturaux pour meilleure résilience
    • Mesures préventives et améliorations de surveillance
    • Améliorations de documentation et processus
  4. Étapes d'implémentation :

    • Éléments d'action prioritaires avec commandes Azure CLI spécifiques
    • Procédures de test et validation
    • Plans de restauration pour chaque changement
    • Surveillance pour vérifier la résolution du problème

Étape 7 : Confirmation utilisateur et génération de rapport

Action : Présenter les résultats et obtenir l'approbation pour les actions de correction Processus :

  1. Afficher le résumé de l'évaluation de santé :

    🏥 Évaluation de la santé des ressources Azure
    
    📊 Aperçu de la ressource :
    • Ressource : [Nom] ([Type])
    • État : [Sain/Avertissement/Critique]
    • Localisation : [Région]
    • Dernière analyse : [Horodatage]
    
    🚨 Problèmes identifiés :
    • Critique : X problèmes nécessitant une attention immédiate
    • Haute : Y problèmes affectant la performance/fiabilité
    • Moyenne : Z problèmes d'optimisation
    • Basse : N éléments informatifs
    
    🔍 Principaux problèmes :
    1. [Type de problème] : [Description] - Impact : [Élevé/Moyen/Faible]
    2. [Type de problème] : [Description] - Impact : [Élevé/Moyen/Faible]
    3. [Type de problème] : [Description] - Impact : [Élevé/Moyen/Faible]
    
    🛠️ Plan de correction :
    • Actions immédiates : X éléments
    • Correctifs à court terme : Y éléments
    • Améliorations à long terme : Z éléments
    • Temps de résolution estimé : [Délai]
    
    ❓ Procéder avec le plan de correction détaillé ? (o/n)
  2. Générer un rapport détaillé :

    # Rapport de santé des ressources Azure : [Nom de la ressource]
    
    **Généré** : [Horodatage]  
    **Ressource** : [ID de ressource complet]  
    **Santé globale** : [État avec indicateur de couleur]
    
    ## 🔍 Résumé exécutif
    [Aperçu bref de l'état de santé et des principales conclusions]
    
    ## 📊 Métriques de santé
    - **Disponibilité** : X% sur les dernières 24h
    - **Performance** : [Temps de réponse moyen/débit]
    - **Taux d'erreur** : X% sur les dernières 24h
    - **Utilisation des ressources** : [Pourcentages CPU/Mémoire/Stockage]
    
    ## 🚨 Problèmes identifiés
    
    ### Problèmes critiques
    - **[Problème 1]** : [Description]
      - **Cause racine** : [Analyse]
      - **Impact** : [Impact métier]
      - **Action immédiate** : [Étapes requises]
    
    ### Problèmes de haute priorité
    - **[Problème 2]** : [Description]
      - **Cause racine** : [Analyse]
      - **Impact** : [Impact performance/fiabilité]
      - **Correctif recommandé** : [Étapes de solution]
    
    ## 🛠️ Plan de correction
    
    ### Phase 1 : Actions immédiates (0-2 heures)
    ```bash
    # Correctifs critiques pour restaurer le service
    [Commandes Azure CLI avec explications]

    Phase 2 : Correctifs à court terme (2-24 heures)

    # Améliorations de performance et fiabilité
    [Commandes Azure CLI avec explications]

    Phase 3 : Améliorations à long terme (1-4 semaines)

    # Mesures architecturales et préventives
    [Commandes Azure CLI et changements de configuration]

    📈 Recommandations de surveillance

    • Alertes à configurer : [Liste des alertes recommandées]
    • Tableaux de bord à créer : [Suggestions de tableaux de bord de surveillance]
    • Vérifications de santé régulières : [Fréquence et étendue recommandées]

    ✅ Étapes de validation

    • [ ] Vérifier la résolution du problème par les journaux
    • [ ] Confirmer les améliorations de performance
    • [ ] Tester la fonctionnalité de l'application
    • [ ] Mettre à jour la surveillance et les alertes
    • [ ] Documenter les leçons apprises

    📝 Mesures de prévention

    • [Recommandations pour prévenir des problèmes similaires]
    • [Améliorations des processus]
    • [Améliorations de la surveillance]

Gestion des erreurs

  • Ressource non trouvée : Fournir une aide sur la spécification du nom/emplacement de la ressource
  • Problèmes d'authentification : Guider l'utilisateur dans la configuration de l'authentification Azure
  • Permissions insuffisantes : Lister les rôles RBAC requis pour l'accès à la ressource
  • Aucun journal disponible : Suggérer d'activer les paramètres diagnostiques et d'attendre les données
  • Délais d'expiration de requête : Diviser l'analyse en fenêtres de temps plus petites
  • Problèmes spécifiques au service : Fournir une évaluation générale de la santé avec limitations notées

Critères de succès

  • ✅ État de santé de la ressource évalué avec précision
  • ✅ Tous les problèmes significatifs identifiés et catégorisés
  • ✅ Analyse de la cause racine complétée pour les problèmes majeurs
  • ✅ Plan de correction exécutable avec étapes spécifiques fourni
  • ✅ Recommandations de surveillance et prévention incluses
  • ✅ Priorisation claire des problèmes par impact métier
  • ✅ Étapes d'implémentation incluent les procédures de validation et restauration

Skills similaires