Débogage d'erreur de système VMs

Débogage d'une erreur "Java not running" sur une SSVM dans Apache CloudStack

Contexte

La Secondary Storage Virtual Machine (SSVM) dans Apache CloudStack gère les templates, ISOs, et snapshots. Lors de l'exécution du script /usr/local/cloud/systemvm/ssvm-check.sh, une erreur "Java not running" indique que le processus Java du CloudStack Agent ne fonctionne pas correctement. Ce guide détaille les étapes que j'ai suivi pour diagnostiquer et résoudre ce problème, basées sur une session de débogage réelle.

Prérequis

  • Accès root à la SSVM via SSH ou console : ssh sur l'ip de la link locale par clé dans le .ssh de root : ssh -i /root/.ssh/id_rsa.cloud 169.254.237.213 -p 3922

  • Interface d'administration CloudStack pour vérifier l'état des System VMs.

  • Connaissance de l'adresse IP du management server (par exemple, 192.168.1.30:8250).

  • Accès au stockage NFS configuré pour la SSVM.

circle-info

Erreurs spécifiques que j'ai rencontrées

  • Problèmes DNS : Les System VMs (SSVM et Console Proxy) ne résolvaient pas correctement les noms DNS des nœuds et des hôtes KVM en raison d'un préfixe de domaine de recherche (domain.tld) manquant dans /etc/resolv.conf.

  • Processus Java non exécuté : Le processus Java nécessaire au fonctionnement du CloudStack Agent ne tournait pas, provoquant l'erreur "Java not running".

  • Scripts d'exécution manquants : Les scripts d'exécution dans /usr/local/cloud/systemvm/ pour le service cloud-early-config.service étaient absents, empêchant le démarrage correct de l'agent.

  • Problème avec cloud-agent.zip : Le fichier cloud-agent.zip était corrompu ou non synchronisé, empêchant l'agent CloudStack de répondre correctement.

Étapes de diagnostic et de résolution

1. Vérification initiale de l'environnement

Vérifiez l'état général du système pour identifier les problèmes de base.

a) Vérification de l'espace disque

Assurez-vous que le système de fichiers n'est pas plein, ce qui pourrait empêcher le démarrage des services.

b) Exploration des fichiers système

Listez les fichiers et scripts pertinents dans le répertoire de la SSVM :

Localisez le script ssvm-check.sh pour analyse ultérieure.

circle-exclamation
chevron-rightssvm-check.shhashtag

c) Vérification de la connectivité réseau

Vérifiez la configuration réseau et la connectivité avec le management server :

Confirmez que la SSVM peut atteindre le management server sur le port 8250.

2. Diagnostic du problème Java

Analysez l'état de Java et du CloudStack Agent.

a) Vérification de l'installation de Java

Vérifiez si Java est installé et accessible :

Attendez-vous à voir une version comme OpenJDK 17 avec cloudstack 4.20. Si Java est absent, installez-le :

b) Vérification des processus Java

Vérifiez si un processus Java est en cours d'exécution :

Si aucun processus Java n'est trouvé, le CloudStack Agent ne fonctionne pas.

c) Inspection du script ssvm-check.sh

Analysez le script pour comprendre comment il détecte l'erreur :

Le script vérifie probablement la présence d'un processus Java spécifique.

3. Correction des problèmes de montage NFS

Le stockage secondaire doit être correctement monté pour que la SSVM fonctionne.

a) Configuration du montage NFS

Ajoutez une entrée NFS dans /etc/fstab :

Vérifiez que le montage est réussi avec df -h.

4. Configuration de l'environnement Java

Assurez-vous que Java est correctement configuré.

a) Définition de JAVA_HOME

Vérifiez et configurez la variable JAVA_HOME :

5. Réparation du CloudStack Agent

Réparez les fichiers et services du CloudStack Agent.

a) Analyse des journaux

Vérifiez les journaux pour identifier les erreurs :

b) Mise à jour des fichiers de l'agent

Extrayez et remplacez les fichiers de l'agent :

c) Configuration des permissions

Ajustez les permissions des fichiers critiques :

6. Résolution des problèmes DNS et hôtes

Assurez-vous que la résolution de noms fonctionne correctement.

a) Configuration de /etc/hosts

Ajoutez des entrées pour résoudre les noms locaux :

b) Configuration DNS

Ajoutez un domaine de recherche DNS :

7. Redémarrage des services

Appliquez les modifications et redémarrez les services.

a) Redémarrage du service CloudStack

Redémarrez le service cloud-early-config :

b) Exécution manuelle de l'agent

Supprimez un fichier PID obsolète et lancez l'agent manuellement :

8. Vérification finale

Validez que le problème est résolu.

a) Exécution du script ssvm-check.sh

Vérifiez que l'erreur "Java not running" ne se produit plus.

b) Surveillance des journaux

Surveillez les journaux en temps réel :

Confirmez que l'agent fonctionne sans erreurs.

Résolution

L'erreur "Java not running" a été résolue en :

  1. Configurant correctement JAVA_HOME.

  2. Montant le stockage NFS.

  3. Mettant à jour les fichiers du CloudStack Agent.

  4. Corrigeant la résolution DNS via /etc/hosts et /etc/resolv.conf.

  5. Redémarrant les services et exécutant _run.sh manuellement.

Bonnes pratiques

  • Surveillez régulièrement l'espace disque avec df -h.

  • Vérifiez que JAVA_HOME est défini dans /etc/environment.

  • Assurez-vous que les fichiers de l'agent sont synchronisés avec le management server.

  • Configurez correctement le DNS pour éviter les problèmes de résolution.

  • Consultez les journaux (/var/log/cloud.log, /var/log/cloudstack/agent/agent.log) pour un diagnostic rapide.

Last updated