Lire les logs : journalctl, task log, /var/log/pve¶
Sur Proxmox VE 9, les traces utiles sont à trois endroits : le journal systemd (journalctl) pour les services, les journaux de tâches (task log) pour chaque action lancée depuis la GUI, l'API ou la CLI, et les logs Ceph dans /var/log/ceph/. Cette fiche donne les commandes à connaître et quoi joindre à un ticket.
Pas de /var/log/syslog par défaut
Debian n'installe plus rsyslog par défaut depuis Debian 12, et Proxmox VE 9 repose sur Debian 13 Trixie : sur un nœud installé depuis l'ISO, /var/log/syslog est en principe absent. Le journal systemd, persistant dans /var/log/journal/, le remplace. Vérifiez sur vos nœuds : dpkg -l rsyslog et journalctl --list-boots (plusieurs démarrages listés = journal persistant). Un nœud mis à niveau depuis une ancienne version peut encore avoir rsyslog.
Où regarder¶
| Source | Emplacement | Contenu |
|---|---|---|
| Journal systemd | journalctl, stocké dans /var/log/journal/ |
Services PVE, noyau, Corosync, ZFS, réseau |
| Journaux de tâches | GUI (bas de l'écran, Tasks), /var/log/pve/tasks/ |
Sauvegardes, migrations, démarrages, restaurations |
| Journal du cluster | GUI → Cluster log | Événements de tous les nœuds, horodatés |
| Accès à la GUI et à l'API | /var/log/pveproxy/access.log |
Qui a appelé quoi, depuis quelle IP |
| Pare-feu Proxmox | /var/log/pve-firewall.log, GUI nœud → Firewall → Log |
Paquets journalisés par les règles |
| Ceph | /var/log/ceph/, GUI nœud → Ceph → Log |
Journal du cluster Ceph, logs des MON, OSD, MGR |
| Noyau | journalctl -k, dmesg -T |
Disques, contrôleurs, cartes réseau, OOM killer |
| PBS | GUI PBS → Administration → Tasks, /var/log/proxmox-backup/ |
Sauvegardes reçues, prune, GC, verify, sync |
journalctl : filtres utiles¶
| Commande | Effet | Quand l'utiliser |
|---|---|---|
journalctl -b -p err |
Erreurs depuis le dernier démarrage | Premier réflexe sur un nœud suspect |
journalctl -b -1 -e |
Fin du journal du démarrage précédent | Nœud qui a redémarré seul (fencing, panne) |
journalctl --list-boots |
Liste des démarrages enregistrés | Dater un redémarrage inattendu |
journalctl -u corosync -u pve-cluster --since "1 hour ago" |
Cluster et pmxcfs sur la dernière heure |
Nœud grisé, perte de quorum (RB-09) |
journalctl -u pve-ha-lrm -u pve-ha-crm --since today |
Décisions de la HA | VM redémarrée ailleurs, nœud fenced |
journalctl -u pvestatd -n 100 |
Collecte de statut | Nœud ou stockage en point d'interrogation gris |
journalctl -u pvedaemon -u pveproxy -n 200 |
API et interface web | GUI inaccessible, erreur 500 ou 596 |
journalctl -u pvescheduler --since yesterday |
Planificateur (sauvegardes, réplication) | Job planifié qui ne s'est pas lancé |
journalctl -u zfs-zed --since "2 days ago" |
Événements ZFS (ZED) | Disque retiré, erreurs de checksum (RB-07) |
journalctl -k --grep 'timeout' |
Délais dépassés côté noyau (disque, contrôleur, lien) | Disque lent ou qui disparaît |
journalctl -k --grep 'out of memory' |
Processus tués par manque de RAM | VM arrêtée sans raison apparente |
journalctl -f |
Suivi en direct | Pendant une manipulation |
journalctl --since "2026-10-22 22:00" --until "2026-10-23 02:00" |
Fenêtre précise | Corréler avec une sauvegarde nocturne |
journalctl -o short-iso -u corosync > /tmp/corosync.txt |
Export horodaté | Pièce jointe d'un ticket |
journalctl --disk-usage |
Place occupée par le journal | / qui se remplit |
Journaux de tâches (task log)¶
Chaque action reçoit un identifiant unique, l'UPID, qui contient le nœud, le type de tâche, le VMID et l'utilisateur. Exemple : UPID:pve01:0001A2B3:0C4D5E6F:6718F2A0:vzdump:101:root@pam:.
- GUI : panneau Tasks en bas de l'écran (double-clic pour le détail), ou nœud → Task History avec filtres par type, utilisateur, VMID et erreurs. VM → Task History pour une seule VM.
- Fichiers :
/var/log/pve/tasks/active(tâches en cours),/var/log/pve/tasks/index(historique), un fichier par tâche dans les sous-dossiers0àF. Ces fichiers sont locaux au nœud qui a exécuté la tâche.
| Commande | Effet | Quand l'utiliser |
|---|---|---|
pvenode task list --errors 1 --limit 30 |
30 dernières tâches en erreur du nœud | Routine hebdomadaire |
pvenode task list --typefilter vzdump --vmid 101 |
Sauvegardes de la VM 101 | Sauvegarde en échec (RB-14) |
pvenode task list --source active |
Tâches en cours | VM verrouillée (RB-10) |
pvenode task log <UPID> |
Contenu complet d'une tâche | Lire l'erreur exacte |
pvenode task log <UPID> --download 1 |
Fichier de log brut | Pièce jointe d'un ticket |
Les types les plus courants : vzdump (sauvegarde), qmigrate (migration de VM), qmstart / qmstop, qmrestore, qmsnapshot, vzcreate, aptupdate.
Logs Ceph¶
| Commande | Effet | Quand l'utiliser |
|---|---|---|
ceph health detail |
Alertes en cours, expliquées | Toujours avant de lire les fichiers (RB-01) |
ceph log last 50 |
50 dernières lignes du journal du cluster Ceph | Chronologie d'un incident |
ceph crash ls-new puis ceph crash info <id> |
Crashs de démons non acquittés | Alerte RECENT_CRASH |
less /var/log/ceph/ceph-osd.7.log |
Log d'un OSD sur son nœud | OSD qui ne démarre pas (RB-03) |
journalctl -u ceph-osd@7 -n 200 |
Même chose, côté systemd | OSD qui redémarre en boucle |
journalctl -u ceph-mon@pve01 -n 200 |
Log du moniteur de pve01 |
MON hors quorum |
Lire un log sans se noyer¶
- Dater le symptôme : heure de l'alerte, de la plainte utilisateur, de la tâche rouge.
- Resserrer la fenêtre avec
--since/--until(5 minutes avant, 5 après). - Remonter à la première erreur : la dernière ligne est souvent une conséquence. Cherchez la première ligne
error,failed,timeout,link down. - Croiser les nœuds : un problème réseau Corosync apparaît sur tous les nœuds à la même seconde.
- Vérifier l'horloge : des horloges décalées rendent les corrélations fausses (
chronyc tracking).
Pièges vus en support
- Chercher
/var/log/sysloget conclure « il n'y a pas de logs » : utilisezjournalctl. - Lire le task log sur le mauvais nœud : une migration a un log sur le nœud source.
- Purger le journal (
journalctl --vacuum-*) pendant un incident : vous effacez les preuves. Ne le faites que pour libérer de l'espace, après export. - Envoyer une capture d'écran tronquée au lieu du log complet : le MSP a besoin des lignes qui précèdent l'erreur.
Quand ouvrir un ticket iTop
Joignez toujours : pveversion -v, la sortie de journalctl -b -p err du nœud concerné, le log complet de la tâche en erreur (pvenode task log <UPID>) et l'heure précise du symptôme. Voir Ouvrir un ticket.