Aller au contenu principal

Chapitre 11.1 - Monitoring Système

Objectifs d'Apprentissage​

À la fin de ce chapitre, vous serez capable de:

  • Monitorer CPU, mémoire, disque
  • Utiliser top, htop, iotop
  • Comprendre les métriques système
  • Utiliser vmstat et iostat
  • Configurer des alertes basiques

Outils de Monitoring​

top - Temps Réel​

# Interface interactive
top

# Options
top -u user1 # Par utilisateur
top -p 1234 # Processus spécifique
top -d 2 # Mise à jour toutes les 2 secondes

Métriques affichées:

  • Load average
  • CPU usage
  • Mémoire (RAM, swap)
  • Processus

htop - Version Améliorée​

# Interface colorée
htop

# Installer si nécessaire
sudo apt install htop

Avantages:

  • Interface intuitive
  • Navigation facile
  • Barres de progression
  • Filtrage

iotop - I/O par Processus​

# Monitorer I/O disque
sudo iotop

# Options
sudo iotop -o # Seulement actifs
sudo iotop -a # Accumulé

Métriques Système​

CPU​

# Utilisation CPU
top
htop

# Statistiques CPU
cat /proc/stat
mpstat # sysstat

# Load average
uptime
cat /proc/loadavg

# Interprétation:
# < nombre CPUs: OK
# = nombre CPUs: Utilisation complète
# > nombre CPUs: Surcharge

Mémoire​

# Vue d'ensemble
free -h

# Détails
cat /proc/meminfo

# Par processus
ps aux --sort=-%mem | head

# Statistiques
vmstat -s

Disque​

# Espace disque
df -h

# Utilisation par répertoire
du -sh /home/*

# I/O statistiques
iostat -x 1

# Par processus
sudo iotop

Outils Avancés​

vmstat - Statistiques Système​

# Statistiques toutes les secondes
vmstat 1

# Colonnes importantes:
# r: Processus en attente CPU
# b: Processus bloqués
# swpd: Swap utilisé
# free: Mémoire libre
# si/so: Swap in/out
# us/sy/id: CPU user/system/idle

iostat - I/O Statistiques​

# Installer
sudo apt install sysstat

# Statistiques I/O
iostat -x 1

# Colonnes:
# %util: Utilisation disque
# r/s, w/s: Lectures/écritures par seconde
# rkB/s, wkB/s: KB/s

sar - System Activity Reporter​

# Historique CPU
sar -u

# Historique mémoire
sar -r

# Historique I/O
sar -b

# En temps réel
sar -u 1 10 # CPU, 1 seconde, 10 fois

Scripts de Monitoring​

Monitoring Basique​

#!/bin/bash
# Script monitoring simple

echo "=== CPU ==="
top -bn1 | grep "Cpu(s)" | awk '{print $2}'

echo "=== Mémoire ==="
free -h | grep Mem

echo "=== Disque ==="
df -h / | tail -1

echo "=== Load Average ==="
uptime

Monitoring avec Alertes​

#!/bin/bash
# Monitoring avec alertes

THRESHOLD_CPU=80
THRESHOLD_MEM=80
THRESHOLD_DISK=80

# CPU
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | sed 's/%us,//')
if (( $(echo "$CPU > $THRESHOLD_CPU" | bc -l) )); then
echo "ALERTE: CPU à ${CPU}%"
fi

# Mémoire
MEM=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}')
if [ "$MEM" -gt "$THRESHOLD_MEM" ]; then
echo "ALERTE: Mémoire à ${MEM}%"
fi

# Disque
DISK=$(df -h / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$DISK" -gt "$THRESHOLD_DISK" ]; then
echo "ALERTE: Disque à ${DISK}%"
fi

Monitoring Cron​

Tâche Planifiée​

# /etc/cron.d/monitoring
# Monitoring toutes les 5 minutes
*/5 * * * * root /usr/local/bin/monitor.sh >> /var/log/monitoring.log 2>&1

Script avec Logging​

#!/bin/bash
# /usr/local/bin/monitor.sh

LOG="/var/log/monitoring.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')

{
echo "=== $DATE ==="
echo "CPU: $(top -bn1 | grep 'Cpu(s)' | awk '{print $2}')"
echo "Mémoire: $(free -h | grep Mem | awk '{print $3"/"$2}')"
echo "Disque: $(df -h / | tail -1 | awk '{print $5}')"
echo "Load: $(uptime | awk -F'load average:' '{print $2}')"
echo "---"
} >> "$LOG"

Résumé​

Dans ce chapitre, vous avez appris:

Outils: top, htop, iotop, vmstat, iostat, sar
Métriques: CPU, mémoire, disque, load average
Monitoring: Scripts automatiques, alertes
Cron: Planification monitoring régulier
Pratique: Surveillance continue, détection problèmes


Prochaines Étapes​

Chapitre 11.2: Gestion des Logs
Chapitre 11.3: Monitoring Crons et Alertes


Chapitre créé le: Décembre 2024