
0. Introduction
Je n'ai trouvé aucun article sur NetXMS sur Habr, bien que j'aie beaucoup cherché. C'est uniquement pour cette raison que j'ai décidé d'écrire cette œuvre, afin de mettre l'accent sur ce système.
C'est à la fois un tutoriel, un guide pratique et une vue d'ensemble des capacités du système.
Cet article contient une analyse sommaire et une description des fonctionnalités du système. Je n'ai pas approfondi ses possibilités pour plusieurs raisons. En outre, décrire toute la fonctionnalité prendrait bien plus d'un article.
Comme j'ai principalement travaillé avec Zabbix, cet article fera souvent référence à ce système pour le comparer au sujet. De plus, il semble que tout soit comparé à quelque chose de largement reconnu.
1. Qu'est-ce que c'est et pourquoi ?
Un système de surveillance, comme l'indique la définition, est un système qui permet d'obtenir à tout moment des informations à jour sur un nœud, une machine, un routeur, ou autre.
Pourquoi est-ce nécessaire ? C'est tout aussi évident. Pour être au courant de ce qui se passe.
Souvent, un système de surveillance peut fournir des informations très complètes sur l'état de l'infrastructure dans son ensemble, ainsi que sur certaines de ses parties. De plus, si des alertes sont configurées (sans cela, tout système de surveillance a peu de valeur), nous disposons d'un outil sérieux qui permet non seulement de réagir rapidement aux situations d'urgence déjà survenues, mais qui, dans la plupart des cas, offre également la possibilité de prévenir ces urgences.
2. Pourquoi NetXMS ?
Un peu de hors sujet pour ceux qui aiment les longs textesDans ma jeunesse, quand j'étais encore novice... C'est ainsi que commencent souvent tous les contes, n'est-ce pas ? En d'autres termes, lorsque j'étais perfectionniste, j'ai étudié la question de la surveillance d'infrastructure, et le résultat de ces 'recherches' a été la conclusion qu'il n'y a rien de mieux que Zabbix. À ce moment-là, je l'aimais vraiment, car il offre beaucoup de fonctionnalités et il est possible d'étendre ses capacités avec des scripts faits maison, donc on peut dire qu'il peut quasiment tout faire, si on a les bonnes compétences. Mais Zabbix est un outil plutôt complexe. Pour en saisir les bases, il m'a fallu presque deux semaines. Et cela n'était que la phase d'implémentation. Ensuite, il a fallu encore quelques semaines pour configurer la surveillance de tout ce dont j'avais besoin à l'époque. Comment vérifier l'état des ports sur les routeurs avec, j'ai lu, j'ai eu peur, et j'ai décidé que ce n'était pas si nécessaire pour moi... Non, c'est vraiment intimidant pour un esprit non préparé juste après l'université...
Et voilà, après quelques années, en ayant mûri et gagné en expérience, j'ai décidé qu'il était temps de rafraîchir mes connaissances sur les systèmes de surveillance. Et enfin de mettre en place une surveillance réseau normale et stable, car ce problème était devenu d'actualité avec l'augmentation des segments, l'ajout d'une succursale et d'autres détails. Tout évolue, tout change. Et j'ai commencé à tester divers outils. J'installais un système, je l'explorais, puis un autre. Et partout, il manquait quelque chose, il y avait toujours un aspect qui ne me plaisait pas. Parfois l'interface était inconfortable, parfois la configuration était un vrai casse-tête, ou quelque chose d'autre encore. Et c'est là que NetXMS m'a été suggéré. À propos : là où j'ai passé deux semaines avec Zabbix, avec NetXMS, tout s'est déroulé en quelques heures. Peut-être est-ce dû à mon expérience avec Zabbix, ou peut-être que c'est juste NetXMS... difficile à dire.
NetXMS s'est avérée être un système assez simple à installer et à configurer. Il dispose de versions serveur et de console d'administration pour Windows et Linux, d'outils de création de graphiques, d'un 'navigateur' intégré qui permet de se connecter aux routeurs via les protocoles http et https directement depuis la console d'administration, et son interface est intuitive, ainsi qu'un agent pour tout système d'exploitation. En résumé, ce système s'est révélé simple et pratique. À première vue.
Leur documentation, il convient de le souligner, est à 8 sur 10. Les éléments principaux y figurent, mais pour comprendre les subtilités, il faut un peu creuser.
Les principaux avantages signalés par le développeurSurveillance réseau approfondie
Détection automatique, visualisation et recherche des composants connectés au niveau 2 et 3
Support complet de SNMPv3
Détection active à l'aide de « sondes » de balayage
Détection passive basée sur les informations des appareils contrôlés - ARP et tables de routage, interfaces
Surveillance des applications et des serveurs
Toutes les principales métriques que vous attendez : processeur, systèmes de fichiers, E/S, mémoire, trafic
Pont JMX pour la surveillance des applications Java
Extensions pour des applications spécifiques : Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo et bien d'autres
API d'intégration pour des applications sur mesure
Conçu pour de grands réseaux
Un serveur peut suivre des centaines de métriques sur des milliers d'appareils
Support complet de la surveillance distribuée et de l'évolutivité horizontale
Surveillance des sous-réseaux IP superposés
Contrôle d'accès flexible pour les opérateurs et les clients
3. Approfondissons
Comment installer le système — il existe un d'administration disponible sur , et il n'y a rien de compliqué à ce sujet, donc je n'insisterai pas là-dessus. La partie la plus difficile de l'installation - connecter le système à la base de données... La seule différence résidera dans le choix du SGBD et du système d'exploitation du serveur. J'ai choisi Windows (ensuite-saisir les données-prêt) et MSSQL, car je l'avais déjà.
3.1. Activer la détection automatique
La détection automatique des nœuds du réseau peut être activée lors de l'installation. Si cela n'a pas été fait pour une raison quelconque, vous pouvez toujours l'activer dans « Configuration-Découverte réseau » ou en cliquant sur l'icône du même nom. Les propriétés de découverte apparaîtront dans l'espace de travail. Vous devez l'activer en la passant en mode passif ou actif, et définir d'autres propriétés, comme les sous-réseaux interrogés. Vous pouvez également appliquer des filtres, en choisissant de personnaliser les filtres intégrés au système ou en écrivant vos propres scripts. Honnêtement, je n'avais pas besoin de filtres. Mais la configuration semble assez conviviale et compréhensible.
Vous pouvez également indiquer la communauté SNMP par défaut et ses informations d'identification (lire l'autorisation).
3.2. Ajout de nœuds
Avec la détection automatique activée, les nœuds finaux (PC, imprimantes) seront ajoutés et répartis automatiquement dans les sous-réseaux. Avec du matériel réseau actif, c'est un peu plus compliqué.
Commencez par activer SNMP sur le matériel réseau et configurez la communauté. Si la valeur par défaut de la communauté SNMP n'a pas été modifiée dans les propriétés de détection automatique des nœuds du réseau, le système utilisera la communauté publique, bien que ce paramètre puisse être modifié pour chaque nœud dans les propriétés du nœud ajouté.
Pour plus de commodité, vous pouvez regrouper les appareils selon n'importe quel principe pratique ; pour cela, vous pouvez créer des conteneurs dans l'arborescence sous Infrastructure Services et y lier les nœuds du réseau entier.
Après avoir activé et configuré SNMP sur les routeurs et les avoir ajoutés à la liste des équipements surveillés, le système se connectera automatiquement à eux, les interrogera, déterminera de quels appareils il s'agit, appliquera des modèles, commencera à collecter des données et affichera le panneau frontal pour chaque routeur. Tout cela se fera automatiquement. À la sortie de la boîte. Quand je configurais Zabbix, je ne pouvais qu'en rêver.

J'ai ajouté tous mes équipements réseau manuellement, car pour une raison quelconque, ils ne se sont pas détectés automatiquement. C'est très simple. Créons un conteneur dans Infrastructure Services avec un nom pratique (par exemple, switches), et Clic droit-créer-nœud, indiquer le nom affiché du nœud, son adresse IP, et il vaut mieux cocher la case « désactiver l'utilisation de l'agent NetXMS », car il est de toute façon impossible de l'installer sur le matériel réseau, et des paquets supplémentaires ne servent à rien.
Navigateur intégré. Il suffit de faire un clic droit sur le routeur souhaité et d'ouvrir l'interface web de l'appareil. Cela m'a semblé plus pratique que de toujours aller chercher dans mes notes pour trouver l'adresse IP nécessaire. En revanche, le navigateur est moyen.
3.3. Construction de la carte réseau
Tout d'abord, il faut créer la carte réseau en tant qu'objet. Comme d'habitude, dans la branche Networks Map, clic droit, créer, choisir le type de carte, définir les paramètres, et le système fera tout le reste tout seul.
Les types de cartes suivants sont disponibles :
- Personnalisé. Il s'agit d'une carte destinée à être créée manuellement, selon le souhait de l'utilisateur.
- Topologie de couche 2. C'est une carte qui permet de faire tout automatiquement pour l'utilisateur, en se basant sur le niveau 2 du modèle OSI (en gros, elle construit la carte en se basant sur les adresses MAC des appareils).
- Topologie IP, également appelée couche 3. C'est la même chose que dans le cas de couche 2, sauf que la carte est construite sur la base du niveau 3 du modèle OSI (adresses IP).
Lors de la création manuelle de la carte, il faut faire glisser les nœuds de l'arborescence vers la couche de la carte, les relier, etc. C'est du dessin classique.
Dans les deux autres cas, il faut choisir un point de départ à partir duquel le système commencera à construire la carte. Par exemple, un nœud d'un routeur. Le système lit les données sur les appareils connectés et les ports auxquels ils sont reliés, puis lit les données du routeur suivant, les compare, et ainsi de suite. Après avoir analysé tous les appareils, NetXMS dessinera elle-même les connexions entre les appareils du réseau en indiquant les ports auxquels tout est raccordé. Il est également possible d'indiquer au système d'inclure sur la carte les appareils finaux (imprimantes, PC, serveurs) en cliquant simplement sur le point approprié dans les propriétés de la carte.Clic droit — propriétés — propriétés de la carte.Dans cette section, il est également possible de définir un "rayon de détection" si désiré ou nécessaire.
Petite recommandation. Activez la propriété Toujours adapter la mise en page à l'écran, afin que chaque fois que vous mettez à jour la carte du réseau, vous n'ayez pas à faire défiler l'espace de travail et à utiliser le zoom.

Dans une topologie réseau distribuée, vous pouvez superposer des objets sur la carte du terrain. Il est également possible d'utiliser, par exemple, une photo du rack avec l'équipement dans la salle des serveurs comme fond, en y superposant les objets nécessaires. Cela permet de rapidement déterminer le statut de tout appareil dans le rack. À mon avis, c'est un outil extrêmement utile en cas de besoin de transmettre le travail à un successeur ou d'expliquer la situation à un collègue nouvellement arrivé. Visuellement clair, pratique, et évident.
3.4. Agents
Les agents existent à la fois pour Windows et pour Linux. Le principe de fonctionnement est le même que pour les agents de Zabbix : installé sur la machine dont il faut mesurer les métriques, il transmet les données au serveur de surveillance. Un agent peut être installé avant ou après l'ajout du nœud dans le système. Une fois l'agent présent sur le nœud, le système commencera à recevoir des données de lui après un certain temps, en appliquant le modèle standard. Les paramètres à surveiller peuvent être ajoutés à un nœud unique ou en y attachant un ou plusieurs modèles prédéfinis. Il est évidemment recommandé de travailler avec des modèles, car cette configuration est plus flexible.
La liste des paramètres suivis pour les agents est assez étendue. Vous pouvez consulter la liste complète dans
Dès que le système détermine qu'un agent fonctionne sur le nœud, il attachera immédiatement ce nœud à l'un des modèles par défaut — Windows, Linux, HP-UX, Generic UNIX, AIX, selon le système d'exploitation du nœud.
Modèle standard pour les hôtes Windows :

Pour ajouter un paramètre de suivi à un nœud spécifique, cliquez sur «Paramètre de collecte de données PC», puis sur «Clic droit dans la zone de travail — Nouveau paramètre», et sélectionnez le nécessaire dans la liste. Vous pouvez également configurer les déclencheurs pour le paramètre suivi ici.
Il est important de noter que les agents, tout comme ceux de Zabbix, peuvent exécuter des scripts personnalisés.
Comment installer ?C'est hors sujet, car chacun… euh… fait ce qu'il veut.
La question est de savoir s'il faut déployer des agents uniquement sur les serveurs, ou sur toutes les machines du réseau ? Si ce ne sont que quelques serveurs, le plus simple est de le faire manuellement. S'il y en a beaucoup, il y a des politiques de domaine, KIX, PoSh. Peu importe. Les agents ont une clé /SILENT, ce qui permet de « l'installer » de manière transparente pour l'utilisateur (si nous parlons d'un déploiement sur toutes les machines du réseau). Je préfère les scripts, car il est possible de définir une condition et de créer un certain drapeau, contrairement aux politiques qui installeront le programme à chaque fois que l'ordinateur sera allumé. Donc, nous écrivons un script du type « vérifier la présence d'un fichier-drapeau, si non — lancer l'installateur avec la clé /SILENT et après une installation réussie, créer le fichier-drapeau ». Profit.
3.5. Déclencheurs
Les déclencheurs peuvent être configurés pour réagir à certains événements dans les données collectées. Par exemple, dépasser une certaine valeur de ping-pong vers le routeur. Il est également possible de configurer le mode de notification pour chaque déclencheur (pour certains, il suffit d'une icône dans la console, tandis que d'autres envoient immédiatement des notifications partout où c'est possible). La réaction à l'événement est choisie parmi les options prédéfinies dans la Configuration d'Action.
Pour créer un déclencheur : connectez-vous à la Configuration de collecte de données du nœud ou du modèle, double-cliquez sur le paramètre d'intérêt (s'il n'existe pas, il faut d'abord le créer), et dans les propriétés, allez à l'onglet Seuils, puis cliquez sur le bouton Ajouter.

«Fonction» — quelle ou quelles valeurs prendre pour calculer la condition. Peut prendre les valeurs suivantes (le nombre de valeurs utilisées pour la vérification est indiqué dans le champ Échantillons) :
— Dernière valeur sondée : dernière/dernières valeur/s reçue/s
— Valeur moyenne : moyenne des dernières données
— Écart moyen : écart moyen
— Différence avec la valeur précédente : différence avec la valeur précédente
— Erreur de collecte de données : erreur de récupération des données
— Somme des valeurs : somme des valeurs
— Script : valeur obtenue en résultat de l'exécution d'un script utilisateur
«Opération» — condition de déclenchement. Peut prendre les valeurs suivantes (valeur indiquée dans le champ correspondant Value) :
— <: inférieur à : moins que
— <= : inférieur ou égal à : moins ou égal à
— == équivalent à : équivalent à
— >= : supérieur ou égal à : plus ou égal à
— > : supérieur à : plus que
— != : pas égal à : non équivalent à
— like : proche de
— not like : pas proche de
Concernant les deux derniers paramètres, je n'ai pas de certitude sur leur fonctionnement. Donc, je ne vais même pas supposer quelles limites peuvent y être intégrées.
En d'autres termes, tout comme dans Zabbix, mais sans avoir à entrer manuellement les formules de peur de faire une erreur ou une faute de frappe. Pour restaurer le déclencheur (événement de désactivation), le système insérera automatiquement la valeur. (Dans Zabbix, il faut encore taper et ne pas faire d'erreur).
3.6. Modèles
Clic droit - créer un modèle, entrer le nom du modèle. Clic droit - Configuration de la collecte de données.
Un peu de théorieLes informations collectées peuvent provenir de plusieurs sources. Cela peut être l'agent NetXMS, fonctionnant sur la machine, ou cela peut être un «simple demande» ou «Interne«, envoyé par le serveur lui-même (comme un ping), «SNMP«, «point de contrôle SNMP«, «Push«, «Compteurs de performance Windows«, «SM-CLP«, ou un «script«. Pour chaque type d'information, il est possible de choisir le type que le système attendra lors de la réception. Par exemple, un ping renverra une valeur entière, la quantité d'espace disque libre en octets sera également un entier, tandis que la température ne sera pas entière, c'est-à-dire réelle).
Pour collecter des informations via SNMP dans NetXMS, il existe une énorme liste de paramètres prédéfinis, donc on peut ne pas entrer un OID spécifique, mais le trouver dans l'arborescence MIB, ce qui est en fait assez problématique... Cependant, au final, il faut se plonger dans la documentation du fabricant et chercher les valeurs IOD pour chaque appareil individuellement. On peut perdre beaucoup de temps à configurer la lecture d'informations à partir des appareils, se heurtant au message du système «UNSUPPORTED», et au final, il s'avère que cet appareil spécifique ne sait tout simplement pas fournir l'information demandée. Il ne reste plus qu'à consulter les manuels et à espérer.
Par exemple, pour collecter des informations sur le temps de réponse du nœud (ping), il faut ajouter un nouveau paramètre (Clic droit-nouveau paramètre), dans le champ Origine, sélectionner Interne, cliquer sur le bouton Sélectionner, et choisir Temps de ping. Il y a une fonction de recherche, à laquelle je n'avais jamais rêvé dans Zabbix. Il est également judicieux de changer la période de sondage du nœud (par défaut, elle est de 60 secondes, donc si le routeur cesse de répondre juste après avoir été interrogé par le système de surveillance, il faudra presque une minute avant que le système comprenne qu'il y a un problème, et déclenche une alarme).
Liste des données internes qui peuvent être traitées :

Après avoir ajouté tous les paramètres nécessaires au modèle, il faut cliquer sur Clic droit-appliquer et sélectionner tous les nœuds auxquels ce modèle doit être appliqué (ctrl+Clic gauche). Et voilà. Après cela, dans l'arbre sous le modèle, apparaîtra une branche, que l'on peut développer pour voir tous les nœuds auxquels ce modèle est appliqué.
En dissociant un nœud du modèle, les données collectées continuent d'être recueillies. Pour annuler leur collecte, il faut accéder à la Configuration de collecte de données pour chaque nœud et tout supprimer manuellement, ou d'abord supprimer les paramètres du modèle et ensuite retirer les nœuds. Je ne sais pas pourquoi c'est fait de cette manière, mais je trouve cela assez étrange. Mais… c'est comme ça.
Dans le modèle, on peut choisir les données à collecter et les copier dans un autre modèle. En masse. Pas besoin de copier-coller d'un modèle à l'autre à la main… Je commence déjà à détester Zabbix.
3.7. Tableaux de bord
Étrangement, le Wiki de NetXMS ne contient qu'un seul lien vers youtube à ce sujet : , il n'y a même pas de liste et de description des éléments pouvant être ajoutés au tableau de bord. En principe, tout y est aussi intuitif. Étiquette — c'est juste… eh bien… c'est une étiquette… Je ne sais même pas comment le traduire. En gros, un champ étiqueté, utilisé pour désigner et délimiter des éléments, car les éléments eux-mêmes ne contiennent pas de noms. Graphique linéaire — c'est un graphique linéaire. Graphique à barres — c'est un diagramme. Aperçu des alarmes — liste des alertes pour le(s) nœud(s) sélectionné(s). En gros, les noms parlent d'eux-mêmes.
Ensuite, il faut ouvrir les propriétés du tableau de bord et configurer les vues. Nous nous intéressons à l'onglet Éléments du tableau de bord. Le nombre de colonnes indique combien de colonnes, d'éléments, seront disposés horizontalement. Chaque objet a ses propres propriétés, et je recommande de décocher l'option 'Layout-Grab excessive vertical space' pour minimiser la taille de chaque élément.

3.8. Configuration des Actions
(Configuration-Configuration des Actions)
En essence, ce sont des actions en réponse à l'activation de déclencheurs.

NetXMS peut envoyer un e-mail, un sms, ou un message xmpp en réponse à un déclencheur. C'est assez simple : il suffit de remplir les champs requis.
On peut également :
— Transférer une notification à un autre serveur NetXMS
— Exécuter une commande sur le serveur d'administration NetXMS
— Exécuter une commande sur le nœud à l'aide de l'agent NetXMS
— Exécuter un script NXSL (NSXL est son )
Après avoir créé une action, on peut configurer un délai d'exécution ainsi qu'appliquer un macro pour l'exécution. Le délai est nécessaire pour éviter de déranger l'opérateur si le problème se résout de lui-même (par exemple, le temps de réponse à un ping était supérieur à la valeur spécifiée, mais lors de la prochaine vérification, il peut redevenir normal, alors pourquoi déranger pour des broutilles ?).
3.9. Délimitation des droits d'accès
Pour chaque objet, on peut configurer ses propres droits d'accès. Pour chaque objet à l'intérieur d'un autre objet, on peut également définir des droits d'accès. Cela permet une distribution très flexible des responsabilités et des possibilités de surveillance pour divers groupes d'utilisateurs. C'est tout ce que je voulais dire.
4. Conclusion
Je voudrais contredire le titre de mon propre article. NetXMS n'est pas pour les paresseux. Les développeurs n'ont simplement pas mis l'accent sur la fonctionnalité, comme certains, mais en plus de cela, ils ont également veillé à l'interface.
Voilà. J'ai utilisé Zabbix et NetXMS. Je vais donc simplement partager mes impressions sur ces deux systèmes.
Donc.
NetXMS me semble être un système extrêmement convivial pour l'utilisateur. Eh bien… pour l'admin… oui, pour l'admin. Il a ce qu'on appelle une interface intuitive, et c'est vraiment super. Pas besoin d'écrire ses propres formules, de lire une tonne de documentation d'accompagnement pour activer la vérification des pings jusqu'au switch ou pour faire une autre chose basique. Mais dans Zabbix, cette même chose basique diffère peu de quelque chose de réellement compliqué, c'est-à-dire que si tu maîtrises ça — tu feras aussi le reste. Dans NetXMS, il y a des astuces, la plupart des paramètres peuvent être trouvés dans l'interface, sélectionnés avec la souris et configurés. Dans Zabbix, il faut savoir si le système peut faire ceci ou cela, et si oui — comment cela s'écrit et quels paramètres il renvoie. Zabbix gagne en communauté et en tonnes de modèles pour tous les cas de figure… si, dans ce tas de déchets, tu arrives à trouver ce qu'il te faut… D'autre part, NetXMS a aussi un tas de fans et des modules créés pour ce système. Et le système lui-même, dès sa sortie de la boîte, sait déjà surveiller les applications les plus populaires, comme cela est mentionné sur la page d'accueil du projet.
Le principal avantage de NetXMS par rapport à Zabbix pour moi a été la possibilité de lancer un script sur un nœud problématique en réponse à l'activation d'un déclencheur. Si la température du CPU dépasse un seuil — elle éteindra automatiquement l'hôte. Et ensuite, nous allons nous pencher sur le problème. Peut-être que Zabbix propose aussi cette fonctionnalité, mais je n'ai pas pu la trouver. Tout comme la surveillance des ports sur les routeurs. Mais ici, c'est automatique… Enfin, pas tout à fait… Il faut maîtriser le langage de script, et voilà…
Les droits d'accès dans NetXMS permettent de répartir très flexiblement les capacités des différents utilisateurs du système. Mais pour tout cela, il faut vraiment s'y atteler.
Dans l'ensemble, les systèmes sont suffisamment similaires, et leurs capacités semblent, à première vue, au moins comparables. Bien qu'il soit perçu que Zabbix peut faire plus, ces capacités se cachent profondément sous le capot et sont inaccessibles pour un simple administrateur mortel en mode « tout-en-un ». NetXMS, en revanche, est perçu comme simple et compréhensible, convivial et agréable.
Zabbix a une excellente documentation, wiki, tutoriels, F.A.Q., meilleures pratiques, ainsi que divers forums, etc., où l'on peut trouver des réponses à presque toutes les questions. Et si besoin, on peut poser une question par soi-même.
En résumé, je voudrais recommander NetXMS aux personnes qui commencent ou à celles qui n'ont pas besoin d'une surveillance approfondie de tout et n'importe quoi. Je suis convaincu qu'en approfondissant son utilisation, on peut obtenir des observations très détaillées.
Mais je considère tout de même que le principal avantage est son interface agréable et sa facilité de configuration.
5. Matériaux utilisés
chaîne YouTube
Source : habr.com
