Un réseau informatique peut être l’objet de nombreux problèmes : que ce soit l’indisponibilité d’un serveur ou une défaillance physique du réseau, les risques sont multiples, et les conséquences en général très importantes. Ces pannes peuvent ainsi bloquer un réseau complet, paralysant les outils de travail d’une entreprise, ou encore empêcher les clients d’accéder au site Web d’une société. En plus du manque à gagner que peuvent engendrer ces pannes, elles mettent aussi en doute le sérieux de l’entreprise. Il faut donc tout faire afin d’améliorer la fiabilité de son système informatique.
Les attentes
Empêcher les pannes
Il y a une nécessité d’empêcher les pannes. Bien sûr, une étude sérieuse de la conception du système permet d’éviter la plupart des problèmes, mais, comme nous le savons tous, il est impossible de réaliser un système informatique infaillible. De la défaillance matérielle à la défaillance logicielle, les événements provoquant une panne sur le réseau interviennent bien souvent de façon imprévisible. Tout réseau est donc susceptible de tomber en panne de manière inopinée.
Puisqu’on admet l’impossibilité de mettre en place un système totalement fiable dont la disponibilité serait permanente, la seule solution possible serait d’analyser en permanence nos installations, et agir le plus vite possible lorsque des conditions critiques aboutissant à une panne sont atteintes. Mais il est impossible de surveiller en permanence le bon fonctionnement de l’ensemble de ses systèmes. D’autres parts, collecter l’ensemble des informations du réseau demanderait un travail considérable.
Automatiser la surveillance
Afin de bénéficier d’une surveillance permanente et efficace de l’ensemble de nos réseaux informatiques, il est nécessaire de confier la tâche de surveillance à un logiciel, qui aura pour tâche de relever à intervalles réguliers toutes les caractéristiques du système. On pourra ainsi bénéficier d’une surveillance permanente, et locale à chaque système informatique installé, nous permettant d’agir dès qu’un problème se présentera.
Être alerté rapidement
L'utilisation d’un logiciel de surveillance va nous permettre de gérer des systèmes d’alarme, que le programme enclenchera dans des moments prédéfinis. Nous pouvons ainsi demander au logiciel de nous alerter lorsqu’un serveur atteint des conditions de fonctionnement critiques ; ou encore lorsqu’un service est subitement devenu indisponible. On peut envisager d’être prévenu de ces problèmes par téléphone, mail ou encore SMS. On peut ainsi être tenu au courant en permanence des événements du réseau, et agir immédiatement en cas de problème.
Archiver les événements du réseau
L’utilisation d’un utilitaire de surveillance nous permettra aussi de garder en archive l’ensemble des données du système. Ces archives seront très instructives sur le comportement de la machine, en nous donnant la possibilité de connaître l’ensemble des événements qui ont conduit au plantage du service ; l’intérêt est ainsi double, car cela va nous permettre de mieux comprendre la panne et de remettre ainsi beaucoup plus vite le serveur sur pied, ainsi que de prendre connaissance de nouvelles « fragilités » dans un réseau.
Automatiser les tâches
Beaucoup de pannes sont très simples à réparer, et leur réparation facilement réalisable à base de script. Grâce à un logiciel de surveillance adapté, nous pourrions lancer des scripts dès que la panne se produit. Cela nous permettrait de réparer de façon quasi-instantanée un service, et aussi de réaliser automatiquement quelques opérations de maintenance, telles que la purge des disques durs en cas de saturation.
Quoi surveiller ?
Les réseaux étant constitués d’un très grand ensemble d’éléments, il peut être difficile de cibler les équipements à surveiller en priorité.
Services
Les réseaux ayant généralement pour rôle de permettre l’accès à des services proposés par des machines distantes, il va de soit que les machines hébergeant ces services doivent être en permanence surveillées. Directement accessibles par l’utilisateur, l’indisponibilité de ces services serait très vite pénalisante pour l’ensemble du réseau, et discréditerait réellement le travail de monitoring. Nous devons donc demander au logiciel de monitoring de s’assurer en permanence de la bonne marche de ces services.
Matériel actif
La surveillance des services ne suffit pas ; A quoi sert-il de surveiller la bonne fonctionnalité d’un système si certains utilisateurs ne peuvent y accéder du fait d’un routeur inutilisable ? Les routeurs, switchs et autres équipements intermédiaires doivent donc être surveillés également, afin de s’assurer que les moyens d’accès aux services soient opérationnels.
Comment surveiller ?
La surveillance en fonction du modèle OSI
Les couches OSI nous offrent différentes possibilités d’analyse d’un réseau, réparties dans les couches 3, 4, 6 et 7. Correctement utilisées, celles-ci nous permettront de récolter des informations essentielles sur l’état du réseau et de ces services :
- La couche 3 nous offre le protocole « ICMP echo » (ping, un des outils les plus basiques), qui permet de savoir si une machine est bien connecté sur le réseau, et en état de marche. Il s’agit généralement du premier test effectué lors d’un contrôle, qui permet de savoir si l’équipement cible est bel et bien joignable.
- La couche 4 nous permet de tester les différents ports d’un serveur, en utilisant une connexion TCP ou UDP. Bien que cela permette de savoir si un service est bien présent sur une machine, la couche 4 ne nous permet pas de savoir si un service est pleinement fonctionnel.
- La couche 5 offre Netbios, uniquement sous Windows, qui permet de recueillir différentes statistiques sur une machine. Cette disponibilité seulement sous Windows limite énormément son utilisation.
- La couche 6 nous permet d’utiliser SNMP(Single Network Management Protocol), l’outil de supervision de réseau. Utilisé par de nombreux routeurs, ce protocole nous permettra de surveiller efficacement les équipements intermédiaires.
- La couche 7 nous permet un test complet des différents services d’une machine. On peut en effet imaginer des tests qui effectueraient juste un ensemble de requête vers le service afin de tester pleinement sa disponibilité.
Les couches 6 et 7 permettent aux éléments surveillés de communiquer eux même leurs informations au logiciel de monitoring. Dans la couche 6, on peut utiliser SNMP pour diffuser les informations en broadcast, et sur la couche 7 on peut mettre en place un système d’agent installé sur la machine surveillée.
La surveillance d'autres facteurs
Il y a des caractéristiques purement « systèmes » à surveiller, qui vont nous permettre de prévenir les pannes, et d’analyser les capacités des équipements à supporter les demandes. Les taux de charge CPU et mémoire nous donnent un aperçu intéressant de la charge du serveur, et pourraient permettre des systèmes de régulation afin de garantir un pourcentage de ressources égal à chaque service. D’autres facteurs, tel que la saturation des disques, sont à prendre en compte car ils peuvent causer une panne du système.
2 outils de monitoring réseau sont couramment utilisés : Nagios et Zabbix. Les deux sont sous licence libre GPL.
ZABBIX
Zabbix est une solution complète de surveillance qui permet de surveiller son réseau à moindre coût. Il peut fonctionner soit par test direct des machines, soit par un système d’agent installé sur la machine envoyant à intervalles réguliers les informations de monitoring. Zabbix offre de nombreuses possibilités d’alertes, par mail ou sms. Il est téléchargeable gratuitement à l’adresse http://www.zabbix.com.
Surveillances des applications
Zabbix utilise principalement SNMP (Single Network Management Protocol) pour collecter ses informations de surveillances. Le programme peut ainsi surveiller n’importe quelle application comme Oracle, WebSphere, WebLogic, Exchange, etc. supportant SNMP, ou tout serveur en utilisant un agent installé en interne sur la machine cible.
Surveillance des serveurs
Le serveur Zabbix tourne sur : AIX, FreeBSD, HP-UX, Linux, MacOSX, OpenBSD, SCO Open Server, Solaris, Tru64/OSF.
L’agent Zabbix tourne sur les mêmes plateformes que le serveur ainsi que sur d’autres plateformes comme : Win NT 4.0/2000/2003/XP, Novell NetWare. La disponibilité de certains services (SMTP, IMAP, POP3, HTTP, SSHD, etc.) peuvent être surveillées sans aucun agent installé. Toute plateforme ou composant réseau supportant SNMP (routeur, switch, hubs, imprimantes…) peut être surveillé de façon simple par Zabbix.
Surveillance du réseau
Zabbix produit en plus des statistiques sur le trafic dans un réseau, une carte donnant une bonne représentation de son infrastructure. Cette carte montre les composants, les connexions, les statuts des composants, et les raisons pour lesquelles un composant n’est pas disponible ou a n’importe quels problèmes. Voici un exemple de carte générée par Zabbix :
Surveillance des performances
L’une des plus importantes utilisations de Zabbix est la surveillance de performance, la charge du processeur, le nombre de processus actifs, nombre de processus, activité du disque, et la taille de mémoire disponible font partie des paramètres système que Zabbix peut surveiller. Zabbix peut produire des graphiques pour aider l’administrateur à identifier des goulots d’étranglement dans le réseau. Voici quelques exemples de graphes :
Utilisation des alertes
Un administrateur peut définir pratiquement n’importe quel état possible pour un déclenchement d’alerte en utilisant des expressions flexibles. Quand ces expressions deviennent vraies (ou fausses), une alerte sera envoyée à l'adresse définie par l’administrateur.
Un programme externe peut être utilisé pour faire suivre les alertes pour, par exemple, les émettre par SMS.
Contrôle de l'intégrité
Zabbix offre la possibilité de contrôler des fichiers critiques pour le système comme les fichiers de configurations, les binaires, le noyau, les scripts … une alerte est déclenchée quand un de ces fichiers est modifié, indiquant ainsi que l’intégrité du système est en danger.
Bien que largement moins répandu que Nagios, Zabbix offre à peu près les mêmes fonctionnalités. Il est plutôt simple à configurer grâce à son interface Web. De plus, son système d'agents permet de surveiller tout type de système y compris les serveurs sous Windows. La difficulté reste son paramétrage car cela prend, tout de même, pas mal de temps à configurer.
Nouvelle alternative à tester
LibreNMS
LibreNMS est un outil de découverte automatique du réseau réalisé sous PHP/MySQL, c'est un fork d'observium. LibreNMS mise sur la simplicité, la facilité du déploiement et supporte la surveillance d'un vaste panel de matériels... Il faudra que je le teste quand j'aurais un peu de temps libre.
Autres solutions bien connues : Cacti, Shinken et OpenNMS.
Conclusion
Ces logiciels de surveillance constituent un moyen très efficace de palier à tous les problèmes que peuvent rencontrer un réseau informatique. En permettant d’éviter au maximum les pannes et d’assurer une remise en service rapide, ces outils permettent d’améliorer de façon significative la disponibilité d’un système.
Ils donnent aussi la possibilité d’étudier son évolution à long terme, afin de mieux évaluer les capacités du réseau et de décider si une mise à niveau est nécessaire. Ces outils ne remplacent pas l’administrateur réseau, mais facilitent grandement son travail. Si vous avez un administrateur système et réseau qui n'utilise pas ou qui n'a pas mis en place ce genre d'outils, je vous suggère de l'y inciter fortement.