Mes différentes activités m'ayant à de multiples reprises mené à administrer des serveurs devant absolument rester accessibles 24h/24 et 7 jours sur 7, j'ai très tôt compris l'intérêt d'automatiser la surveillance et certaines tâches d'administration.
A l'époque du Minitel, j'avais inséré dans le moniteur vidéotex des systèmes de détection de boucle infinie relançant des processus fautifs, et même monté un système me prévenant par "Alphapage" en cas de coupure de courant, me donnant une chance de réarmer un disjoncteur "trop émotif" avant que les onduleurs ne soient épuisés.
Bien plus tard j'ai utilisé Big Brother (qui semble être en voie de disparition...) et Nagios. Cependant, bien que très satisfait par leurs capacités de détection de problèmes, d'alertes et de présentation, j'étais déçu par leur faiblesse à lancer des actions correctives. En effet, sachant que dans 80 à 90% des cas il suffit de relancer un service pour que tout rentre dans l'ordre, pourquoi ne pas automatiser cette tâche directement via le système de surveillance ?
Une réponse partielle m'a été fournie par monit. Malheureusement, si il est très bien conçu pour prendre des mesures préventives ou correctives, son interface de suivi est forcément sur le serveur surveillé, ce qui finit par poser des problèmes quand on a plusieurs machines sous sa responsabilité. Tildeslash (l'entreprise derrière monit) semble pourtant avoir eu conscience du problème et crée m/monit, mais ne publie plus que quelques copies d'écrans et une promesse de sortie d'une nouvelle version.
Après des mois d'attente je me suis décidé à créer un substitut utilisable, et me suis donc lancé en m'inspirant des quelques copies d'écrans disponibles.
Le résultat tient aujourd'hui en six tables MySQL, un peu plus de 1450 lignes de PHP, et un peu plus de 900 lignes de HTML "agrémentée" de plus de 200 lignes d'instructions Smarty.
Pour en savoir plus, vous pouvez consulter quelques captures d'écrans ou suivre ce projet sur SourceForge (pages en anglais).