ABRT
| Fiche express | |
|---|---|
| Domaine | Rapport automatique de crash applicatif |
| Commande | abrt-cli
|
| Service | abrtd.service
|
| Contexte | RHEL7 — plugins pour C/C++, Python, Ruby, Java, X.Org, noyau |
| Voir aussi | Systemctl (gestion du service) |
ABRT (Automatic Bug Reporting Tool) est le service RHEL7 qui détecte, collecte et permet de traiter automatiquement les crashs applicatifs (C/C++, Python, Ruby, Java, X.Org) ainsi que les incidents noyau (oops, panic). Ce n'est pas un outil de sécurité : c'est un service de diagnostic/reporting, comparable à un gestionnaire de core dumps enrichi.
Installation et service
yum install abrt-cli libreport-plugin-mailx abrt-java-connector
systemctl start abrtd.service
systemctl is-active abrtd.service
Auto-reporting
L'envoi automatique des rapports se configure via :
abrt-auto-reporting enabled
Le fichier de configuration principal du service est /etc/abrt/abrt.conf.
Plugins par type d'application
Chaque type de crash détecté par ABRT est fourni par un paquet dédié :
abrt-addon-ccpp crashs C/C++
abrt-addon-python exceptions Python
rubygem-abrt exceptions Ruby
abrt-java-connector exceptions Java
abrt-addon-xorg crashs X.Org
abrt-addon-kerneloops oops noyau
abrt-addon-vmcore panic noyau
abrt-addon-pstoreoops oops noyau via stockage persistant (pstore)
Détection par type de crash
C/C++
Par défaut, le système écrit le fichier core dans le répertoire courant de l'application, selon le motif défini par :
cat /proc/sys/kernel/core_pattern
Le service ABRT peut remplacer cette valeur système par son propre hook, qui écrit le core dans /proc/PID/ :
/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Python
Par défaut, l'interpréteur Python importe abrt.pth, installé dans /usr/lib64/python2.7/site-packages/, ce qui active la capture des exceptions non gérées. Pour désactiver cet import (et donc la capture ABRT) pour une exécution donnée, utiliser l'option -S :
python -S file.py
Ruby
Par défaut, l'interpréteur Ruby exécute at_exit en fin d'exécution. ABRT capture cette sortie et l'envoie par défaut.
Java
Le connecteur ABRT pour Java s'active via l'agent abrt-java-connector au lancement de la JVM :
java -agentlib:abrt-java-connector[=abrt=on] MaClasse -platform.jvmtiSupported true
⚠️ Activer ce plugin sur une application Java a un coût en performance — à réserver au diagnostic ponctuel, pas à un usage permanent en production.
X.Org
Par défaut, le fichier de log surveillé est /var/log/Xorg.0.log. La configuration du plugin se trouve dans /etc/abrt/plugins/xorg.conf.
Noyau (oops, panic)
Un « oops » est une déviation non fatale du noyau ; les résultats sont stockés dans /var/crash ou /var/tmp/abrt. Pour qu'ABRT récupère un core kernel complet (kernel panic), le service kdump doit être activé.
Utilisation en ligne de commande
abrt-cli list # afficher les problèmes détectés par ABRT
abrt-cli info [-d] directory_or_id # afficher le détail d'un problème
abrt-cli report directory_or_id # analyser/envoyer un rapport pour un problème
Voir aussi
- Systemctl — gestion du service
abrtd