Surveillance système avec Zabbix : métriques CPU, mémoire, disque, réseau et processus

Fondements de la surveillance système

L'objectif principal de la surveillance est d’assurer la continuité, la fiabilité et la sécurité des services informatiques. En surveillant en continu l’état des systèmes, les équipes techniques peuvent détecter rapidement les anomalies, anticiper les pannes et maintenir une disponibilité optimale des applications critiques.

Pourquoi surveiller ?

  • Supervision continue sans interruption
  • Réactivité face aux changements d'état du système
  • Garantie de stabilité et de sécurité des services
  • Maintenance d'une expérience utilisateur fluide

Quelles métriques surveiller ?

Un bon système de surveillance couvre plusieurs couches technologiques :

  • Matériel : serveurs physiques, routeurs, commutateurs, pare-feux
  • Système : utilisation CPU, occupation mémoire, espace disque, trafic réseau, état des processus, connexions TCP
  • Services : disponibilité de Nginx, PHP, Tomcat, Redis, MySQL, etc.
  • Application web : temps de réponse, latence, chargement de page
  • Journaux : analyse via ELK ou solutions dédiées (ex: Logging-as-a-Service)
  • Sécurité : pare-feu applicatif (WAF), intrusion detection, gestion des accès
  • Réseaux distribués : suivi multi-datacenter avec outils comme Smokeping
  • Métriques métier : volume de trafic généré par une campagne, taux d'inscription, retour sur investissement

Outils populaires de surveillance

  • Zabbix : solution open source complète pour la collecte, l’alerte et la visualisation
  • Lepus : spécialisé dans la surveillance des bases de données
  • Open-Falcon : conçu par Xiaomi pour des environnements à grande échelle
  • Prometheus : très utilisé dans les architectures conteneurisées (Docker, Kubernetes)

Installation rapide de Zabbix Server (version 4.0)

Voici les étapes clés pour déployer un serveur Zabbix complet sur CentOS/RHEL 7.

  1. Ajout du dépôt miroir Tsinghua : ``` yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
  2. Installation des comopsants principaux : ``` yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server systemctl start mariadb && systemctl enable mariadb
  3. Création de la base de données : ``` mysqladmin password 'MotDePasseRoot' mysql -uroot -p'MotDePasseRoot' <<EOF CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'MotDePasseZabbix'; FLUSH PRIVILEGES; EOF
  4. Import du schéma initial : ``` zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'MotDePasseZabbix' zabbix
  5. Configuration du serveur Zabbix : ``` sed -i "s/# DBHost=.*/DBHost=localhost/" /etc/zabbix/zabbix_server.conf echo "DBPassword=MotDePasseZabbix" >> /etc/zabbix/zabbix_server.conf
  6. Démarrage du service : ``` systemctl start zabbix-server systemctl enable zabbix-server
  7. Configuration du fuseau horaire Apache : ``` sed -i "s|# php_value date.timezone .*|php_value date.timezone Asia/Shanghai|" /etc/httpd/conf.d/zabbix.conf
  8. Lancement du serveur web : ``` systemctl start httpd
    
    

Étapes post-installation via interface web

  1. Accéder à http://<IP_SERVEUR>/zabbix
  2. Vérifier que toutes les dépendances sont valides
  3. Entrer les identifiants de connexion à la base de données
  4. Configurer le nom du serveur Zabbix
  5. Valider l'installation
  6. Se connecter avec les identifiants par défaut : Admin / zabbix
  7. Changer la langue vers le chinois dans les préférences utilisateur

Résolution des problèmes d'affichage chinois

Les graphiques peuvent afficher des carrés noirs à cause de l'absence de polices appropriées.

yum install -y wqy-microhei-fonts
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
cd /var/www/html/zabbix/include && sed -i 's/DejaVuSans/graphfont/g' defines.inc.php

Analyse des ressources système

Informations processeur

Le nombre total de cœurs logiques est calculé selon la formule suivante :

TotalCœursLogiques = NombreSockets × CœursParSocket × ThreadsParCœur

Commandes utiles :

# Nombre de sockets physiques
grep 'physical id' /proc/cpuinfo | sort -u | wc -l

# Cœurs par socket
grep 'cpu cores' /proc/cpuinfo | uniq

# Total de processeurs logiques
grep 'processor' /proc/cpuinfo | wc -l

# Vue synthétique
lscpu

Utilisation CPU

La commande top fournit une vue dynamique de l’utilisation processeur :

  • us : temps passé en mode utilisateur (applications)
  • sy : temps passé en mode noyau (appels système)
  • id : inactivité
  • wa : attente entrée/sortie disque

Des outils alternatifs comme htop ou glances offrent une interface plus conviviale.

Charge système (Load Average)

Les valeurs affichées par uptime ou w représentent la moyenne de charge sur 1, 5 et 15 minutes.

  • Pour un CPU quad-core, une charge inférieure à 4 est acceptable
  • Une charge supérieure au nombre de cœurs indique un goulot d’étranglement
w
cat /proc/loadavg

Surveillance mémoire

Utilisation de la commande free :

free -h

Explication des champs :

  • MemAvailable : mémoire réellement disponible pour de nouveaux processus
  • buff/cache : tampons (buffer) pour écriture, cache pour lecture
  • Swap : partition d’échange — son activation ralentit fortement le système

Script simple de surveillance mémoire :

#!/bin/bash
SEUIL=100
while true; do
  MEM_LIBRE=$(free -m | awk '/^Mem:/ {print $NF}')
  if (( MEM_LIBRE < SEUIL )); then
    echo "$(date): Attention ! Mémoire disponible = ${MEM_LIBRE} Mo" | mail -s "Alerte mémoire" admin@exemple.com
  fi
  sleep 60
done

Espace disque et I/O

Commande de base :

df -h

Pour analyser l’utilisation inode :

df -i

Outil avancé de surveillance I/O :

iotop

Trafic réseau

Commandes essentielles :

ip addr show          # Configuration IP
ss -tulnp             # Écoute des ports
iftop                 # Bande passante en temps réel
nethogs               # Utilisation par processus

Gestion des processus

Commandes courantes :

ps aux | grep nginx
top -p $(pgrep mysql)
glances

Architecture complète de surveillance

Une stratégie efficace repose sur une approche multicouche :

  • Protocole SNMP pour les équipements réseau
  • Agents locaux (Zabbix Agent, Telegraf) pour les métriques système
  • Checks actifs pour tester la disponibilité des services web
  • Collecte centralisée des logs via Filebeat ou Fluentd
  • Corrélation des événements et alertes intelligentes

Étiquettes: Zabbix surveillance-système métriques-cpu analyse-mémoire monitoring-disk-io

Publié le 7 septembre à 02h46