Domicile / Skype / Installation de Nagios et configuration du serveur de supervision. Installer et configurer nagios sur Ubuntu Installer nagios

Installation de Nagios et configuration du serveur de supervision. Installer et configurer nagios sur Ubuntu Installer nagios

Nagios- un programme open source conçu pour surveiller systèmes informatiques et réseaux. Il surveille les nœuds et services spécifiés et avertit l'administrateur si l'un des services arrête (ou reprend) son travail. De plus, à l'aide de nagios, vous pouvez afficher l'état des hôtes et des services via l'interface Web. Maintenant le plus nouvelle version nagios3.

    Pour que nagios3 fonctionne, vous aurez besoin
  • apache
  • Compilateur GCC et bibliothèques de développement
  • Bibliothèques de développement GD

Je ne vous dirai pas comment Apache s'installe, les bibliothèques sont installées par des commandes

sudo apt-get install build-essential sudo apt-get install libgd2-xpm-dev

Bien que Nagios3 ne fonctionnait pas pour moi sans ces bibliothèques. je parlerai du travail Nagios avec Apache2.

Installer Nagios3 produit par une seule équipe.

sudo apt-get install nagios3

Après l'installation, nagios est déjà opérationnel. Créons maintenant un Apache séparé hôte virtuel pour nagios. Créer dans le répertoire /etc/apache2/sites-enabled fichier de configuration pour l'hôte nagios. Dans les paramètres de l'hôte, spécifiez comme répertoire d'accueil /usr/share/nagios3/htdocs généralement, tous les fichiers Web nagios3 sont là. Vous devez également connecter les paramètres nagios aux paramètres apache. Ajouter au fichier /etc/apache2/apache2.conf ligne suivante.

Inclure /etc/nagios3/apache2.conf

Après cela, rendez-vous sur ce nouvel hébergeur, si vous avez tout fait correctement, votre navigateur devrait vous demander un mot de passe que vous ne connaissez pas encore, mais tout fonctionne.

Maintenant, occupons-nous configuration de nagios. Tous les fichiers de configuration sont dans /etc/nagios3/. Fichier de configuration principal nagios.cfg il connecte tous les autres fichiers de configuration et définit les paramètres de nagios lui-même. Donc si vous avez créé votre propre fichier de configuration, n'oubliez pas de l'inclure dans ce fichier.
Passons au dossier cgi.cfg, tous les paramètres y sont définis scripts cgi, y expose également des droits d'accès sur le site avec interface graphique. Par défaut, l'utilisateur nagiosadmin a un accès complet, si vous souhaitez autoriser quelque chose à d'autres utilisateurs, ajoutez-les simplement en les séparant par des virgules. Ma config ressemble à ça.

default_user_name=monutilisateur autorisation_pour_informations_système=nagiosadmin,monutilisateur informations_de_configuration_autorisées=nagiosadmin,monutilisateur autorisation_pour_système_commandes=nagiosadmin,monutilisateur autorisé_pour_all_services =nagiosadmin,monutilisateur autorisé_pour_all_hosts =nagiosadmin,monutilisateur autorisé_pour_all_services =nagiosadmin,monutilisateur autorisé_pour_all_hosts =nagiosadmin,monutilisateur commandes_de_service_autorisées_pour_toutes_les_services=nagiosadmin,monutilisateur commandes_de_l'hôte_autorisées_pour_toutes_les_hôtes=nagiosadmin,monutilisateur

Où myuser est mon nom d'utilisateur. Maintenant, vous devez créer un fichier avec les utilisateurs et le mot de passe, pour cela, allez dans le répertoire /etc/nagios3/ utilisons la commande

cd /etc/nagios3/ sudo htpasswd -c htpasswd.users monutilisateur

et entrez le mot de passe pour l'utilisateur myuser
Par défaut nagios recherche les utilisateurs à authentifier dans un fichier /etc/nagios3/htpasswd.users, mais vous pouvez stocker d'ailleurs, pour ce changement dans le fichier /etc/nagios3/apache2.conf paramètre AuthUserFile tout seul.

Maintenant, rechargez nagios pour que les modifications prennent effet

sudo /etc/init.d/nagios3 redémarrage

Vous pouvez également vérifier l'intégralité de la configuration de nagios avant de redémarrer

sudo nagios3 -v /etc/nagios3/nagios.cfg

Il vérifiera le fichier nagios.cfg et tous les fichiers qui y sont inclus, et s'il trouve des erreurs, il écrira des informations détaillées, je vous conseille de faire une telle vérification après chaque modification des fichiers de configuration.

C'est tout, allez maintenant sur votre hôte virtuel créé pour nagios et entrez votre nom d'utilisateur et votre mot de passe.
Vous verrez l'état de vos services, par défaut nagios vérifie le fonctionnement de localhost et de la passerelle. Vous pouvez ajouter vos hôtes ou services à vérifier, nous allons maintenant voir comment.

Disons que je veux vérifier quand mes collègues allument et éteignent leurs ordinateurs. Pour ce faire, vous devez d'abord décrire ces hôtes. Créer dans le répertoire /etc/nagios3/conf.d dossier mes-hôtes.cfg et y écrire mes hôtes

# une définition d'hôte pour les compositions de mes amis définir l'hôte ( host_name volodya #Hostname alias Volodya comp #description address 192.168.140.3 #ip address use generic-host ) définir l'hôte ( host_name lexa alias lexa comp address 192.168.140.4 use generic-host ) définir l'hôte ( host_name xz1 alias xz1 comp address 192.168.140.5 use generic-host ) définir l'hôte ( host_name xz2 alias xz2 comp address 192.168.140.8 use generic-host ) définir l'hôte ( host_name diman alias diman comp address 192.168.140.10 use generic-host )

Parce que ce fichier est dans le répertoire /etc/nagios3/conf.d connectez-le séparément dans le fichier
/etc/nagios3/nagios.cfg n'est pas nécessaire, car il inclut déjà tous les fichiers du Répertoire par défaut /etc/nagios3/conf.d

Combinons ces hôtes dans un groupe. Écrire dans le fichier de configuration du groupe /etc/nagios3/conf.d/hostgroups_nagios2.cfg un tel texte

#Définir mon groupe définir le groupe d'hôtes ( hostgroup_name mes-amis #nom du groupe alias mes-amis comps # description membres lexa, volodya, xz1,xz2, diman #membres du groupe )

Nous devons maintenant configurer un service qui vérifiera ce groupe d'hôtes. Ajout à un fichier /etc/nagios3/conf.d/services_nagios2.cfg ou créez votre propre fichier avec une telle configuration.

# vérifier que les compositions de mes amis sont en place définir le service ( hostgroup_name mes-amis #nom du groupe à vérifier service_description PING check_command check_ping! 100,0 ,20 % ! 500.0 .60% #vérifier la commande utiliser le service générique)

définir contact( contact_name pasha #name alias pasha service_notification_period 24x7 #période de notification de service host_notification_period 24x7 #période de notification de l'hôte service_notification_options w ,u,c,r # de quoi notifier les notifications host_notification_options d # notifier que l'hôte est en panne service_notification_commands notify-service-by-email #comment notifier host_notification_commands notify-host-by-email #comment notifier par e-mail [courriel protégé] yandex.ru #mail)

Les périodes de temps sont définies dans le fichier /etc/nagios3/conf.d/contacts_nagios2.cfg il y a déjà plusieurs périodes déjà définies par défaut, selon leur analogue, vous pouvez facilement définir la vôtre.

Avantages et nouvelles opportunités pour la surveillance du système

Suivre et analyser de grandes quantités d'informations d'état différents ordinateurs(par exemple, le degré d'utilisation du processeur et carte réseau) demande beaucoup d'efforts, mais Nagios open source (voir section ) fait un bon travail de surveillance et d'alerte en temps réel.

Il est extrêmement important de comprendre que Nagios n'est pas un outil de mesure des paramètres du système, par exemple, le degré d'utilisation du processeur, mais un utilitaire qui émet des résultats de surveillance sous la forme d'états "fonctionnels", "non fiables" et "défectueux". Cette fonctionnalité de Nagios aide l'opérateur à se concentrer sur les problèmes les plus importants et les plus critiques en fonction de critères prédéfinis et personnalisables.

Le logiciel Nagios implémente une fonctionnalité pour signaler le temps perdu en raison des temps d'arrêt, ce qui peut être utile pour suivre la qualité de la prestation de service conformément à un accord de niveau de service (SLA). Comme nous le verrons dans les articles suivants, Nagios propose également des fonctionnalités pour la comptabilisation des temps d'arrêt et la création de dépendances sur les services et les systèmes. Cet article d'introduction montre à quel point il est facile de créer de petites solutions personnalisées pour des besoins de surveillance spécifiques.

Installation

Majorité Distributions Linux® sont livrés avec une version embarquée de Nagios. Dans ce cas, le produit s'intègre facilement au serveur Web Apache. Pour activer ou mettre à jour une telle configuration, vous devez exécuter la commande :

miam installer nagios

ou apt-get install nagios-text . Les binaires de la plate-forme AIX® sont disponibles en téléchargement sur le site Web NagiosExchange (voir section ).

Pour les autres plates-formes, le code source de Nagios peut être téléchargé depuis le site Web Nagios.org (voir section ). Les outils de développement suivants sont nécessaires pour créer Nagios à partir de rien.

  • Instruments:
    • autoconf
    • fabrication automatique
  • Fichiers exécutables :
    • libgd
    • ouvre SSL
  • Packages (bibliothèques et fichiers d'en-tête)

De nombreux plugins liés à SNMP (Simple Network Management Protocol) nécessiteront également Perl et le package Net::SNMP.

Une fois Nagios installé et configuré, il est accessible via l'URL standard http://your.host.name/nagios . Indique quels systèmes et services sont activés ou désactivés.

Mise en place de Nagios

Par défaut, tous les fichiers de configuration de Nagios sont situés dans le répertoire /etc/nagios. Les fichiers de configuration liés à Apache peuvent être facilement liés au répertoire de configuration d'Apache à l'aide de liens. La configuration est divisée en plusieurs fichiers, chacun étant dédié à des fragments de configuration distincts.

Les premiers composants à mettre en place sont les contacts et les groupes de contacts. Les contacts sont les personnes qui sont averties lorsqu'un système ou un service tombe en panne. Par défaut, Nagios propose des notifications par e-mail et pager, mais les extensions vous permettent d'envoyer des notifications via le protocole Jabber et de nombreuses autres méthodes qui peuvent être pratiques dans diverses circonstances.

Les contacts sont stockés dans le fichier contacts.cfg et sont définis comme indiqué dans la liste 1.

Listing 1. Configuration 1 : informations de contact de base
définir contact( nom_contact jdoe alias John Due service_notification_commands notifier par e-mail host_notification_commands host-notify-by-emailes email [courriel protégé] }

Les contacts peuvent être regroupés, et au lieu d'individus qui doivent être notifiés lorsqu'un système ou un état de service change, Nagios notifiera le groupe approprié. Parfois, il est judicieux de spécifier plusieurs fois un utilisateur pour définir différentes adresses ou commandes pour envoyer des notifications, puis d'ajouter tous les moyens de contacter l'utilisateur au groupe de contacts auquel il appartient ().

Listing 2. Configuration 2 : Regrouper les contacts
définir le groupe de contacts (contactgroup_name server-admins alias Server Administrators members jdoe,albundy )

L'étape suivante consiste à configurer les systèmes que Nagios surveillera. Vous devez ajouter chaque ordinateur disposant de services que vous souhaitez surveiller ou vérifier périodiquement l'activité. Le fichier de configuration pour stocker le système est le fichier hosts.cfg. Le Listing 3 montre un exemple de définition d'ordinateur.

Listing 3. Configuration 3 : Ajout d'un nouvel ordinateur
définir l'hôte (nom_hôte ubuntu_1_2 alias adresse du serveur de test Ubuntu 192.168.1.2 check_command check-host-alive max_check_attempts 20 notifications_enabled 1 event_handler_enabled 0 flap_detection_enabled 0 process_perf_data 1 conserve_status_information 1 conserve_nonstatus_information 1 notification_interval 60 notification_period 24x7)

La dernière étape de la configuration de Nagios consiste à définir les services pour les systèmes configurés. L'exemple présenté dans le Listing 4 utilise un plugin ping prédéfini pour Nagios qui envoie des pings ICMP (Internet Control Message Protocol) pour déterminer si l'ordinateur répond ou non.

Listing 4. Configuration 4 : Ajout nouveau service
définir le service (utiliser service-template host_name ubuntu_1_2 service_description PING check_period 24x7 contact_groups server-admins notification_options c,r check_command check_ping!300.0,20%!1000.0,60% )

Après avoir préparé cette configuration, vous devez redémarrer le démon Nagios, puis, après avoir attendu quelques secondes pendant que Nagios s'initialise, vérifiez si les services ping sont apparus dans l'interface Web d'administration.

Ecrire des plugins pour Nagios

L'aspect le plus intéressant de Nagios est que vous pouvez facilement écrire votre propre plugin, ce qui nécessite d'apprendre quelques petites choses. règles simples. Pour gérer un plugin, Nagios génère simplement un processus enfant chaque fois qu'il demande l'état d'un service et utilise la sortie et le code de retour de cette commande pour déterminer l'état. Les codes de retour d'état de service sont interprétés comme suit :

  • D'ACCORD- code retour 0 - signifie que le service fonctionne normalement ;
  • ATTENTION- le code de retour 1 est un signal d'avertissement indiquant que le service peut avoir des problèmes ;
  • CRITIQUE- code retour 2 - état critique du service ;
  • INCONNUE- code de retour 3 - état de service inconnu.

Le dernier état signifie simplement que le plugin n'a pas pu déterminer l'état du service. Cela peut se produire, par exemple, à la suite d'une erreur interne.

Le Listing 5 est un exemple de script Python qui teste la moyenne de démarrage du système d'exploitation UNIX®. Il suppose qu'un niveau supérieur à 2,0 est une condition d'avertissement et qu'un niveau supérieur à 5,0 est une condition critique. Ces valeurs sont câblées dans le code et la charge moyenne de dernière minute est également toujours utilisée.

Listing 5. Plugin Python - exemple de plugin fonctionnel
#!/usr/bin/env python import os,sys (d1, d2, d3) = os.getloadavg() if d1 >= 5.0: print "GETLOADAVG CRITICAL : La charge moyenne est %.2f" % (d1) sys. exit(2) elif d1 >= 2.0 : print "GETLOADAVG WARNING : la charge moyenne est %.2f" % (d1) sys.exit(1) else : print "GETLOADAVG OK : la charge moyenne est %.2f" % (d1) sys.exit(0)

Après avoir préparé un petit composant exécutable, nous devons enregistrer ce plugin auprès de Nagios et créer une définition de service qui vérifiera la charge moyenne.

C'est assez simple : tout d'abord, un fichier /etc/nagios-plugins/config/mygetloadavg.cfg est créé avec le contenu indiqué ci-dessous, et le service est ajouté au fichier services.cfg, comme indiqué dans l'exemple ci-dessous. Permettez-moi de vous rappeler que localhost doit être présent dans le fichier de configuration hosts.cfg.

Listing 6. Exemple de plugin - Enregistrement Nagios
définir la commande (nom_commande check_mygetloadavg ligne_commande /path/to/check_getloadavg )
Listing 7. Création d'un service à l'aide de l'exemple de plugin
définir le service (utiliser service-template host_name localhost service_description LoadAverage check_period 24x7 contact_groups server-admins notification_options c,r check_command check_mygetloadavg )

Ecrire un plugin complet

L'exemple précédent a montré les limites d'un plugin "codé en dur" qui n'autorise pas les modifications de configuration lors de l'exécution. En pratique, il est préférable de créer des plugins configurables, il sera alors possible de créer et de maintenir un seul plugin, de l'enregistrer en tant que plugin séparé dans Nagios, et de lui passer des arguments d'avertissement et de configuration d'avertissement. niveaux critiques dans diverses circonstances. L'exemple suivant inclut également des messages d'utilisation, ce qui est particulièrement utile pour les plugins qui sont utilisés ou maintenus par plusieurs développeurs ou administrateurs.

Une autre technique utile est d'attraper toutes les exceptions et de renvoyer UNKNOWN au rapport d'état du service afin que Nagios puisse notifier l'événement de manière appropriée. Les plugins qui permettent aux exceptions de "s'échapper" renvoient le plus souvent une valeur de 1, qui est traitée par Nagios comme un état WARNING. Il est important que le plugin fasse correctement la distinction entre les états WARNING (avertissement) et UNKNOWN (inconnu). Il convient de noter que normalement les notifications pour les états AVERTISSEMENT individuels sont désactivées, mais ce n'est pas une bonne idée de désactiver les notifications pour les états INCONNUS.

Écrire un plugin Python

Les hypothèses ci-dessus (paramétrage d'exécution, rapports d'utilisation et gestion améliorée des exceptions) se traduisent par un plug-in dont le code source est plusieurs fois plus volumineux que le précédent. Cependant, cela ajoute manipulation sans danger erreurs et la possibilité de réutiliser le plugin dans différentes situations.

Listing 8. Plugin Python - plugin complet pour obtenir des données de charge moyenne
#!/usr/bin/env python import os import sys import getopt def usage(): print """Utilisation : check_getloadavg [-h|--help] [-m|--mode 1|2|3] \ [ -w|--niveau d'avertissement] [-c|--niveau critique]" Mode : 1 - dernière minute ; 2 - 5 dernières minutes 3 - 15 dernières minutes" Niveau d'avertissement par défaut à 2.0 Niveau critique par défaut à 5.0""" sys.exit(3) essayez : options, args = getopt.getopt(sys.argv, "hm:w:c:", "- -help --mode= --warning= --critical=",) sauf getopt.GetoptError : usage() sys.exit(3) argMode = "1" argWarning = 2.0 argCritical = 5.0 pour le nom, valeur dans les options : si nom dans ("-h", "--help") : usage() si nom dans ("-m", "--mode") : si valeur non dans ("1", "2", "3" ) : usage() argMode = valeur si nom dans ("-w", "--warning") : essayez : argWarning = 0.0 + valeur sauf Exception : print "Impossible de convertir en valeur à virgule flottante\n" usage() if name in ("-c", "--critical") : essayez : argCritical = 0.0 + valeur sauf Exception : print "Impossible de convertir en valeur à virgule flottante\n" usage() essayez : (d1, d2, d3) = os.getloadavg() sauf Exception : print "GETLOADAVG UNKNOWN : erreur lors de l'obtention de la charge moyenne" sys.exit(3) if argMode == "1": d = d1 elif argMode == "2": d = d2 elif argMode = = "3": d = d3 if d >= argCritical : print "GETLOADA VG CRITICAL : la charge moyenne est %.2f" % (d) sys.exit(2) elif d >= argWarning : print "GETLOADAVG WARNING : la charge moyenne est %.2f" % (d) sys.exit(1) else : print "GETLOADAVG OK : la charge moyenne est %.2f" % (d) sys.exit(0)

Pour utiliser un nouveau plugin, vous devez l'enregistrer dans le fichier /etc/nagios-plugins/config/mygetloadavg2.cfg, comme indiqué dans le Listing 9.

Listing 9. Plugin Python - Enregistrement Nagios
définir la commande( nom_commande check_mygetloadavg2 ligne_commande /path/to/check_getloadavg2 -m $ARG1$ -w $ARG2$ -c $ARG3$ )

Vous devez également ajouter ou modifier une entrée pour ce service dans le fichier services.cfg, comme indiqué dans le Listing 10. Il convient de noter que point d'exclamation! sépare les paramètres du plugin. Comme précédemment, localhost doit être défini dans le fichier de configuration hosts.cfg.

Listing 10. Créer un service à l'aide du plugin Python
définir le service (utiliser service-template host_name localhost service_description LoadAverage2 check_period 24x7 contact_groups server-admins notification_options c,r check_command check_mygetloadavg2!1!3.0!6.0 )

Écrire un plugin Tcl

Le dernier exemple est un plugin écrit en Tcl qui vérifie les taux de change de xmethods.net en utilisant les technologies SOAP (Simple Object Access Protocol) et WSDL (Web Services Description Language). SOAP fournit au plugin les taux de change actuels pour les comparer aux valeurs configurées. Si la valeur se situe dans la plage d'avertissement, l'état est considéré comme OK . Si la valeur est supérieure ou inférieure au niveau d'avertissement, mais pas inférieure à la limite critique, l'état est considéré comme AVERTISSEMENT . Sinon, l'état est considéré comme CRITICAL à moins qu'une défaillance du réseau ne se produise, auquel cas l'état est défini sur UNKNOWN .

Le plugin reconnaît les paramètres configurables afin que différents taux puissent être vérifiés avec différentes plages à vérifier. Il peut également être utilisé pour vérifier les taux de change de divers pays (Liste 11).

Listing 11. Plugin Tcl - vérifier les taux de change actuels
#!/usr/bin/env tclsh # parse arguments package require cmdline set options ( (country1.arg "" "Country 1") (country2.arg "" "Country 2") (lowerwarning.arg "" "Lower warning limit ") (upperwarning.arg "" "Limite d'avertissement supérieure") (lowercritical.arg "" "Limite critique inférieure") (uppercritical.arg "" "Limite critique supérieure") ) array set opt ​​​​)] # si l'utilisateur n'a pas fourni tous les arguments, # puis affiche un message d'aide pour chaque utilisation nécessaire ( if ($opt($necessary) == "") ( set argv "-help" catch (cmdline::geoptions argv $options (: )) puts stderr $usage exit 3 ) ) # load package TclWebServices package require WS::Client if ( 1] ) error]) ( # si pour une raison quelconque le cours n'a pas pu être chargé, signalez-le met "EXCHANGERATE UNKNOWN: $error" exit 3 ) si (($résultat< $opt(lowercritical)) || ($result >$opt(uppercritical))) ( met "EXCHANGERATE CRITICAL: rate is $result" exit 2 ) if (($result< $opt(lowerwarning)) || ($result >$opt(upperwarning))) ( met "EXCHANGERATE WARNING: rate is $result" exit 1 ) met "EXCHANGERATE OK: rate is $result" exit 0

Nous devons maintenant enregistrer cette commande pour que Nagios sache comment l'appeler. Pour ce faire, vous devez créer un fichier /etc/nagios-plugins/config/exchangerate.cfg avec un contenu similaire aux configurations précédentes et la définition de commande suivante :

command_line /path/to/check_exchangerate -country1 $ARG1$ -country2 $ARG2$ -lowercritical \ $ARG3$ -lowerwarning $ARG4$ -upperwarning $ARG5$ -uppercritical $ARG6$

Le nom de commande check_exchangerate est utilisé dans l'exemple ci-dessous.

Ensuite, vous devez créer un service qui utilisera le plugin créé pour suivre les taux de change. Voici un exemple de définition de service qui associe le service au serveur localhost. Bien que la vérification ne soit pas vraiment liée à vrai ordinateur, il doit encore être lié au système. Si la vérification inclut l'appel des méthodes SOAP des serveurs du réseau surveillé, vous devez ajouter un serveur réel à surveiller et lier le service à ce serveur. Le code vérifie que le taux de change de la livre sterling par rapport au yen japonais est compris entre 225 et 275.

Listing 12. Ajout du plugin Tcl en tant que nouveau service
définir le service (utiliser service-template host_name localhost service_description EXCHANGERATE check_period 24x7 contact_groups other-admins notification_options c,r check_command check_exchangerate!England!Japan!200!225!275!300 )

Conclusion

Nagios peut être utilisé pour surveiller tous les types de logiciels et de matériel informatique. La possibilité de créer vos propres plugins vous permet de surveiller tout ce avec quoi le serveur Nagios peut parler. Pour ce faire, vous pouvez utiliser n'importe quel langage de programmation qui accepte les arguments avec ligne de commande et prend en charge les codes de retour, les possibilités sont donc presque illimitées !

Un administrateur système expérimenté peut étendre l'exemple SOAP avec Tcl ou tout autre langage pour interagir avec les services Web sur l'intranet et écrire des plug-ins pour vérifier que ces services fonctionnent correctement.

Vous pouvez également utiliser des plugins C ou les fonctionnalités de programmation C intégrées à votre langage dynamique (Pyinline en Python, Inline en Perl ou Critcl en Tcl) pour combiner la combinaison des API du système d'exploitation en C avec un plugin écrit dans un langage de haut niveau. .

Une autre fonctionnalité de Nagios qui mérite d'être examinée est la validation passive. processus de surveillance avec en utilisant Nagios, abordé dans cet article, s'appuie sur des composants exécutables pour déterminer l'état avec un court cycle de vie, en exécutant ces composants et en obtenant des résultats. Avec la vérification passive, Nagios n'exécute pas de plugins pour vérifier l'état, mais candidatures individuelles envoyer des messages de changement d'état périodiquement ou lorsque l'état du service change. Une telle application peut recevoir des alertes de diverses sources, les accumuler et transmettre les informations de synthèse préparées à Nagios. Nagios peut également supposer qu'un service est tombé en panne s'il n'envoie pas de notifications pendant un certain temps. L'implémentation de la validation passive avec Nagios sera décrite dans le prochain article.

L'avantage des plugins pour Nagios est la facilité avec laquelle ils peuvent être créés et partagés. Les plugins Nagios sont utiles dans les situations auxquelles les administrateurs réseau et système sont confrontés, et dans la plupart des cas, cela réutilisation les résultats d'un travail que quelqu'un a déjà fait auparavant. Comme les ressources Wiki et Web populaires, il ne faut pas beaucoup d'efforts pour apporter un exemple utile, tandis que les capacités combinées de tous plugins disponibles très grand.

Lorsque quelque chose se brise dans le système ou commence à se comporter de manière inhabituelle, les utilisateurs souffrent à l'unisson. Par conséquent, dans ce cas, vous devez informer quelqu'un de la panne dès que possible. Il serait encore mieux d'anticiper l'apparition de problèmes en avance. Cette note décrira l'installation et la configuration de Nagios, ce qui vous permet de résoudre avec succès de tels problèmes.

Invariants

La plupart des systèmes ont un certain nombre d'invariants qui ne devraient jamais être violés. Voici quelques exemples d'infractions possibles :

  • La charge moyenne sur l'une des machines est devenue supérieure à X ;
  • Il y a moins de X mémoire libre sur l'une des machines ;
  • L'une des machines dispose de moins de X espace disque libre ;
  • Trop de descripteurs de fichiers ouverts sur la machine X ;
  • Le pourcentage est très chaud, le disque va bientôt s'effondrer, une petite charge UPS ;
  • Trafic réseau élevé, e/s disque, swap faible, etc.
  • L'un des hôtes n'envoie pas de ping ou envoie un ping avec trop de RTT ;
  • Quelque chose a cessé de se résoudre via DNS ;
  • Des versions plus récentes des packages installés sont disponibles ;
  • Étonnamment, de nombreux utilisateurs se sont connectés à l'une des machines ;
  • Il y a erreurs critiques dans les journaux des X dernières minutes ;
  • Le nombre d'erreurs non critiques au cours des X dernières minutes a dépassé Y ;
  • Pose ou répond lentement PostgreSQL , Redis , RabbitMQ , ...;
  • Le certificat SSL expirera bientôt ;
  • Le 99e centile du temps de réponse du service est beaucoup plus long que d'habitude ;
  • Mail, SMS, notifications push ne partent pas, ... ;
  • Vous devez recharger le solde dans un service tiers (AWS, Logentries, ...);
  • Coûts suspects élevés dans un service tiers ;
  • Dans l'environnement de test, il n'était pas possible de récupérer à partir de la sauvegarde de la vente ;
  • Le service est devenu indisponible depuis Zelenograd et l'Afrique du Sud;
  • Selon les bilans de santé internes du service, nous avons rencontré l'un des pools de threads ;

Comme vous pouvez le constater, dans presque tous les services, vous pouvez facilement trouver deux douzaines d'invariants, voire plus, qui ne devraient jamais être violés et qui sont assez faciles à surveiller automatiquement. Si quelque chose se brise, nous commençons à envoyer des lettres aux administrateurs, des SMS aux supérieurs et à passer des appels téléphoniques aux codeurs.

Installer Nagios

D'ailleurs, grâce à ma connaissance de Nagios, j'ai commencé à mieux comprendre les gens qui prônent le sharding manuel et le basculement manuel. Mais c'est peut-être un sujet pour une note séparée.

Comment surveillez-vous votre système ?

Solution de surveillance populaire, nagios vous permet de mettre en œuvre des systèmes évolutifs. La configuration des systèmes distribués est un processus long, dans le cadre de l'article, nous allons implémenter la surveillance d'un service sur un hôte distant.

Le travail de configuration sera effectué sur un serveur avec un système d'exploitation Cent OS 7, le client nrpe utilisera également CentOS 7

Installer le plugin sur le client nrpe et autorisez la connexion au serveur dans ses paramètres.

Installation de Nagios et configuration du serveur de supervision

Nous commençons la configuration sur la machine qui fera office de serveur nagios. Installez les packages nécessaires :

yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp décompresser

nagios travaille à travers apache, donc httpd est dans la liste des packages installés

Nous allons dans le répertoire racine avec les fichiers temporaires et y téléchargeons les dernières versions de nagios et des plugins nagios en utilisant wget

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.2.8.tar.gz

wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz

Créer un utilisateur système et un groupe

Ajout de l'utilisateur nagios au groupe nagcmd

usermod -a -G nagcmd nagios

usermod -a -G nagios,nagcmd apache

Puisque nous utilisons CentOS, httpd ne s'exécute pas en tant qu'utilisateur www-data, mais en tant qu'utilisateur apache

Pour éviter les conflits de droits à l'avenir, ajoutez l'utilisateur apache aux groupes nagios, nagcmd

Extraire le contenu de l'archive téléchargée

tar -zxvf nagios-4.2.0.tar.gz

Allez dans le répertoire avec les fichiers nagios

À l'avenir, nous installerons à la fois nagios et nrpe à partir de la source

./configure --with-command-group=nagcmd

Spécifiez le groupe nagcmd en tant qu'option lors de l'assemblage

Compilation

créer le mode de commande d'installation

Copiez de manière récursive le répertoire de la bibliothèque dans /usr/local sur le serveur

cp -R contrib/eventhandlers /usr/local/nagios/libexec

Nous changeons également de manière récursive le propriétaire et le groupe du propriétaire des répertoires et des fichiers sur nagios

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Nous essayons d'exécuter et de voir la version de nagios en spécifiant le chemin vers le fichier de configuration principal

Ajouter nagios au démarrage - le système l'exécutera à chaque fois au démarrage

systemctl activer nagios

Démarrage du service

Nous effectuons des opérations similaires avec le serveur Web

Définir le mot de passe de l'utilisateur nagios

Avec de l'aide htpasswd générer un fichier qui restreindra l'accès pour l'utilisateur nagiosadmin

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

L'installation du package principal est maintenant terminée. Ouvrez un navigateur Internet et saisissez chaîne de recherche adresse IP du serveur, puis /nagios et accédez à l'interface Web

Configuration de la surveillance de service sur un hôte distant

Nous allons sur une autre machine serveur qui agira en tant que client nagios
Allez dans le répertoire /tmp/

Décompressez nagios-plugins-2.1.2

tar -zxvf nagios-plugins-2.1.2

cd nagios-plugins-2.1.2

Compilation avec l'utilisateur et le groupe nagios

./configure --with-command-user=nagios --with-nagios-group=nagios

Maintenant, installez greffon nrpe

Tout d'abord, installez en plus à partir du référentiel openssl-devel, s'il est déjà installé, ignorez l'étape (le paquet doit également être présent sur le serveur nagios)

yum -y installer openssl-devel

Vous pouvez également installer à partir du référentiel

yum installer nagios-plugins-all nagios-plugins-nrpe

Si vous avez besoin d'une nouvelle version, alors
Téléchargement du pack

wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Décompressez tar.gz

tar -zxvf nrpe-2.15.tar.gz

Compiler de la même manière qu'avant

Aller sur le serveur nagios

Nous essayons de nous connecter depuis le serveur en spécifiant après la clé -H adresse IP du client

Nous obtenons la connexion refusée et allons configurer le plugin

Nous démarrons nrpe sur le client et ajoutons le service au démarrage

Ouvrez le fichier de configuration principal et spécifiez l'adresse IP du serveur comme valeur dans la section allow_hosts

mcedit /etc/nrpe/nrpe.cfg

allow_hosts = 10.11.27.11

Retour au serveur

/usr/local/nagios/libexec/check_nrpe -H 10.11.27.44

Maintenant, notre tentative est réussie et nous voyons la version nagios

Ouvrez à nouveau la configuration principale

Supprimez la marque de commentaire de la ligne avec cfg_dir(cfg_dir=/usr/local/nagios/etc/servers)

Créer un répertoire et y accéder

mkdir /usr/local/nagios/etc/servers

cd /usr/local/nagios/etc/servers

Déterminez les hôtes qui seront surveillés. Les hôtes peuvent avoir n'importe quel nom, nagios verra tous les fichiers avec l'extension cfg

Nous prescrivons les paramètres de l'hôte, la signification des directives ressort clairement du nom. Il peut y avoir beaucoup plus de ces directives en cas de besoin de surveillance de réglage fin, ici nous considérons la configuration de travail de base

définir l'hôte (
utiliser le serveur linux
nom_hôte cenos11
alias juste client nagios
adresse 10.11.27.44
max_check_attempts 5
check_period 24×7
notification_interval 30
notification_period 24×7

}

Ajoutez une configuration pour le service que nous surveillons. Maintenant on se borne à vérifier la présence d'un ping vers l'hôte

{
utiliser le service générique
nom_hôte cenos11
service_description PING
check_command check_ping!100.0.20%!500.0.50%
}

La commande check_command a été utilisée, un extrait du manuel à ce sujet dit ce qui suit :

check_ping -H -w ,% -c ,%
[-p paquets] [-t timeout] [-4|-6]

En conséquence, avec une perte de 20% de paquets, nous recevrons un avertissement, avec une perte de 50% - ALERTE

Exécutez à nouveau et assurez-vous qu'il n'y a pas d'erreurs

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Redémarrage du service

systemctl redémarrer nagios

Nous allons à l'interface Web et voyons que le service sur l'hôte distant que nous surveillons y est affiché (dans la configuration montrée dans la capture d'écran, la surveillance d'un certain nombre d'autres ressources est configurée). La configuration du serveur de surveillance avec les fonctionnalités de base est maintenant terminée.

Configuration des ALERTES dans nagios

Ouvrez le fichier de configuration principal et, si nécessaire, décommentez la ligne cfg_file=/usr/local/nagios/etc/objects/contacts.cfg:

mcedit /usr/local/nagios/etc/nagios.cfg

Dans le fichier, nous définissons l'adresse e-mail de contact pour l'envoi des notifications :

mcedit /usr/local/nagios/etc/objects/contacts.cfg

définir le contact (
nom_contact nagiosadmin
utiliser le contact générique
alias Nagios Admin
e-mail [courriel protégé]

}

Redémarrage du service

cyctemctl redémarre nagios

Vous pouvez également utiliser des Logiciel par lequel, par exemple, des messages SMS peuvent être envoyés ALERTE concernant les services essentiels. Un serveur Nagios fonctionnel a été reçu, son installation et sa configuration sont terminées.

Pour les serveurs, vous pouvez installer le serveur et le client Nagios sur la même machine, mais il est beaucoup plus facile d'utiliser un package différent, tel que .

Nagios est l'un des outils de surveillance les plus utilisés. Serveurs Linux et Windows open source. Avec lui, vous pouvez suivre les progrès applications diverses et services à distance via une interface web. Nagios peut également surveiller les routeurs et autres périphériques réseau.

Avec Nagios, vous pouvez surveiller les paramètres de base du serveur tels que la charge du processeur, l'utilisation de la mémoire, etc. Tout cela est disponible dans une interface Web qui nécessite une simple authentification pour y accéder. Dans cet article, nous allons voir comment s'effectue l'installation de Nagios Ubuntu, ainsi que la configuration de ce programme.

Il existe plusieurs façons d'installer Nagios Ubuntu 16.04. Vous pouvez utiliser le PPA ou l'installer à l'aide de l'archive téléchargée sur le site officiel. Au ce moment la dernière version est la 4.3. Seul 4.2 est disponible dans le PPA, nous allons donc examiner installation manuelle en utilisant les archives.

Mais avant de procéder à l'installation, vous devez mettre à jour le système et installer tous les composants nécessaires pour construire le programme :

sudo apt install build-essential apache2 php7.0 openssl perl make php7.0-gd libgd2-xpm-dev libapache2-mod-php7.0 libperl-dev démon libssl-dev wget apache2-utils décompresser

Ensuite, vous devez créer un groupe et un utilisateur sous lesquels Nagios s'exécutera, ainsi que des commandes shell exécutées dans l'interface Web :

sudo useradd nagios
$ sudo groupadd nagcmd

Ajoutez l'utilisateur nagios et l'utilisateur sous lequel Apache s'exécute au groupe nagcmd :

sudo usermod -a -G nagcmd nagios
$ sudo usermod -a -G nagcmd www-data

Ensuite, nous devons télécharger les sources de nagios. Cela peut être fait avec une commande de terminal, mais comme nous voulons tirer le meilleur parti nouvelle version, il est préférable d'aller sur le site officiel et de télécharger.

Cliquez d'abord sur l'élément "Nagio Core", puis faites défiler vers le bas et appuyez sur Télécharger:

A ce stade, vous pouvez remplir des informations vous concernant, ou sauter en cliquant sur "Ignorer le téléchargement":

Il reste à choisir la version, par exemple, 4.3.2. Une fois le téléchargement terminé, accédez au dossier des téléchargements et décompressez l'archive :

cd ~/Téléchargements/
$ tar -zxvf /tmp/nagios-4.3.2.tar.gz

Nous pouvons maintenant passer à la compilation de nagios. Pour ce faire, vous devez exécuter les commandes suivantes :

./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/
$faire tout
$ sudo make install
$ sudo make install-init
$ sudo make install-config
$ sudo make install-commandmode
$ sudo make install-webconf

Configurer Nagios sur Ubuntu

Tous les fichiers de configuration du programme seront placés par l'installateur dans /usr/local/nagios/etc/. Les paramètres par défaut permettent à Nagios de fonctionner, mais nous devons apporter quelques modifications supplémentaires. Ouvrez le fichier contact.cfg et modifiez adresse e-mailà qui les notifications seront envoyées :

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

définir le contact(
nom_contact nagiosadmin ; Nom d'utilisateur court
utiliser le contact générique ; Modèle par défaut
alias Nagios Admin ; Nom d'utilisateur complet
e-mail [courriel protégé] placer ; Votre e-mail
}

Pour que l'interface Web fonctionne, vous devez créer un mot de passe pour l'utilisateur nagiosadmin à l'aide de htpasswd, sans cela, vous ne pouvez tout simplement pas entrer dans l'interface :

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Enfin, pour un fonctionnement correct, vous devez effectuer quelques réglages pour le serveur Web. Activez le module cgi :

sudo a2enmod cgi

Redémarrez le serveur Web :

redémarrage du service sudo apache2

Recevoir caractéristiques supplémentaires nagios, vous pouvez installer un ensemble de plugins. Pour ce faire, téléchargez-le d'abord :


Maintenant, décompressez l'archive et accédez au dossier avec :

tar -zxvf /tmp/nagios-plugins-2.1.1.tar.gz
$ cd /tmp/nagios-plugins-2.1.1/

Pour compiler les modules, exécutez :

./configure --with-nagios-user=nagios --with-nagios-group=nagios
$faire
$ faire installer

Les modules sont installés dans le dossier Nagios, vérifiez maintenant si la configuration est correcte :

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Pour démarrer automatiquement, créez un fichier Unit pour systemd :

sudo vi /etc/systemd/system/nagios.service


Description=Nagios
BindTo=réseau.cible


WantedBy=multi-utilisateur.cible


Utilisateur=nagios
Groupe=nagios
Genre=simple
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

Lancer Nagios

Presque tout est prêt, il reste à démarrer le service et à commencer à l'utiliser. Pour démarrer le service, tapez :

sudo systemctl stat nagios

Pour ouvrir l'interface web de nagios, il suffira de taper l'adresse ip et l'url de nagios dans le navigateur. Si vous avez installé tout cela sur votre ordinateur local, utilisez :

http://localhost/nagios

Immédiatement après avoir ouvert la page, vous devrez entrer le nom d'utilisateur nagiosadmin et le mot de passe que vous avez défini précédemment. Après cela, vous pouvez utiliser toutes les fonctionnalités du programme :

résultats

Dans cet article, nous avons vu comment mise en place de nagios 4 et aussi installation complète dernière version dans système opérateur Ubuntu. Malgré le fait qu'à première vue, tout semble compliqué, le processus est assez simple. Vous pouvez maintenant surveiller Nagios Ubuntu 16.04. J'espère que ces informations vous ont été utiles.