Pandora: Documentation fr: Architecture

From Pandora FMS Wiki
Jump to: navigation, search

Revenir à l’Index de Documentation Pandora FMS

1 L’architecture de Pandora FMS

Ce chapitre décrit de manière générale les différents composants de Pandora FMS, leur relation entre eux et comment utiliser l'architecture Pandora FMS pour aborder différents défis en fonction des caractéristiques de votre infrastructure et de sa topologie.

Pandora FMS peut être extrêmement modulaire et décentralisé, ou simple et monolithique. Le composant vital et où presque toutes les informations sont stockées est la base de données MySQL. Tous les composants Pandora FMS peuvent être répliqués et fonctionner dans un environnement purement HA (Actif/Passif) ou dans un environnement en cluster (Actif/Actif avec load balancing).


Arquitectura mejorada.png
Esquema de la arquitectura global de Pandora FMS


Pandora FMS se compose de plusieurs éléments, parmi lesquels les serveurs sont responsables de la collecte et du traitement des données. Les serveurs, avec les informations générées par eux ou par les agents, introduisent les données dans la base de données. La console est la partie chargée d'afficher les données présentes dans la base de données et d'interagir avec l'utilisateur final. Les agents logiciels sont des applications qui s'exécutent dans les systèmes surveillés et collectent les informations pour les envoyer aux serveurs Pandora FMS.

1.1 Serveurs de Pandora FMS

Dans Pandora FMS il y a plus de dix serveurs différents -spécialisés-, en charge des tâches mentionnées ci-dessus. Les serveurs sont intégrés dans une seule application, génériquement appelée "Pandora Server", qui est une application multithread qui exécute simultanément différentes instances ou serveurs spécialisés de Pandora FMS. Ensuite, chacun des serveurs spécialisés de Pandora FMS est décrit.

Les serveurs Pandora FMS sont les éléments chargés d'effectuer les contrôles existants. Ils les vérifient et modifient leur statut en fonction des résultats obtenus. Ils sont également chargés de déclencher les alertes qui sont établies pour contrôler l'état des données.

Le serveur de données Pandora FMS peut fonctionner avec une haute disponibilité et/ou un équilibrage de charge. Dans une architecture très large, plusieurs serveurs Pandora FMS peuvent être utilisés en même temps pour traiter de grands volumes d'informations distribués par différentes zones géographiques ou fonctionnelles. Les serveurs Pandora FMS fonctionnent en permanence et vérifient en permanence si un élément a un problème et s'il est défini comme alerte. Dans ce cas, l'action définie dans l'alerte sera exécutée, comme l'envoi d'un SMS, d'un e-mail ou l'activation de l'exécution d'un script.

Il peut y avoir des serveurs simultanés ; l'un d'eux est le serveur principal et le reste des serveurs sont des serveurs esclaves. Bien qu'il y ait un serveur esclave et un serveur maître, ils fonctionnent tous simultanément. La différence entre les deux est que lorsqu'un serveur du même type tombe en panne (par exemple, un serveur réseau), le serveur maître est chargé de traiter toutes les données associées au serveur qui est tombé en panne.

Le serveur qui reçoit le fichier de données de l'agent, ou qui traite l'information (si elle est de type distant) est celui qui déclenche les alertes associées aux données qu'il vient de traiter.

Pandora FMS gère automatiquement l'état de chaque serveur, son niveau de charge et d'autres paramètres. L'utilisateur peut surveiller l'état de chaque serveur via la section état du serveur de la console Web.

1.1.1 Serveur de données

Il traite les informations envoyées par les agents logiciels. Les agents logiciels collectent les informations localement à partir des systèmes dans lesquels ils sont installés et construisent un paquet d'informations au format XML. Ces paquets au format XML sont envoyés au serveur. Dans le serveur, ils sont reçus dans un répertoire spécifique, le serveur traite tous les fichiers qui arrivent dans ce répertoire d'entrée et stocke les informations dans la base de données.

Différents serveurs de données peuvent être installés sur différents systèmes ou sur le même hôte en utilisant des serveurs virtuels. Plusieurs serveurs peuvent fonctionner ensemble pour de très grands environnements qui ont besoin de mieux profiter du matériel, par exemple dans le cas d'environnements avec plusieurs processeurs.

Malgré sa simplicité et sa faible utilisation des ressources, le serveur de données est l'un des éléments critiques du système, car il traite toutes les informations des agents et génère des alertes et des événements système basés sur ces données. Le serveur de données ne fonctionne qu'avec les données fournies en XML par les agents logiciels et n'effectue aucun type de vérification à distance.

1.1.2 Serveur réseau

Il exécute des tâches de surveillance à distance via le réseau : contrôles ICMP (ping, temps de latence), requêtes TCP et requêtes SNMP. Lorsque vous affectez un agent à un serveur, vous spécifiez le serveur réseau qui exécutera les contrôles pour cet agent. Par conséquent, il est très important que les machines exécutant les serveurs réseau aient une "visibilité réseau" afin d'exécuter les tâches de surveillance réseau qui leur sont assignées. En d'autres termes, si vous allez sur des systèmes ping sur un réseau donné, le serveur réseau peut atteindre ce réseau.

Par exemple, si un module est créé pour faire un contrôle ping à 192.168.1.1.1 et que cet agent/module est assigné à un serveur sur un réseau 192.168.2.0/24 sans accès au réseau 192.168.1.0/24, il retournera toujours DOWN, puisqu'il ne peut le contacter.

Pandora 1.3 Network&DataServer Arch.png

1.1.3 Console SNMP

Ce serveur, appelé console de trap SNMP, utilise le démon standard du système de collecte de trap, snmptrapd. Ce démon reçoit les traps SNMP et la console SNMP de Pandora FMS les traite et les stocke dans la base de données. Il se charge également de lancer les alertes associées aux trappes SNMP que vous avez définies.

1.1.4 Serveur WMI

WMI est une norme Microsoft permettant d'obtenir des informations et des applications du système d'exploitation à partir d'environnements Microsoft Windows. Pandora FMS dispose d'un serveur dédié pour surveiller les systèmes Windowsà distance via le protocole WMI.

1.1.5 Serveur de reconnaissance

Il s'appelle maintenant Discovery server, et est utilisé pour analyser régulièrement le réseau et détecter de nouveaux systèmes en fonctionnement. Le serveur de découverte peut également appliquer un modèle de surveillance pour les systèmes nouvellement détectés et appliquer automatiquement les modules par défaut définis dans ce modèle, pour commencer immédiatement à surveiller le nouveau système. En utilisant les applications système nmap, xprobe et traceroute, il est également capable de détecter les systèmes d'exploitation et d'établir la topologie du réseau selon les systèmes qu'il connaît déjà.

Le serveur " Discovery " permet également de lancer des tâches planifiées et de lancer une surveillance spécifique contre les environnements virtuels, le cloud, les bases de données ou toutes les applications ou environnements qui nécessitent d'explorer ce qui existe avant de commencer à le surveiller.

1.1.6 Serveur de compléments (Plugins)

Il exécute des contrôles complexes à distance à l'aide de scripts personnalisés. Ils peuvent être développés dans n'importe quel langage et intégrés dans l'interface Pandora FMS, en étant gérés de manière centralisée. Ceci permet à un utilisateur avancé de définir ses propres tests complexes, développés par lui-même, et de les intégrer dans l'application afin qu'ils puissent être utilisés de manière confortable et centralisée depuis Pandora FMS.

1.1.7 Serveur de prédiction

Il s'agit d'une petite composante d'Intelligence Artificielle qui implémente statistiquement une prévision de données basée sur des données passées avec une profondeur allant jusqu'à 30 jours en quatre références temporelles, permettant de prédire les valeurs d'une donnée avec un intervalle de 10-15 minutes, et de savoir si une donnée à l'heure actuelle est anormale par rapport à son historique. Fondamentalement, nous devrons construire une ligne de base dynamique avec un profil hebdomadaire.

Ce serveur gère également le calcul de la surveillance des services (BPM) à partir de Pandora FMS version 5.0.

1.1.8 Serveur de contrôle WEB (Goliat)

Info.png

Le serveur de contrôle WEB (Goliat), le serveur d'exportation, le serveur d'inventaire, le serveur de corrélation d'événements et le serveur réseau d'entreprise sont disponibles uniquement dans la version Pandora FMS Enterprise.

 


Le serveur de contrôle WEB est utilisé pour les tests de charge. Il effectue des contrôles Web complets, tels que le processus d'identification d'un utilisateur, le passage de paramètres dans un formulaire, le contrôle du contenu, la navigation dans les menus, etc. Il est utilisé pour les contrôles de disponibilité (fonctionne, ne fonctionne pas) et pour obtenir des temps de latence (en secondes) d'expérience de navigation complète, incluant les ressources associées à la page (images, texte intégral, etc.).

1.1.9 Serveur d’exportation

(Uniquement pour la version Enterprise)

Le serveur d'exportation Pandora FMS permet d'exporter les données d'un appareil surveillé d'une installation Pandora FMS à une autre, et donc de répliquer les données. Ceci est particulièrement utile lorsque vous avez un déploiement important, avec plusieurs installations Pandora FMS, et que vous souhaitez centraliser certaines informations critiques en une seule.

1.1.10 Serveur d’inventaire

(Uniquement pour la version Enterprise)

Le serveur d'inventaire obtient et affiche les informations d'inventaire des systèmes : logiciel installé, modèle des éléments matériels, disques durs, services fonctionnant dans le système, etc. Vous pouvez obtenir ces informations à distance et localement, via les agents logiciels.

1.1.11 Servidor de correlación de eventos

(Uniquement pour la version Enterprise)

Ce serveur spécial est utilisé pour exécuter des événements et générer des alertes, il n'exécute pas de tâches de surveillance. Comme les autres, il peut être spécifié dans la configuration s’il doit démarrer ou non. Ce serveur, contrairement aux autres, n'a pas de configuration de thread ou de haute disponibilité.

1.1.12 Serveur réseau enterprise SNMP et ICMP

(Uniquement pour la version Enterprise)

Il s'agit de deux serveurs supplémentaires qui utilisent des stratégies avancées pour exécuter des contrôles ICMP (ping) et SNMP (polling), ce qui leur permet de produire une performance bien supérieure à celle de la version Opensource, en échange de certaines exigences assez délicates (notamment SNMP), puisqu'ils fonctionnent avec des OID préalablement validées par le serveur ouvert.

1.1.13 Serveur Satellite

(Uniquement pour la version Enterprise)

Ce composant est installé séparément sur le serveur principal de Pandora FMS. Il permet d'explorer et de détecter de nouveaux systèmes, de surveiller à distance avec ICMP et SNMP de haute vitesse, d'exécuter des plugins à distance et permet le transfert des fichiers de données des agents logiciels au serveur principal, agissant comme proxy des agents. Il envoie les données de surveillance sous forme de fichiers XML via une connexion Tentacle, de sorte qu'il n'a pas besoin d'une connexion à la base de données.

Il existe un chapitre spécifique consacré à la surveillance de Topologies distribuées avec Satellite Server

1.1.14 Serveur WUX

C'est un serveur qui, combiné à la grille de sélénium, permet d'effectuer des transactions WEB complexes de manière distribuée. Il diffère du simple contrôle WEB (Goliath) par le fait que ces transactions sont exécutées dans un navigateur réel, et que leur sortie est capturée et traitée pour être affichée étape par étape, y compris la capture des erreurs, ainsi que les statistiques détaillées de toutes les requêtes WEB.

1.2 Console web de Pandora FMS

C'est l'interface utilisateur de Pandora FMS. Cette console d'administration et d'exploitation permet à différents utilisateurs, avec différents privilèges, de contrôler l'état des agents, de voir les informations statistiques, de générer des graphiques et des tableaux de données, ainsi que de gérer les incidents avec son système intégré. Il est également capable de générer des rapports et de définir de manière centralisée de nouveaux modules, agents, alertes et de créer d'autres utilisateurs et profils.

La console web est programmée en PHP et ne nécessite pas l'installation de logiciels supplémentaires par l'utilisateur final. Il est accessible à partir de n'importe quelle plate-forme moderne supportant HTML et CSS. Firefox 2.x ou Chrome est recommandé. L'expérience de l'utilisateur avec des navigateurs comme Internet Explorer 6 est très médiocre, et les fonctionnalités essentielles de la console peuvent être perdues.

La console web, à son tour, peut fonctionner sur plusieurs serveurs, c'est-à-dire que nous pouvons avoir autant de consoles web que nous le voulons, à la fois pour répartir la charge et pour faciliter l'accès par des problèmes logistiques (grands réseaux, nombreux groupes d'utilisateurs différents, différences géographiques, différences administratives, etc.) Sa seule exigence est de pouvoir accéder au conteneur de données où Pandora FMS stocke tout, la base de données, et dans le cas de la version Enterprise, d'accéder au référentiel de configuration des agents de manière synchronisée (via NFS).

1.3 Base de données de Pandora FMS

Pandora FMS utilise une base de données MySQL dans laquelle il stocke toutes les informations reçues en temps réel, en normalisant toutes les données provenant des différentes sources. C'est le composant le plus important et le plus critique de toute installation Pandora FMS, contenant non seulement les informations et l'historique des données, mais aussi toutes les configurations effectuées au cours du temps. Actuellement, Pandora FMS ne supporte que MySQL/MariaDB/Percona.

Arch-schema.png
La base de données est le coeur de Pandora FMS


Ces données sont gérées automatiquement à partir de Pandora FMS, en effectuant une maintenance périodique et automatique de la base de données, ne nécessitant aucune tâche d'administration de la base de données ou processus manuel assisté par un opérateur ou un administrateur. Ceci est fait au moyen d'une purge périodique des données après une date.

1.4 Agents Software de Pandora FMS

Lorsque nous faisons référence à un agent dans Pandora FMS, il est important de distinguer deux concepts :

  • Agent, ou agent en console, comme conteneur.
  • Software Agent, en tant que logiciel qui s'exécute sur un ordinateur.

1.4.1 Agent (Conteneur)

L'agent Pandora FMS est simplement un élément d'organisation créé dans la console web de Pandora FMS et qui est associé à un groupe de modules (ou éléments de surveillance individuels). De plus, cet agent peut avoir (en option) une ou plusieurs adresses IP associées.

L'agent peut être associé à des modules distants, obtenus par l'intermédiaire de serveurs réseau, WMI, Plugin, etc.

  • Vérification si le moteur est connecté ou en ligne (PING).
  • Vérification de l'ouverture ou de la fermeture d'un port donné.
  • Vérification de la réponse correcte d'une entité réseau, hébergée sur un port matériel spécifique.
  • Vérification si une entité réseau, hébergée à un point spécifique sur le matériel, possède le contenu souhaité.
  • Vérification(s) du matériel par SNMP (détermination MIB).
  • Vérification du temps de latence entre le nœud et les serveurs Pandora FMS.

L'agent peut aussi avoir des modules associés de type "local", qui sont ceux définis dans la configuration de l'agent logiciel et qui doivent également être définis dans l'agent console WEB. Lorsqu'un paquet de données arrive pour la première fois d'un agent logiciel, par défaut le nouvel agent sera créé automatiquement, avec son groupe de modules exécutés localement, dans la console web.

Par conséquent, un " Agent " peut contenir des modules de type distant ou local. Les modules de type distant sont exécutés par les serveurs qui obtiennent les informations à distance (serveur réseau, serveur de reconnaissance...), et les modules de type local sont exécutés par les agents logiciels et collectés et traités par le serveur de données (Data Server).

1.4.2 Agent Software

Les agents logiciels sont installés sur les ordinateurs qui veulent être surveillés localement, en extrayant l'information de l'ordinateur lui-même. Ils sont principalement utilisés dans les serveurs pour surveiller les ressources machines (CPU, RAM, disques...) et les applications installées (MySQL, Apache, JBoss...). Généralement, la surveillance des serveurs et de l'équipement sera effectuée à l'aide d'agents logiciels, tandis que la surveillance de l'équipement réseau sera effectuée à distance sans l'installation d'aucun logiciel.

RecoleDatospandora.png
Illustration : Collecte de données locales sur Pandora FMS


Chaque agent logiciel effectue plusieurs contrôles, appelés modules, qui correspondent chacun à une donnée spécifique, telle que l'utilisation du CPU. Toutes les informations des contrôles effectués sont saisies dans un seul fichier de données au format XML, qui est envoyé au serveur Pandora FMS.

Le processus de copie du paquet de données de l'agent au serveur se fait de manière régulière (synchrone) à chaque fois ; cet "intervalle" est défini dans l'agent logiciel, c'est-à-dire qui initie les communications avec le serveur.

L'intervalle par défaut est de 300 secondes. Les valeurs inférieures à 100 secondes ne sont pas recommandées d'une manière générale, car elles pourraient affecter les performances du système hôte, en plus de surcharger la base de données et le serveur Pandora FMS lui-même.

Il faut se rappeler que Pandora FMS n'est pas un système temps réel, c'est un système de surveillance générale d'applications et de systèmes dans des environnements dont la criticité n'est pas le temps réel. Cependant, Pandora FMS peut être adapté pour fonctionner dans des environnements avec des temps de réponse d'environ 3-5 secondes.

Esquema-3.png
Illustration : schéma logique d’un agent / agent physique


Les transferts de paquets XML se font généralement via le protocole Tentacle, bien qu'il soit également possible de transmettre les paquets via SSH ou FTP.

SSH et Tentacle peuvent rendre le processus totalement sécurisé, car aucun mot de passe ne circule sur le réseau ni aucune donnée confidentielle non cryptée ; la confidentialité, l'intégrité et l'authentification des connexions entre l'agent et le serveur sont garanties. Dans la documentation sur l'installation et la configuration des Agents et du Serveur, le processus de génération des clés est détaillé afin de pouvoir effectuer le transfert SCP (SSH) automatiquement et aussi au moyen du protocole Tentacle.

Le transfert peut également se faire par FTP ou tout autre système de transfert de fichiers, bien que Tentacle ait été choisi pour la sécurité offerte par ce système, pour sa facilité pour l'utilisateur et pour ses multiples options (SSL).

Vous pouvez consulter les annexes de la documentation pour configurer les transferts via d'autres protocoles.

Les agents Pandora FMS sont conçus pour être exécutés dans le système à partir duquel ils collectent les données, bien que les agents puissent collecter les informations des machines accessibles depuis l'hôte où ils sont installés par l'exécution de commandes réseau contre les systèmes accessibles.

1.4.3 Fichero de datos XML

Ce fichier de données contient une structure XML et son nom est formé par la combinaison du nom d'hôte où se trouve l'agent, d'un numéro de série différent pour chaque paquet de données et de l'extension ".data", qui indique que c'est un paquet de données.

<nomdehost>.<nº de série>.data 
Illustration : structure logique des modules d’un agent software”

Sw-agent.png

Le fichier de données est le fichier portant l'extension ".data ". Le fichier de vérification, avec l'extension ".checksum ", contient un hachage MD5 du fichier de données. Ceci permet une dernière vérification pour s'assurer que les données n'ont pas été modifiées d'aucune façon avant d'être traitées.

<nomdehost>.<nº de série>.checksum

Le fichier de données XML contient toutes les informations collectées par l'Agent lors de son exécution. Ce paquet de données a une conception compacte, flexible et légère qui permet à tout utilisateur d'utiliser les agents Pandora FMS ou leurs propres développements pour générer des informations et que celles-ci soient traitées dans Pandora FMS. Le fichier de données est un fichier XML similaire au suivant :

 <agent data os_name=”SunOS” os_version=”5.8” timestamp=”300” agent_name=”pdges01” version=”1.0”>
   <module>
     <name>FTP Daemon</name>
     <type>generic_proc</type>
     <data>0</data>
   </module>
   <module>
     <name>DiskFree</name>
     <type>generic_data</type>
     <data>5200000</data>
   </module>
   <module>
     <name>UsersConnected</name>
     <type>generic_data_inc</type>
     <data>119</data>
   </module>
   <module>
     <name>LastLogin</name>
     <type>generic_data_string</type>
     <data>slerena</data>
   </module>
 </agent_data>

1.5 Topologies, schémas et modèles de surveillance

Il existe différents modèles en matière de surveillance, à distance et locale. Nous énumérons ci-dessous les cas habituels de différentes topologies afin de familiariser le lecteur avec les problèmes et les solutions possibles offertes par Pandora FMS. Dans les chapitres suivants, le fonctionnement de chaque solution est décrit.

1.5.1 Réseaux accessibles

Cela n'est courant que dans les petits réseaux simples ou très centralisés et organisés. C'est le modèle le plus facile à mettre en œuvre.

  • Réseau accessible pour télésurveillance centralisée. Où, à partir du serveur Pandora FMS, nous pouvons accéder à toutes les machines à sonder à distance.
  • Réseau accessible pour la 'surveillance basée sur les agents. D'où, à partir des agents logiciels installés dans les machines surveillées, ils peuvent accéder sans problème au serveur Pandora FMS.

1.5.2 Réseau difficile d’accès

  • Le réseau distant n'est pas accessible par les contrôles à distance Pandora FMS. Dans ce scénario, nous avons plusieurs options ; soit l'utilisation d'un agent logiciel qui exécute des vérifications à distance vers d'autres systèmes (en utilisant le mode " broker agent "), soit l'utilisation de " Satellite Server ", qui est capable d'exécuter des vérifications à distance et possède une série de fonctionnalités avancées.
Modo-broker.png


Modèle de déploiement dans des réseaux à distance non accessibles en mode broker


  • Agents logiciels qui n'ont pas accès au serveur Pandora FMS. Dans ce cas, nous utiliserons la fonction "proxy" des agents logiciels, qui permet, à un agent qui n'a pas d'accès, d'utiliser un agent qui a accès au serveur, pour se connecter via celui-ci, en transférant les fichiers XML de tous les agents en plus du sien. Le Serveur Satellite peut aussi agir comme un agent proxy.
Proxy-mode.png


Modèle de déploiement sur des réseaux à distance en utilisant le mode proxy de l’agent”


  • Besoin de surveiller des différents réseaux pour la surveillance à distance avec le serveur. Dans ce cas, nous pouvons aussi utiliser le " Serveur Satellite ", ou monter plusieurs serveurs Pandora FMS différents, connectés à la même base de données. Un serveur exécutera un ensemble de vérifications, et un autre serveur un ensemble différent. La façon d'effectuer le déploiement sera différente, mais dans les deux cas, chaque composant sera entièrement responsable de la surveillance de son réseau et la gestion sera centralisée depuis la Console.
Esquema-satellite.png


Modèle de déploiement sur des réseaux à distance en utilisant le Satellite Serveur


1.5.3 Caractéristiques organisationnelles spéciale

  • Besoin d’avoir plusieurs sites surveillés, avec différents équipements et configurations de surveillance. Dans ce cas, nous utiliserons un serveur d'exportation (Export Server) pour dupliquer une partie de la surveillance dans un environnement séparé de Pandora FMS, indépendant.
Export-server.png


Modèle d’exportation hiérarchique avec Export Server


  • Double reporting. De plus, nous pouvons configurer les agents pour qu'ils rapportent à deux serveurs Pandora FMS différents, bien qu'ils ne puissent être gérés que par l'un d'eux.
  • Gestion fragmentée. Il est nécessaire de déléguer la gestion d'une partie des équipes à différents personnels, avec différents accès. Ceci, plus qu'un problème d'architecture, c'est un problème de gestion. Il est résolu avec les permissions assignées sur les politiques.

1.5.4 Grands environnements

  • Nombreux réseaux, avec des milliers de contrôles réseau que nous devons distribuer dans différentes "sondes de télésurveillance", car, en raison de leur nombre élevé (plus de 50 000), nous ne pouvons pas les centraliser tous dans un seul serveur. Pour cela, nous utilisons des serveurs en mode broker, qui répartissent la charge des contrôles à distance.
Broker scalation example.png


Modèle de distribution de contrôles à distance avec des agents en mode broker


  • Besoin d’assembler un serveur en HA pour des raisons de sécurité, au cas où le matériel principal tomberait en panne. Nous verrons différentes manières de monter deux serveurs ; par exemple, avec un serveur "passif", qui attend que l'actif cesse de répondre pour se mettre en marche. Il y a différentes façons de le faire.
  • Besoin de surveiller un grand volume de systèmes et les gérer de manière centralisée (plus de 2 500 agents). Pour ce faire, différents serveurs Pandora FMS sont configurés, coordonnés par le même système, appelé " Meta console ". De cette façon, il est possible d'effectuer une mise à l'échelle linéaire.
Pandora metaconsole overview2.png


Modèle de meta console



Revenir à l’Index de Documentation Pandora FMS