MDstable
NoteSnippetChecklistPlaybook

Monitoring système Linux

Surveiller CPU, RAM, disque, processus et journaux système

snippetbeginner 2025-05-10 3 min read
linuxmonitoringtophtopjournalctlsystemctlperformance

Processus et CPU

bash
Variables
{{SERVICE}}
# Vue temps réel
top
htop # plus lisible, nécessite installation
# Snapshot one-shot
ps aux # tous les processus
ps aux --sort=-%cpu | head -20 # top CPU
ps aux --sort=-%mem | head -20 # top RAM
# Trouver un processus
pgrep nginx
pidof nginx
ps aux | grep {{SERVICE}}
# Arborescence des processus
pstree -p

Mémoire

bash
Variables
{{PID}}
# Vue globale
free -h
# Détail par processus
cat /proc/{{PID}}/status | grep -i vm
# Cache / buffers
vmstat -s
cat /proc/meminfo
# Swap
swapon --show

Disque et I/O

bash
# Utilisation des partitions
df -h
df -Th # avec type de filesystem
# Utilisation par répertoire
du -sh
du -sh /var/log/ | sort -rh | head -10
# I/O en temps réel
iostat -x 2 # toutes les 2 secondes
iotop # processus par I/O (besoin root)
# Inodes (fichiers)
df -i
# Trouver les gros fichiers
find -type f -size 2>/dev/null | sort -rh

Réseau

bash
# Connexions actives
ss -tuln # ports en écoute
ss -tunp # avec PID
netstat -tulnp # alternative (ancien)
# Trafic temps réel
iftop # par interface
nethogs # par processus
nload # graphique par interface
# Bande passante
sar -n DEV 1 5 # stats réseau sur 5 secondes

Journaux système

bash
Variables
{{SERVICE}}
# journalctl — systemd
journalctl -xe # erreurs récentes
journalctl -u {{SERVICE}} # logs d'un service
journalctl -u {{SERVICE}} -f # suivi en temps réel
journalctl --since "1 hour ago"
journalctl --since "2025-05-01" --until "2025-05-02"
journalctl -p err # seulement les erreurs
journalctl --disk-usage # taille des logs
# Logs classiques
tail -f /var/log/syslog
tail -f /var/log/auth.log
tail -100f /var/log/nginx/error.log
# Recherche dans les logs
journalctl -u nginx | grep "error"
grep "Failed password" /var/log/auth.log | tail -20

Services systemd

bash
Variables
{{SERVICE}}
# État d'un service
systemctl status {{SERVICE}}
systemctl is-active {{SERVICE}}
systemctl is-enabled {{SERVICE}}
# Gérer un service
systemctl start {{SERVICE}}
systemctl stop {{SERVICE}}
systemctl restart {{SERVICE}}
systemctl reload {{SERVICE}} # rechargement config sans arrêt
# Démarrage automatique
systemctl enable {{SERVICE}}
systemctl disable {{SERVICE}}
# Lister tous les services
systemctl list-units --type=service --state=running
systemctl list-units --type=service --state=failed
# Recharger la configuration systemd
systemctl daemon-reload

Charge système

bash
# Charge moyenne (1, 5, 15 min)
uptime
cat /proc/loadavg
# Nombre de CPUs
nproc
lscpu | grep "^CPU(s)"
# Saturation : load avg > nb_cpus = système saturé
# Exemple : 8 CPUs, load 12 = saturé à 150%
# Top consommateurs
pidstat -u 1 5 # CPU par processus
pidstat -d 1 5 # I/O par processus

Températures et matériel

bash
# Températures CPU
sensors # lm-sensors
cat /sys/class/thermal/thermal_zone/temp
# Disques
smartctl -a /dev/sda | grep -i temp
hddtemp /dev/sda
# DMESG (erreurs matérielles)
dmesg -T | grep -i "error\|fail\|warn" | tail -30
💡 Tip —

Pour surveiller plusieurs serveurs, privilégier htop avec SSH ou des outils centralisés (Grafana + node_exporter). watch -n 2 df -h est utile pour monitorer l'espace disque qui se remplit.

OPS·BRAIN v1.09 notes · SysAdminlocal