Faut-il coder qqchose from scratch, ou utiliser un système existant ? Les systèmes existants sont en général peu modulaires. Par exemple, il est difficile de combiner à la fois des requêtes SNMP et des scripts shell.
Quels sont les systèmes existants ?
- Cricket : écrit en perl, grapher pourri.
- Cacti : tout intégré.
- d'autres ?
Que faut-il monitorer ?
Sur tous les serveurs
- uptime
- charge sur 1, 5, 15 min
- nombre de processus
- trafic réseau sur toutes les interfaces
- espace disque sur tous les disques
- mémoire virtuelle, d'une manière qui veut dire qqchose (cbien de buffer, cache, etc)
- swapin/swapout
- io in/io out
- interrupts (en soustrayant les intr horloge ?)
- context switchs
Sur la plate-forme mail
- nombre de mails/minute
- nombre de mails rejetés/minute
- taille de la queue totale
- taille de la queue en séparant : < 1h, < 12h, <24h, < 5d, >. également mails frozen, bounces, autres
Etude des perfs
- temps mis pour envoyer un mail jusqu'au moment où il est dans une mailbox IMAP
- temps mis pour envoyer un mail jusqu'au moment où il a bien été forwardé et recu
Sur la plate-forme web
Comme il y a plusieurs serveurs, il faut faire les tests en boite noire (vue extérieure) et boite blanche (sur chaque serveur)
- nombre de requetes/seconde sur chaque serveur
- trafic/seconde d'après Apache sur chaque serveur
- répartition des slots comme dans /server-status sur chaque serveur
- temps mis pour charger une grosse page statique sur chaque serveur et en boite noire
- temps mis pour charger une page avec pas mal de PHP sur chaque serveur et en boite noire
- temps mis pour charger une page avec pas mal de MySQL sur chaque serveur et en boite noire
Sur le serveur MySQL
- données fournies par mtop (éventuellement, lire le code et le recoder)
Sur les serveurs DNS
- vérifier qu'il est possible de faire une query sur un domaine hébergé par Apinc (sur chaque serveur)
- vérifier qu'il est possible de faire une query sur un domaine non hébergé par Apinc depuis Apinc (sur chaque serveur)
Sur le serveur Jabber
- nombre de connexions utilisateurs (total, non crypté, SSL)
- nombre de connexions serveurs
Que monitorer en plus avec Nagios
- "ping"
- ports ouverts
- pour la plupart des tests, il est possible de définir un seuil d'alerte (exemple : charge sur les serveurs)
Implémentation