Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Utilisation de sysstat
Documentation : Utilisation de sysstat sous Linux
[modifier | modifier le wikicode]
1. Présentation de sysstat
[modifier | modifier le wikicode]Le paquet sysstat regroupe plusieurs utilitaires de surveillance de la performance du système Linux, tels que : - sar – collecte et affiche des statistiques système ; - iostat – surveille les statistiques d’E/S (entrée/sortie) disque ; - mpstat – affiche l’utilisation des processeurs ; - pidstat – montre les statistiques par processus ; - sa1 / sa2 – scripts utilisés par le démon sysstat pour collecter et archiver les données.
2. Démarrage et service sysstat
[modifier | modifier le wikicode]Pour démarrer la collecte automatique des statistiques :
sudo systemctl enable sysstat
sudo systemctl start sysstat
Le service exécute périodiquement les scripts sa1 et sa2 (via cron ou systemd timer) pour enregistrer les données dans :
/var/log/sysstat/
Les fichiers collectés sont généralement nommés selon la date :
sa07, sa08, sa09, ...
3. Impact sur les ressources
[modifier | modifier le wikicode]
CPU et mémoire
[modifier | modifier le wikicode]sysstat a un impact très faible sur les ressources : - Moins de 1 % de CPU utilisé ; - Quelques mégaoctets de RAM ; - Temps d’exécution très court à chaque collecte.
Espace disque
[modifier | modifier le wikicode]Les fichiers générés dans /var/log/sysstat/ sont compacts : - Environ 200 à 500 Ko par jour sur une machine classique ; - Il est possible de définir une rétention (par défaut 7 jours).
La configuration se trouve dans :
/etc/sysconfig/sysstat # (Red Hat, CentOS, Fedora) ou /etc/default/sysstat # (Debian, Ubuntu)
Exemple de configuration :
# Intervalle de collecte (en minutes)
SA1_OPTIONS="-S DISK"
# Durée de rétention (en jours)
HISTORY=7
4. Utilisation des commandes principales
[modifier | modifier le wikicode]
4.1 sar
[modifier | modifier le wikicode]Affiche les statistiques système enregistrées :
sar -u # Utilisation CPU
sar -r # Mémoire
sar -b # E/S disque
sar -n DEV # Réseau
Pour consulter les données d’un jour particulier :
sar -u -f /var/log/sysstat/sa07
4.2 iostat
[modifier | modifier le wikicode]Statistiques d’E/S par périphérique :
iostat -xz 1
-x: détails avancés ;-z: n’affiche que les périphériques actifs ;1: met à jour chaque seconde.
4.3 mpstat
[modifier | modifier le wikicode]Surveillance des processeurs :
mpstat -P ALL 5
4.4 pidstat
[modifier | modifier le wikicode]Statistiques par processus :
pidstat 2
5. Rotation et nettoyage des logs
[modifier | modifier le wikicode]Les fichiers sont gérés automatiquement, mais vous pouvez les purger manuellement :
sudo rm /var/log/sysstat/sa*
Pour modifier la fréquence de collecte (par défaut toutes les 10 minutes), éditez :
/etc/cron.d/sysstat
ou pour les systèmes avec systemd timers :
systemctl list-timers | grep sysstat
6. Exemple de workflow complet
[modifier | modifier le wikicode]Démarrer et activer le service :
sudo systemctl enable --now sysstat
Vérifier qu’il fonctionne :
systemctl status sysstat
Laisser tourner quelques heures, puis consulter les stats :
sar -q # charge du système sar -r # mémoire iostat -xz 1 10 # disques
7. Bonnes pratiques
[modifier | modifier le wikicode]- Rétention courte : 7 à 14 jours suffisent généralement ;
- Centralisation : exporter les logs vers un outil comme Grafana, Netdata, Prometheus ;
- Automatisation : ajouter des alertes si certaines valeurs dépassent des seuils (CPU > 90 %, I/O élevé, etc.) ;
- Sécurité : limiter les permissions sur
/var/log/sysstat(les logs peuvent contenir des informations sensibles sur la charge du système).
8. Références utiles
[modifier | modifier le wikicode]Manuels officiels :
man sysstat man sar man iostat man mpstat
Site officiel : https://github.com/sysstat/sysstat
9. Problèmes courants sous Ubuntu
[modifier | modifier le wikicode]
sa1 ne produit aucune sortie
[modifier | modifier le wikicode]Sous Ubuntu, la commande :
sudo /usr/lib/sysstat/sa1 1 1
ne produit aucun message à l’écran. C’est normal : sa1 écrit directement les données binaires dans /var/log/sysstat/ sans afficher quoi que ce soit.
Vérifier que la collecte fonctionne
[modifier | modifier le wikicode]Vérifier la présence du script :
ls -l /usr/lib/sysstat/sa1
Vérifier la création du fichier de logs :
ls -lh /var/log/sysstat/
→ Un fichier du jour comme
sa07doit apparaître.Créer le répertoire manuellement si besoin :
sudo mkdir -p /var/log/sysstat sudo chown sysstat:sysstat /var/log/sysstat sudo chmod 755 /var/log/sysstat
Forcer la collecte :
sudo /usr/lib/sysstat/sa1 1 1
Lire les statistiques :
sar -u -f /var/log/sysstat/sa07
Si toujours aucun résultat
[modifier | modifier le wikicode]Le binaire sadc est le véritable collecteur utilisé par sa1. On peut tester directement :
sudo /usr/lib/sysstat/sadc -F -L -S DISK 1 1 /var/log/sysstat/sa07
Cela crée manuellement un fichier de statistiques, même si le service sysstat n’est pas encore activé.
En résumé
[modifier | modifier le wikicode]| Étape | Commande | Attendu |
|---|---|---|
| Vérifier config | grep ENABLED /etc/default/sysstat
|
ENABLED="true"
|
| Forcer collecte | sudo /usr/lib/sysstat/sa1 1 1
|
Pas de sortie, mais fichier créé |
| Vérifier logs | ls -lh /var/log/sysstat/
|
Fichier saXX présent
|
| Lire stats | sar -u -f /var/log/sysstat/saXX
|
Lignes CPU visibles |
| Si rien | sudo /usr/lib/sysstat/sadc ...
|
Crée les stats manuellement |
10. Configuration du cron sous Debian/Ubuntu (debian-sa1)
[modifier | modifier le wikicode]
Emplacement du fichier
[modifier | modifier le wikicode]Le fichier de planification de la collecte se trouve ici :
/etc/cron.d/sysstat
Exemple de configuration par défaut
[modifier | modifier le wikicode]# Activity reports every 10 minutes everyday 5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1 # Additional run at 23:59 to rotate the statistics file 59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
Explication des lignes
[modifier | modifier le wikicode]5-55/10→ lance la collecte à :05, :15, :25, :35, :45, :55 toutes les heures.
debian-sa1→ wrapper Debian qui exécutesa1uniquement siENABLED="true"dans/etc/default/sysstat.
59 23→ collecte supplémentaire juste avant minuit pour fermer la journée proprement.
Modifier la fréquence à 15 minutes
[modifier | modifier le wikicode]
Option A — Simple et standard (00/15/30/45)
[modifier | modifier le wikicode]*/15 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1 59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
Option B — Décalée de 5 minutes (05/20/35/50)
[modifier | modifier le wikicode]5-50/15 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1 59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
Étapes à suivre
[modifier | modifier le wikicode]Ouvrir le fichier :
sudo nano /etc/cron.d/sysstat
Modifier la ligne
5-55/10 ...selon la fréquence désirée.Enregistrer et quitter (
Ctrl + O,Entrée,Ctrl + X).Redémarrer
cronpour appliquer les changements :sudo systemctl restart cron
Vérifier que la collecte fonctionne :
grep sa1 /var/log/syslog | tail ls -lh /var/log/sysstat/
11. Configuration complète sous Debian/Ubuntu (ENABLED, SA1_OPTIONS, HISTORY)
[modifier | modifier le wikicode]
Fichier principal /etc/default/sysstat
[modifier | modifier le wikicode]Sous Debian et Ubuntu, ce fichier ne contient qu’une seule variable gérée par debconf :
ENABLED="true"
⚠️ Important : > Le commentaire dans le fichier indique :
> “Please do not put other values, they will be overwritten by debconf!”
> Cela signifie que tout ajout (comme SA1_OPTIONS ou HISTORY) sera supprimé lors d’une mise à jour du paquet.
Ajouter des options personnalisées (SA1_OPTIONS et HISTORY)
[modifier | modifier le wikicode]
✅ Méthode propre : créer un fichier complémentaire /etc/sysstat/sysstat.conf
[modifier | modifier le wikicode]Ce fichier n’est pas géré par debconf et ne sera donc jamais écrasé.
Crée-le avec la commande :
sudo nano /etc/sysstat/sysstat.conf
Ajoute ensuite :
# Options pour la collecte des statistiques (via sadc)
SA1_OPTIONS="-S DISK"
# Durée de rétention des fichiers journaliers (en jours)
HISTORY=7
Puis, dans le script /usr/lib/sysstat/debian-sa1, ajoute la ligne suivante juste après :
. /etc/default/sysstat
pour charger ce fichier supplémentaire :
[ -f /etc/sysstat/sysstat.conf ] && . /etc/sysstat/sysstat.conf
Ainsi, tes paramètres seront pris en compte à chaque exécution de debian-sa1, sans risque d’être perdus.
Définir la rétention dans /etc/cron.daily/sysstat (autre option)
[modifier | modifier le wikicode]Une autre possibilité est de définir la variable directement dans le script de rotation :
sudo nano /etc/cron.daily/sysstat
Ajoute avant l’appel à sa2 :
HISTORY=7
export HISTORY
Par défaut, Debian garde 7 jours de logs.
Tu peux étendre cette durée à 14 ou 30 jours selon tes besoins.
Exemple complet pour Ubuntu
[modifier | modifier le wikicode]
/etc/default/sysstat
[modifier | modifier le wikicode]ENABLED="true"
/etc/sysstat/sysstat.conf
[modifier | modifier le wikicode]SA1_OPTIONS="-S DISK"
HISTORY=14
/etc/cron.d/sysstat
[modifier | modifier le wikicode]*/15 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
Résumé
[modifier | modifier le wikicode]| Élément | Fichier | Description |
|---|---|---|
| Activation du service | /etc/default/sysstat
|
Active la collecte (ENABLED=true)
|
Options sadc (type de stats)
|
/etc/sysstat/sysstat.conf
|
Exemple : SA1_OPTIONS="-S DISK"
|
| Durée de rétention | /etc/sysstat/sysstat.conf ou /etc/cron.daily/sysstat
|
Exemple : HISTORY=7
|
| Fréquence de collecte | /etc/cron.d/sysstat
|
Exemple : */15 * * * * pour 15 min
|