Tutoriel Nagios - Surveillance continue avec Nagios



Tutoriel Nagios: Nagios surveille l'ensemble de votre infrastructure informatique pour s'assurer que les systèmes, les applications, les services et les processus métier fonctionnent correctement.

Tutoriel Nagios:

Je pense qu'il y a très peu de messages sur Nagios et peu d'informations pertinentes disponibles sur Internet. Donc, je pense que cet article vous donnera une bonne clarté sur cet outil de surveillance. Nagios surveille l'ensemble de votre infrastructure informatique pour garantir le bon fonctionnement des systèmes, des applications, des services et des processus métier.Il fait partie intégrante du cycle de vie DevOps et est indispensable pour .Dans ce tutoriel Nagios, je couvrirai les sujets ci-dessous:

  1. Pourquoi avons-nous besoin d'une surveillance continue?
  2. Qu'est-ce que la surveillance continue?
  3. Qu'est-ce que Nagios?
  4. Comment installer Nagios?
  5. Comment ajouter un serveur distant à l'aide de NRPE (Nagios Remote Plugin Executor).

Commençons ce tutoriel Nagios, en comprenant pourquoi nous avons besoin de surveillance continue parce que tout existe pour une raison. Alors, essayons de découvrir cette raison.





Pourquoi avons-nous besoin d'une surveillance continue?

Les outils de surveillance continue résolvent toutes les erreurs système (mémoire insuffisante, serveur inaccessible, etc.) avant qu'elles n'aient un impact négatif sur la productivité de votre entreprise.

Les raisons importantes d'utiliser un outil de surveillance sont:



  • Il détecte tout problème de réseau ou de serveur
  • Il détermine la cause première de tout problème
  • Il maintient la sécurité et la disponibilité du service
  • Il surveille et dépanne les problèmes de performances du serveur
  • Cela nous permet de planifier les mises à niveau de l'infrastructure avant que les systèmes obsolètes ne provoquent des pannes
  • Il peut répondre aux problèmes au premier signe d'un problème
  • Il peut être utilisé pour résoudre automatiquement les problèmes lorsqu'ils sont détectés
  • Cela garantit que les pannes de l’infrastructure informatique ont un effet minimal sur les résultats de votre entreprise
  • Il peut surveiller l'ensemble de votre infrastructure et de vos processus métier

Ouais, ça fait beaucoup de travail sympa, mais qu'est-ce que c'est?

Qu'est-ce que la surveillance continue?

Laissez-moi d'abord vous dire où se situe la surveillance continue dans le cycle de vie DevOps, considérez le diagramme ci-dessous:

DevOps Life-Cyce - Tutoriel Nagios - Edureka



En regardant le diagramme, vous devez penser qu'il s'agit de la dernière étape du cycle de vie DevOps, mais ce n'est pas le cas. Il n'y a pas de fin à un cycle de vie DevOps, et c'est la raison du symbole de l'infini. La surveillance continue entre en scène, une fois l'application déployée sur les serveurs de production.

La surveillance continue concerne la capacité d'une organisation à détecter, signaler, répondre, contenir et atténuer les attaques qui se produisent, dans son infrastructure.

La surveillance continue n'est en fait pas nouvelle, elle existe depuis un certain temps. Pendant des années, nos professionnels de la sécurité effectuent des analyses statiques à partir du journal système, des journaux du pare-feu, des journaux IDS, des journaux IPS, etc. L’approche de surveillance continue d’aujourd’hui nous donne la possibilité d’agréger tous les événements dont j’ai discuté ci-dessus, de les mettre en relation, de les comparer et d’estimer la position de risque de l’organisation.

Si nous prenons toutes ces pièces et assurons l'interconnexion entre elles. C'est le nœud de la surveillance continue.

Laissez-moi vous expliquer cela avec un cas d'utilisation.Considérez le diagramme ci-dessous:

Maintenant, laissez-moi vous expliquer le diagramme ci-dessus:

  1. Nous disposons de divers outils de sécurité, tels que le pare-feu, l'IDS, la protection des points finaux, etc., ils sont connectés à un système de gestion des informations et des événements de sécurité.
  2. Afin de réaliser une surveillance continue, nous avons besoin que toutes les parties se parlent, laissez-moi vous expliquer cela.
  3. Nous avons donc des outils de sécurité et une série de «points finaux», cela peut inclure des clients et des serveurs, des routeurs, des commutateurs, des appareils mobiles, etc.
  4. Ces deux groupes peuvent alors parler à un système de gestion des informations et des événements de sécurité (SIEM), via un langage commun et de manière plus automatisée.
  5. Connecté à ce SIEM, il y a deux composants importants, le premier est un entrepôt de données. Maintenant, à cet entrepôt de données, nous allons connecter «Analytics» et «Security Intelligence».
  6. Les renseignements de sécurité (SI) sont les informations pertinentes pour protéger une organisation contre les menaces externes et internes, ainsi que les processus, politiques et outils conçus pour collecter et analyser ces informations.
  7. Ce SIEM est également connecté à un «système de gestion des risques et de la conformité», il fournit essentiellement un tableau de bord.
  8. À ce «système de gestion des risques et de la conformité», nous attachons une base de données sur les risques. Cela nous donne une «intelligence exploitable».
  9. L'intelligence actionnable n'est rien d'autre que des informations sur lesquelles il est possible d'agir, avec l'implication supplémentaire que les actions devrait être pris.

Donc, ici, nous surveillons les événements sur une base continue et déterminons le niveau de risque que nous subissons. Avec cela, nous pouvons corréler les événements au SIEM. Nous pouvons effectuer la détection du comportement du réseau et des anomalies dans le «moteur d'analyse». Voilà ce qu'est la surveillance continue:

L'intégration d'une organisationoutils de sécurité,l'agrégation,normalisation etcorrélation des données produites par les outils de sécurité. L'analyse de ces données, basée sur les objectifs de risque de l'organisation et la connaissance des menaces, et la réponse en temps quasi réel aux risques identifiés.

'Si vous ne pouvez pas le mesurer, vous ne pouvez pas le gérer'. J'espère que vous savez de quoi je parle.

Ensuite, dans ce didacticiel Nagios, je vous présenterai l’un des outils de surveillance les plus connus, «Nagios».

Qu'est-ce que Nagios?

Nagios est utilisé pour la surveillance continue des systèmes, des applications, des services et des processus métier, etc. dans une culture DevOps. En cas de panne, Nagios peut alerter le personnel technique du problème, ce qui lui permet de commencer les processus de correction avant que les pannes n'affectent les processus métier, les utilisateurs finaux ou les clients. Avec Nagios, vous n’avez pas à expliquer pourquoi une panne d’infrastructure invisible affecte les résultats financiers de votre entreprise.

Laissez-moi vous expliquer comment fonctionne Nagios.Considérez le diagramme ci-dessous:

Nagios s'exécute sur un serveur, généralement en tant que démon ou service.

Il exécute périodiquement des plugins résidant sur le même serveur, ils contactent des hôtes ou des serveurs sur votre réseau ou sur Internet. On peut afficher les informations d'état à l'aide de l'interface Web. Vous pouvez également recevoir des notifications par e-mail ou SMS en cas de problème.
Le démon Nagios se comporte comme un ordonnanceur qui exécute certains scripts à certains moments. Il stocke les résultats de ces scripts et exécutera d'autres scripts si ces résultats changent.

Plugins: Celles-cisont des exécutables ou des scripts compilés (scripts Perl, scripts shell, etc.) qui peuvent être exécutés à partir d'une ligne de commande pour vérifier l'état d'un hôte ou d'un service. Nagios utilise les résultats des plugins pour déterminer l'état actuel des hôtes et des services sur votre réseau.

Parlons maintenant de son architecture.

Architecture de Nagios:

  • Nagios est construit sur une architecture serveur / agents.
  • Habituellement, sur un réseau, un serveur Nagios s'exécute sur un hôte, et les plugins interagissent avec les hôtes locaux et distants qui doivent être surveillés.
  • Ces plugins enverront des informations au planificateur, qui les affiche dans une interface graphique.

Je dois également vous expliquer NRPE (Nagios Remote Plugin Executor).

L'addon NRPE est conçu pour vous permettre d'exécuter des plugins Nagios sur des machines Linux / Unix distantes. La raison principale pour cela est de permettre à Nagios de surveiller les ressources «locales» (comme la charge du processeur, l'utilisation de la mémoire, etc.) sur les machines distantes. Comme ces ressources publiques ne sont généralement pas exposées à des machines externes, un agent tel que NRPE doit être installé sur les machines Linux / Unix distantes.

Considérez le diagramme ci-dessous:

  • Le plugin check_nrpe, réside sur la machine de surveillance locale.
  • Le démon NRPE s'exécute sur la machine distante Linux / Unix.
  • Il existe une connexion SSL (Secure Socket Layer) entre l'hôte de surveillance et l'hôte distant, comme illustré dans le diagramme ci-dessus.

Maintenant dans ce tutoriel Nagios, il est temps pour certains Pratique .

Commençons par installer Nagios Core

Installez Nagios Core:

Le processus complet d'installation de Nagios peut être résumé en quatre étapes:

  1. Installer les packages requis sur le serveur de surveillance
  2. Installer Nagios Core, Nagios Plugins et NRPE (Nagios Remote Plugin Executor)
  3. Définir le mot de passe Nagios pour accéder à l'interface Web
  4. Installer NRPE dans le client

Étape - 1: Installez les packages requis sur le serveur de surveillance:

Visitez le site Web: http://dl.fedoraproject.org/pub/epel/6/

Cliquez sur i386 et vous serez redirigé vers une page.

Puisque j'utilise CentOS 6, je vais donc cliquer avec le bouton droit de la souris et copier l'emplacement du lien de « epel-release-6-8.noarch.rpm ', Comme indiqué dans la capture d'écran ci-dessus.

Ouvrez le terminal et utilisez rpm -Uvh et collez le lien.

Nous devons télécharger un autre dépôt, pour cela, visitez le site Web ' http://rpms.famillecollet.com/enterprise/ '

Cliquez avec le bouton droit de la souris et copiez l'emplacement du lien pour ' remi-release-6.rpm '

Ouvrez à nouveau le terminal et utilisez rpm -Uvh et collez le lien.

Très bien, nous en avons donc terminé avec les pré-requis. Passons à l'étape suivante.

Étape - 2: Installez Nagios Core, Nagios Plugins et NRPE (Nagios Remote Plugin Executor):

Exécutez la commande ci-dessous dans le terminal:

miam -y installer nagios nagios-plugins-tous nagios-plugins-nrpe nrpe httpd php

Cela installera Nagios, les plugins Nagios, les plugins pour NRPE, NRPE, Apache et PHP

Le serveur Web Apache est requis pour surveiller l'état actuel du serveur Web.

Php est utilisé pour traiter le contenu dynamique de la date du site.

Ensuite, nous devons activer le service Apache et Nagios:

chkconfig httpd sur && chkconfig nagios sur

Notre prochaine étape consiste à démarrer Nagios et Apache:

service httpd start && service nagios start

Maintenant, je vais activer la mémoire d'échange d'au moins 1 Go. Il est temps de créer le fichier d'échange lui-même à l'aide de la commande dd:

jj si = / dev / zéro de = / swap bs = 1024 count = 2097152

Swap est essentiellement utilisé pour libérer de la RAM certaines informations peu consultées et les déplacer vers une partition spécifique de notre disque dur.

Maintenant que vous avez créé la partition d'échange, utilisez la commande mkswap pour configurer la partition d'échange. Cela va préparer le fichier d'échange en créant une zone d'échange Linux.

mkswap / swap

Pour éviter que le fichier ne soit lisible partout dans le monde, vous devez configurer les autorisations appropriées sur le fichier d'échange:

chown root. / swap chmod 0600 / swap

Si vous ne voyez aucune erreur, votre espace d'échange est prêt à être utilisé. Pour l'activer immédiatement, tapez:

swapon / swap

Ce fichier durera sur le serveur privé virtuel jusqu'à ce que la machine redémarre. Vous pouvez vous assurer que l'échange est permanent en l'ajoutant au fichier fstab.

echo / swap swap swap par défaut 0 0 >> / etc / fstab

Le noyau du système d'exploitation peut ajuster la fréquence à laquelle il s'appuie sur le swap via un paramètre de configuration appelé swappiness .

Pour trouver les paramètres de permutation actuels, tapez:

cat / proc / sys / vm / swappiness

La permutation peut être une valeur comprise entre 0 et 100. Une permutation proche de 100 signifie que le système d'exploitation changera souvent et généralement trop tôt. Bien que le swap fournisse des ressources supplémentaires, la RAM est beaucoup plus rapide que l'espace de swap. Chaque fois que quelque chose est déplacé de la RAM vers le swap, cela ralentit.

Une valeur de swappiness de 0 signifie que le fonctionnement ne dépendra du swap que lorsqu'il en a absolument besoin. Nous pouvons ajuster la permutation avec la commande sysctl. Pour que votre VPS applique automatiquement ce paramètre à chaque démarrage, vous pouvez ajouter le paramètre au fichier /etc/sysctl.conffichier:

echo vm.swappiness = 0 >> /etc/sysctl.conf && sysctl -p

Enfin, nous en avons terminé avec la deuxième étape.

Allons plus loin et définissons le mot de passe Nagios pour accéder à l'interface Web.

Étape - 3: Définissez le mot de passe Nagios pour accéder à l'interface Web:

Définissez le mot de passe pour accéder à l'interface Web, utilisez la commande ci-dessous:

htpasswd -c / etc / nagios / passwd nagiosadmin

Tapez le mot de passe et confirmez-le en le retapant.

Maintenant, ouvrez le navigateur. Ici, saisissez votre adresse IP publique ou votre nom d'hôte / nagios. Prenons l'exemple ci-dessous:

Ici, donnez le nom d'utilisateur et le mot de passe. Par défaut, le nom d'utilisateur est nagiosadmin, et le mot de passe correspond à ce que vous avez défini à l'étape précédente. Enfin, appuyez sur OK.

Après cela, vous serez dirigé vers le tableau de bord Nagios Core.

Vous pouvez cliquer sur les hôtes et voir ce que tous les hôtes surveillent actuellement par votre Nagios Core.

Vous pouvez remarquer qu'il ne surveille qu'un seul hôte, c'est-à-dire localhost. Si je veux que mon Nagios Core surveille un hôte distant, je dois installer NRPE sur cet hôte distant. Cela nous amène à l'étape suivante, installer NRPE dans le client / machine que vous voulez que Nagios surveille.

Étape - 4: Installez NRPE dans le client:

Très bien alors, installons NRPE sur l'ordinateur client.

Tout d'abord, vous devez installer les packages requis comme je l'ai fait sur ma machine serveur Nagios. Alors, exécutez simplement les mêmes commandes, considérez les captures d'écran ci-dessous:

Maintenant, installez Nagios, Nagios Plugins et NRPE dans le client:

miam -y installer nagios nagios-plugins-all nrpe

Une fois installé, activez le service NRPE:

chkconfig nrpe sur


Notre prochaine étape consiste à modifier le, nrpe.cfg fichier. J'utiliserai le nous éditeur, vous pouvez également choisir n'importe quel autre éditeur:

Vous devez ajouter l'adresse IP de votre serveur de surveillance, dans la ligne d'hôte autorisé, considérez la capture d'écran ci-dessous:

Ici, l'adresse IP de mon serveur de surveillance est 192.168.56.101.

Maintenant, nous devons configurer des règles de pare-feu pour permettre la connexion entre le serveur de surveillance et le client.

iptables -N NRPE

-Une option est utilisée pour ajouter la nouvelle règle à la fin d'une chaîne. Si vous souhaitez le placer ailleurs dans la chaîne, vous pouvez utiliser l'option -I qui vous permet de spécifier la position de la nouvelle règle.

La commande ci-dessous accepte les requêtes TCP sur les ports 5666.

iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j NRPE iptables -I NRPE -s 192.168.56.101 -j ACCEPTER iptables -A NRPE -s 0/0 -j DROP

Cela configurera fondamentalement iptables pour accepter les paquets d'un hôte particulier, dans mon cas - 192.168.56.101, et abandonnera les paquets d'autres hôtes.

Maintenant, je vais enregistrer ces configurations:

/etc/init.d/iptables save

Démarrez le service NRPE maintenant.

début du service nrpe

Revenez maintenant au serveur de surveillance.

Ici, je dois éditer le fichier nagios.cfg.

vi /etc/nagios/nagios.cfg

Décommentez la ligne - cfg_dir = etc / nagios / serveurs

Créer un répertoire «serveur», pour cet usage mkdir commander.

mkdir / etc / nagios / servers /

Changez votre répertoire de travail en serveurs.

cd / etc / nagios / serveurs

Créez un nouveau fichier dans ce répertoire avec l'extension .cfg et modifiez-le. Je l'appellerai client.cfg et j'utiliserai nous éditeur.

vi /etc/nagios/servers/client.cfg

Ajoutez ici les lignes ci-dessous:

is-a and has-a relation en java

Cela comprend essentiellement le type de services que je souhaite surveiller. Donnez le nom d'hôte de la machine et son adresse IP que vous voulez que Nagios surveille.

De même, vous pouvez ajouter un certain nombre de services que vous souhaitez surveiller. Les mêmes configurations peuvent être utilisées pour ajouter un nombre «n» de clients.

Dernière étape les gars, définissez correctement les autorisations de dossier et redémarrez Nagios.

chown -R nagios. / etc / nagios /

Maintenant, redémarrez Nagios

redémarrage du service nagios

Ouvrez le navigateur et saisissez à nouveau le nom d'hôte ou adresse IP publique / nagios /. Dans mon cas, c'est localhost / nagios /.

Cliquez sur les hôtes pour voir toutes les machines que Nagios surveille actuellement.

Ici, vous pouvez remarquer qu'il surveille actuellement la machine cliente (nom d'hôte de la machine que je veux que Nagios surveille). Fondamentalement, nous avons ajouté un hôte distant utilisant NRPE.

J'espère que vous avez apprécié la lecture de ce tutoriel sur Nagios, je proposerai bientôt plus de blogs sur Nagios.

Si vous avez trouvé ce didacticiel Nagios pertinent, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka DevOps aide les apprenants à acquérir une expertise dans divers processus et outils DevOps tels que Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack et GIT pour l'automatisation de plusieurs étapes dans SDLC.

Vous avez une question pour moi? Veuillez le mentionner dans la section des commentaires et je vous répondrai.