URL: https://linuxfr.org/news/ncpa-un-agent-pour-nagios Title: NCPA, un agent pour Nagios Authors: Startrek1701 Ysabeau đŸ§¶, gUI et BenoĂźt Sibaud Date: 2022ćčŽ06月20æ—„T22:44:02+02:00 License: CC By-SA Tags: nagios Score: 18 Nagios est un logiciel de supervision qui possĂšde de nombreux plugins, parmi ces plugins, il y en a certains qui permettent d’envoyer des commandes de vĂ©rifications locales sur une machine distante. Nagios communique donc avec un agent qui va faire des vĂ©rifications localement sur la machine cliente. Au dĂ©but, NRPE (agent Linux) et winNrpe (agent Windows), semblaient ĂȘtre les agents parfait pour Nagios, mais les Ă©volutions de Nagios ont fait qu’à moment donnĂ©, il y a eu des incohĂ©rences winnrpe et nsclient++ (dĂ©sactivation de la couche SSL/TLS). Finalement, aprĂšs quelques recherches, il semblerait que Nagios suggĂšre un agent : NCPA (_Nagios Cross Platform Agent_ ou, en français agent Nagios multiplateforme). ---- [NCPA - getting started ](https://www.nagios.org/ncpa/getting-started.php) [TĂ©lĂ©charger check_ncpa](https://exchange.nagios.org/directory/Plugins/Network-and-Systems-Management/check_ncpa/details) [TĂ©lĂ©charger agent](https://www.nagios.org/ncpa/#downloads) [Aide sur NCPA](https://www.nagios.org/ncpa/help.php) ---- # Historique de NCPA (selon le site de Nagios) Les origines de la NCPA remontent Ă  la confĂ©rence mondiale Nagios de 2012, oĂč un administrateur rĂ©seau a dĂ©clarĂ© : >Je n’ai aucune idĂ©e de la raison pour laquelle les agents sont si difficiles. AprĂšs avoir rĂ©flĂ©chi Ă  cette dĂ©claration, nous n’avions pas de rĂ©ponse. L’idĂ©e de faire de NCPA un agent de surveillance unique, sĂ©curisĂ©, simple et facile Ă  gĂ©rer a Ă©tĂ© formĂ©e. En 2014, la premiĂšre version de NCPA a Ă©tĂ© publiĂ©e avec les fonctionnalitĂ©s de base qui sont au cƓur du projet, comme l’API multiplateforme. Aujourd’hui, NCPA a parcouru un long chemin depuis l’idĂ©e initiale de 2014. Il comprend d’innombrables fonctionnalitĂ©s supplĂ©mentaires, avec beaucoup d’autres en cours de dĂ©veloppement. À propos des agents =================== Les agents peuvent fonctionner sous deux modes : - _Active Checks_ : c’est Nagios qui, via `check_ncpa`, demande l’exĂ©cution d’une vĂ©rification (sujet traitĂ© dans cette publication). - _Passive Checks_ (NRDP) : l’agent exĂ©cute des vĂ©rifications dĂ©finies dans son fichier de configuration et envoie le rĂ©sultat Ă  un serveur de supervision dotĂ© du module NRDP. Ce module NRDP est inclus dans Nagios XI. Pour plus d’information sur les _passive checks_, la documentation « getting started » explique comment configurer l’agent et Nagios pour rĂ©alise ce type de supervision. Note : si on veut comparer NCPA par rapport Ă  NRPE, NCPA ne contient pas de ligne de configuration de `check` prĂȘt Ă  ĂȘtre utilisĂ©. Autre point, dans NRPE, il y avait un module ou fonction qui permettait d’avoir le `loadavg` du systĂšme, ce n’est plus possible avec NCPA, il faut utiliser les fonctions liĂ©es au CPU. Check_ncpa ========== C’est le plugin qui doit ĂȘtre installĂ© sur le serveur Nagios. Il s’agit d’un script python. Attention, sous CentOS 8, il y a un problĂšme de version de python. En effet, l’exĂ©cutable s’appelle `python2` sur CentOS 8 et non `python` donc, il faut adapter le script python `check_ncpa` pour qu’il appelle `python2`. ```python #!/usr/bin/env python SYNOPSIS ``` vers ```python #!/usr/bin/env python2 SYNOPSIS ``` **NdM : la documentation du script stipulant qu'il est compatible python2 et 3, il semblerait que cet avertissement ne soit plus d'actualitĂ©.** Sinon, pour la partie serveur, le _check_ncpa_ est installĂ©, il ne reste plus qu’à l’appeler ou plutĂŽt l’utiliser. Mais avant de l’appeler, il faut installer les agents sur les serveurs Ă  superviser. Installation de l’agent ----------------------- Pour l’installation de l’agent sur le serveur, il y a un exĂ©cutable 32-bits pour Windows et un RPM 64-bits sous Linux ainsi qu’une version pour MacOS. Durant l’installation sous Windows, un **community_string** est demandĂ©, ce n’est pas le cas sous Linux. Ce **community_string** est trĂšs important, car c’est la clĂ© d’authentification entre l’agent et check_ncpa (Nagios). L’installation de l’agent va soit crĂ©er un service sous Windows, soit un daemon sous Linux. Ainsi, sous Linux, pour activer, dĂ©marrer, arrĂȘter ncpa, on utilisera `systemctl` avec comme nom de process : `ncpa_listener`. Et, sous Windows, il suffit d’aller dans `services.msc`. Comme pour les autres types d’agent, il y a un fichier de configuration, fichier oĂč est stockĂ© notamment le **community_string**. Il s’agit du fichier `ncpa.cfg`. Le fichier est localisĂ© : - sous Linux : `/usr/local/ncpa/etc/ncpa.cfg`. - sous Windows : `c:\program files (x86)\Nagios\ncpa\etc\ncpa.cfg`. Étrangement, il n’est pas actif par dĂ©faut. Par sĂ©curitĂ©, je recommanderais donc d’activer la ligne `admin_auth_only = 1`. En mettant `admin_auth_only = 1`, on active la demande d’un mot de passe sur l’interface GUI. Et il y a bien sur dans ce fichier ncpa.cfg, le paramĂštre `community_string = xxxxxxxxxxxx`. Si on veut changer le token (community_string) aprĂšs installation, il faut redĂ©marrer les services ou process installĂ© sur le serveur. Pour les exemples, je vais partir du principe que Nagios est installĂ© dans /usr/local/nagios. Pour tester que l’agent fonctionne bien, on peut aller sur le serveur Nagios et exĂ©cuter la commande suivante : ``` /usr/local/nagios/libexec/check_ncpa.py -H -t '' -P 5693 -M system/agent_version ``` Exemples de check ----------------- Voici un exemple d’appel dĂ©crit dans les fichiers de Nagios. Il faut prĂ©alablement dĂ©crire le plugin dans le fichier command.cfg de Nagios : ``` define command { command_name check_ncpa command_line $USER1$/check_ncpa.py -H $HOSTADDRESS$ $ARG1$ } ``` ### Check CPU : ``` check_ncpa!-t '' -M 'cpu/percent' -q aggregate=avg -w 90 -c 99 ``` ### Check DISK : Les \ et / doivent ĂȘtre reprĂ©sentĂ©s par un **|** (barre verticale). Windows : check_ncpa !-t '' -P 5693 -M 'disk/logical/C:|/used_percent' --warning 90 --critical 95 Linux : check_ncpa !-t '' -P 5693 -M 'disk/logical/|/used_percent' --warning 90 --critical 95 ### Check Memory : check_ncpa !-t '' -P 5693 -M 'memory/virtual' --warning 90 --critical 95 ### Check Services (Windows): check_ncpa ! -t '' -P 5693 -M 'services' -q 'service=,check=1' ### Check Process (Linux): check_ncpa !-t '' -P 5693 -M 'processes' -q 'name=' OU check_ncpa -t '' -P 5693 -M 'processes' -q 'cmd=, match=search' -c 1:1 Attention, il faut faire quelques tests, et de plus, avec un Windows en Français, il y a un risque de message d’erreurs (en tout cas sur le fait d’avoir la liste complĂšte des process). C’est un problĂšme constatĂ© et signalĂ©. L’interface web de l’agent permet de voir les essais ou checks effectuĂ©s. Pour les tests, il est toujours possible de faire des essais via la ligne de commande. Ex : ```bash /opt/nagios/libexec/check_ncpa.py -H -t '' -P 5693 -M 'processes' -q 'cmd=robotProm.jar,match=search' -c 1:1 ``` Plugins ========= Il est possible de faire des plugins, des scripts Windows ou Linux Ă  mettre dans le rĂ©pertoire plugins de l’agent ncpa. Exemple : ```bash #!/bin/bash nbProcess=`ps aux | grep java | grep tomcat | wc -l` echo $nbProcess if [ $nbProcess -eq 1 ]; then ret=0 comment="Tomcat process is running" else ret=2 comment="No tomcat process" fi; if [[ -z $ret ]]; then echo "No exit code was supplied, aborting!" exit fi if [[ -z $comment ]]; then echo "No dummy message was supplied, aborting!" exit fi echo $comment exit $ret ``` Si, lors des premiers checks, il y a le message : `CRITICAL: Incorrect credentials given →`, il faudra vĂ©rifier l’orthographe du token. Conclusion ========== Cet article ne couvre pas tout NCPA, mais permet de prĂ©senter le produit et les usages les plus communs. Il faut constater qu’il y a presque autant de type d’agent (NRPE, NCPA, nsclient++...) qu’il y a de serveur de supervision (Nagios, Centreon, Shinken...) mais, si on suit Nagios, NCPA est l’agent recommandĂ©.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /