Chapitre 6 - Maintenance et dépannage
Mises à jour, supervision, diagnostic et fiche mémo.
- Mise à jour de GLPI
- Supervision et entretien
- Dépannage du serveur Web et de la base
- Dépannage de cron, SMTP et de l’inventaire
- Checklist de mise en production
- Fiche mémo des principales commandes GLPI
- Sources officielles
Mise à jour de GLPI
Au 27 juillet 2026, la version stable courante est GLPI 11.0.8. Les versions récentes ont inclus plusieurs corrections de sécurité : les mises à jour ne doivent pas être considérées comme purement esthétiques.
12.1 Avant la mise à jour
- lire les notes de version ;
- vérifier la compatibilité des plugins ;
- réaliser une sauvegarde complète ;
- tester la restauration si la mise à jour est importante ;
- contrôler le schéma ;
- activer la maintenance.
cd /var/www/glpi
sudo -u www-data php bin/console db:check_schema_integrity
sudo -u www-data php bin/console glpi:maintenance:enable
12.2 Télécharger la nouvelle version
cd /tmp
NEW_GLPI_VERSION="VERSION_CIBLE"
wget "https://github.com/glpi-project/glpi/releases/download/${NEW_GLPI_VERSION}/glpi-${NEW_GLPI_VERSION}.tgz"
tar -xzf "glpi-${NEW_GLPI_VERSION}.tgz"
Remplacer VERSION_CIBLE par la version réellement publiée. Ne jamais deviner un numéro de version : le vérifier sur le site officiel.
12.3 Remplacer le code
La documentation officielle déconseille de copier la nouvelle version par-dessus l’ancienne.
Conserver downstream.php, puis permuter les dossiers :
sudo cp \
/var/www/glpi/inc/downstream.php \
/tmp/downstream.php
sudo mv /var/www/glpi \
"/var/www/glpi-old-$(date +%F_%H-%M-%S)"
sudo mv /tmp/glpi /var/www/glpi
sudo install \
-o root -g root -m 0644 \
/tmp/downstream.php \
/var/www/glpi/inc/downstream.php
sudo chown -R root:root /var/www/glpi
sudo find /var/www/glpi -type d -exec chmod 0755 {} \;
sudo find /var/www/glpi -type f -exec chmod 0644 {} \;
Les données, la configuration et la Marketplace sont conservées dans /var/lib/glpi et /etc/glpi.
12.4 Migrer la base
cd /var/www/glpi
sudo -u www-data php bin/console glpi:system:check_requirements
sudo -u www-data php bin/console db:update
Pour une mise à jour majeure, vérifier les plugins puis reprendre leur exécution :
sudo -u www-data php bin/console plugin:resume_execution
Terminer :
sudo -u www-data php bin/console db:check_schema_integrity
sudo -u www-data php bin/console glpi:maintenance:disable
sudo apache2ctl configtest
sudo systemctl reload apache2
12.5 Contrôles après mise à jour
- connexion administrateur ;
- création d’un ticket ;
- envoi d’une notification ;
- exécution de cron ;
- collecte d’un courriel ;
- connexion LDAP ;
- remontée d’un agent ;
- consultation d’un document ;
- fonctionnement de chaque plugin ;
- absence d’erreur dans les journaux.
Conserver temporairement l’ancien répertoire source et la sauvegarde jusqu’à validation. Le retour arrière nécessite généralement de restaurer ensemble l’ancien code, la base et les fichiers correspondant à la même sauvegarde.
Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.
Supervision et entretien
Contrôle des services
systemctl status apache2 mariadb cron --no-pager
Contrôle HTTP
curl -I http://127.0.0.1
curl -I https://glpi.dreamsaphir.fr
Espace disque
df -h
sudo du -sh \
/var/lib/glpi/files \
/var/lib/glpi/marketplace \
/var/log/glpi \
/var/lib/mysql
Base de données
sudo mariadb -e \
"SELECT table_schema AS base_name,
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS taille_Mo
FROM information_schema.tables
WHERE table_schema='glpi'
GROUP BY table_schema;"
Vérification GLPI
cd /var/www/glpi
sudo -u www-data php bin/console glpi:system:check_requirements
sudo -u www-data php bin/console db:check_schema_integrity
Journaux
sudo tail -n 100 /var/log/apache2/glpi-error.log
sudo tail -n 100 /var/log/glpi/php-errors.log
sudo journalctl -u apache2 -n 100 --no-pager
sudo journalctl -u mariadb -n 100 --no-pager
Fréquence d’entretien conseillée
| Fréquence | Opérations |
|---|---|
| Quotidienne | Vérifier les sauvegardes et les erreurs critiques |
| Hebdomadaire | Vérifier cron, collecteurs, file de notifications et espace disque |
| Mensuelle | Vérifier les mises à jour GLPI, plugins, Debian et certificats |
| Trimestrielle | Tester une restauration et revoir les comptes privilégiés |
| Annuelle | Revoir l’architecture, les SLA, les règles, la conservation et les droits |
Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.
Dépannage du serveur Web et de la base
14.1 Page blanche ou erreur 500
sudo apache2ctl configtest
sudo tail -n 100 /var/log/apache2/glpi-error.log
sudo tail -n 100 /var/log/glpi/php-errors.log
php -v
php -m | sort
Puis :
cd /var/www/glpi
sudo -u www-data php bin/console glpi:system:check_requirements
14.2 Erreur de permissions
sudo chown -R www-data:www-data \
/etc/glpi \
/var/lib/glpi \
/var/log/glpi
sudo find /etc/glpi /var/lib/glpi /var/log/glpi \
-type d -exec chmod 0750 {} \;
sudo find /etc/glpi /var/lib/glpi /var/log/glpi \
-type f -exec chmod 0640 {} \;
Ne pas appliquer chmod -R 777.
14.3 Connexion à la base impossible
systemctl status mariadb --no-pager
mariadb -u glpi -p glpi
sudo ss -lntp | grep 3306
Contrôler le fichier :
/etc/glpi/config_db.php
14.4 Mauvaise racine Web
Le VirtualHost doit contenir :
DocumentRoot /var/www/glpi/public
et non :
DocumentRoot /var/www/glpi
14.5 L’URL renvoie la page Apache par défaut
sudo a2dissite 000-default.conf
sudo a2ensite glpi.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
apache2ctl -S
Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.
Dépannage de cron, SMTP et de l’inventaire
14.6 Les actions automatiques ne se lancent pas
systemctl status cron --no-pager
sudo -u www-data php /var/www/glpi/front/cron.php
sudo journalctl -u cron -n 100 --no-pager
Vérifier également que les actions sont en mode CLI dans GLPI.
14.7 Les courriels ne partent pas
Vérifier :
- l’activation des notifications ;
- le serveur et le port SMTP ;
- STARTTLS ou TLS ;
- l’authentification ;
- l’action automatique
queuednotification; - la file d’attente ;
- les règles du pare-feu ;
- l’heure du serveur.
openssl s_client -starttls smtp -connect smtp.example.fr:587
14.8 Les dates ou fuseaux horaires sont incorrects
timedatectl
php -i | grep date.timezone
sudo mariadb mysql -e \
"SELECT Name FROM time_zone_name WHERE Name='Europe/Paris';"
14.9 L’inventaire arrive mais le poste n’apparaît pas
Contrôler :
- les éléments ignorés ou refusés ;
- les règles d’import et de liaison ;
- le tag ;
- l’entité ;
- les doublons de numéro de série ou UUID ;
- le journal GLPI Agent ;
- l’URL d’inventaire.
14.10 Diagnostic complet à fournir
En cas de demande d’assistance, collecter :
cat /etc/os-release
php -v
mariadb --version
apache2 -v
apache2ctl -S
systemctl status apache2 mariadb cron --no-pager
cd /var/www/glpi
sudo -u www-data php bin/console glpi:system:check_requirements
sudo tail -n 100 /var/log/apache2/glpi-error.log
sudo tail -n 100 /var/log/glpi/php-errors.log
Supprimer les mots de passe, secrets OAuth, cookies, jetons API et données personnelles avant de partager les résultats.
Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.
Checklist de mise en production
Installation
- Debian et les paquets sont à jour.
- Le serveur utilise une adresse IP stable.
- Le DNS résout correctement le nom GLPI.
- Apache pointe vers
/var/www/glpi/public. - PHP respecte les prérequis GLPI 11.
- MariaDB est sécurisé.
- Le compte MariaDB GLPI est limité à la base
glpi. - Les fuseaux horaires MariaDB sont chargés.
- La commande de vérification GLPI ne signale aucune erreur obligatoire.
Sécurité
- HTTPS est obligatoire.
- Les comptes par défaut ont été changés ou désactivés.
- Un administrateur nominatif a été créé.
- Un compte local de secours est protégé dans un coffre-fort.
- La MFA est activée pour les comptes privilégiés.
- Les clés GLPI sont incluses dans les sauvegardes.
- MariaDB n’est pas exposé à Internet.
- Le serveur est filtré par pare-feu.
- Les plugins proviennent de sources fiables.
Exploitation
- Cron fonctionne en mode CLI.
- L’envoi d’un courriel de test fonctionne.
- Le collecteur crée correctement un ticket.
- LDAP ou LDAPS a été testé avec un utilisateur standard.
- Les profils et entités ont été contrôlés.
- Un inventaire GLPI Agent a été reçu.
- Les règles d’import ont été testées.
- Les journaux sont surveillés.
Sauvegardes
- La base est sauvegardée.
-
/etc/glpiest sauvegardé. -
/var/lib/glpi/filesest sauvegardé. - La Marketplace et les plugins sont sauvegardés.
- Une copie existe hors du serveur GLPI.
- Une restauration a réellement été testée.
Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.
Fiche mémo des principales commandes GLPI
Vérification générale
systemctl status apache2 mariadb cron --no-pager
cd /var/www/glpi
sudo -u www-data php bin/console glpi:system:check_requirements
sudo -u www-data php bin/console db:check_schema_integrity
Ces commandes contrôlent les services, les prérequis GLPI et l’intégrité du schéma de base de données.
Apache
sudo apache2ctl configtest
apache2ctl -S
sudo systemctl reload apache2
sudo tail -n 100 /var/log/apache2/glpi-error.log
Elles vérifient la configuration du VirtualHost, affichent les sites actifs et consultent les dernières erreurs.
MariaDB
systemctl status mariadb --no-pager
mariadb -u glpi -p glpi
sudo mariadb-dump --single-transaction --quick glpi > glpi.sql
Ces commandes testent la base et produisent une sauvegarde SQL simple.
Actions automatiques
sudo -u www-data php /var/www/glpi/front/cron.php
sudo journalctl -u cron -n 100 --no-pager
Elles forcent les actions automatiques puis affichent les journaux cron.
Maintenance
cd /var/www/glpi
sudo -u www-data php bin/console glpi:maintenance:enable
sudo -u www-data php bin/console db:update
sudo -u www-data php bin/console glpi:maintenance:disable
À utiliser lors d’une mise à jour, uniquement après une sauvegarde complète.
LDAP et LDAPS
getent hosts dc1.snts.local
nc -vz dc1.snts.local 636
openssl s_client -connect dc1.snts.local:636 -showcerts
Ces commandes vérifient le DNS, le port LDAPS et le certificat du contrôleur de domaine.
GLPI Agent
"C:\Program Files\GLPI-Agent\glpi-agent.bat" --force
sudo glpi-agent --force
sudo journalctl -u glpi-agent -n 100 --no-pager
Ces commandes forcent un inventaire sous Windows ou Linux.
Journaux principaux
/var/log/apache2/glpi-error.log
/var/log/apache2/glpi-access.log
/var/log/glpi/php-errors.log
C:\Program Files\GLPI-Agent\logs\glpi-agent.log
Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.
Sources officielles
- Téléchargement de la dernière version de GLPI
- Publications officielles GLPI sur GitHub
- Prérequis GLPI
- Installation GLPI
- Assistant d’installation et comptes par défaut
- Commandes de la console GLPI
- Procédure officielle de mise à jour
- Configuration des fuseaux horaires
- Documentation générale GLPI
- Configuration LDAP
- Actions automatiques
- Documentation GLPI Agent
- Publications officielles GLPI Agent
- Paramètres de l’installateur Windows GLPI Agent
Rappel important : avant toute modification importante, mise à jour ou ajout de plugin, sauvegarder la base, les documents, la configuration et les clés de chiffrement. Une sauvegarde non restaurée au moins une fois reste une sauvegarde non vérifiée.
Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.