eZ Server Monitor vous permet d'afficher plusieurs informations de votre machine Unix afin de la monitorer. Deux versions sont disponibles : Web ou en script Bash.

eZ Server Monitor `Web

Dans sa version Web, eZ Server Monitor est un script PHP qui regroupe sur une seule page diverses informations séparées en blocs :

  • System : nom de la machine, OS, version du kernel, uptime, date du dernier démarrage, nb d’utilisateur(s) connecté(s), date de la machine
  • Load average : graphiques indiquant la charge CPU avec le pourcentage (1 minute, 5 minutes et 15 minutes)
  • Network usage : affichage de l’adresse IP de chaque interface réseau avec les données transmises et reçues
  • CPU : modèle, fréquence, nombre de coeurs, cache L2, bogomips
  • Disk usage : tableau représentant chaque point de montage avec l’espace disponible, utilisé et total
  • Memory : tableau contenant la quantité disponible, utilisée et totale de la mémoire vive
  • Swap : tableau contenant la quantité disponible, utilisée et totale du Swap
  • Last login : affichage des 5 dernières connexions utilisateur
  • Ping : effectue un ping sur les sites définis dans le fichier de configuration
  • Services : affiche l’état (disponible ou non) des services définis dans le fichier de configuration

Chaque bloc peut être actualisé manuellement.

Vous pouvez télécharger la dernière version en cliquant ici. Les pré-requis sont simples : une machine fonctionnant sur un environnement Unix, un serveur Web (Apache, Nginx, …) et PHP.

eZ Server Monitor `sh

Dans sa version Bash (eSM`sh), eSM vous permet également de retrouver ces informations sur votre terminal Unix.

Chaque bloc peut être affiché de manière indépendante grâce aux différentes options proposées :

  • -h, -u, --help or --usage : affiche l’aide
  • -v or --version : affiche la version du script
  • -C or --clear : efface le terminal (doit être inséré avant tout autre argument)
  • -a or --all : affiche tous les blocs
  • -s or --system : informations du système (OS et distribution, kernel, nom de la machine, uptime, nombre d’utilisateurs connectés, date du dernier démarrage, date de la machine)
  • -e or --services : vérifie la disponibilité d’un service (peut être configuré)
  • -n or --network : informations réseau (IP LAN ; IP WAN)
  • -p or --ping : ping sur quelques sites (peut être configuré)
  • -c or --cpu : informations du CPU (modèle, fréquence, cache L2, bogomips)
  • -m or --memory : informations mémoire vive (disponible et totale)
  • -l or --load : charge du CPU et nombre de processus
  • -t or --temperatures : affiche la température du CPU, système et des disques durs (facultatif et nécessite hddtemp et/ou lm-sensors d’installés ; peut être configuré)
  • -d or --disk : espace disque (top 5)

Ainsi, pour afficher l’ensemble des blocs, il suffit de lancer la commande suivante :

./eZServerMonitor.sh -Ca

La documentation détaille l’ensemble des possibilités du script.

Pourquoi un tel projet ?

Une question qu'on pourrait se poser : pourquoi se casser la tête à créer un tel moniteur alors qu'il en existe déjà pas mal ?

Je sais qu'il existe des dashboards de ce type mais je les trouve soit trop complet, soit trop simple. Je ne veux pas de graphiques avec plein de courbes, des données à tout va et mal agencées, une installation laborieuse, une compatibilité branlante suivant les distributions Linux, etc...

L'avantage d'eZ Server Monitor est qu'il est extrêmement léger et très simple d'installation. La configuration des modules en version `Web se fait via un fichier JSON.
Il suffit de copier le contenu de l'archive téléchargée dans son vhost pour voir son dashboard. C'est très simple et rapide !
Pareil pour la version Bash ! Tout est dans un seul fichier et la configuration est très facile.

Bien sûr, eZ Server Monitor n'est pas parfait et ne peut pas répondre à tous les besoins ! Le projet évolue de jour en jour, des demandes d'amélioration ou de correction sont soumises régulièrement et je m'efforce de répondre à tout le monde !

Participer à l'évolution du projet

Le code source des deux versions est disponible sur GitHub. Vous pouvez faire un fork et proposer votre pull request !

Historique du projet

Après une première version finalisée en 2009, j'ai décidé de reprendre totalement le projet en partant de zéro. Dans sa version Web, le fonctionnement est résolument différent de la première version, la configuration plus simple et l'interface beaucoup plus agréable !

La version Bash a également été refaite. Les bases ont été reprises mais le script est beaucoup plus simple et la configuration des différents modules est plus aisée.

Quelques liens