|
|
Installation et Configuration de NSCA |
|
|
|
Le service NSCA de Nagios est un service passif, c'est-à-dire que le démon nagios "attend" les informations que les clients lui transmettent. ce n'est pas lui, de sa propre initiative qui va demander une information ( contrairement a un plugin normal ou au plugin du même style NRPE ). INSTALLATION : Après avoir téléchager le plugin et tous ses fichiers associés sur le site de Nagios Exchange, placer le tar dans votre répertoire personnel et décompressez le : tar -vxzf NSCA-2.4.tar.gz Entrez dans le répertoire ainsi créé : cd NSCA-2.4/ Pour installer nsca, il faut obligatoirement que libmcrypt soit au préalable installé sur votre système ( que ce soit pour votre serveur Nagios ou pour votre client distant ). Les paquets suivants sont souvent utiles au bon fonctionnement de mcrypt : - mcrypt - libmcrypt - libltdl3-devel - libmcrypt4-devel - libmcrypt4-static-devel Une fois tous ces paquets installés avec succés, vous pouvez passer à la compilation de nsca sur votre client : ./configure make all NSCA est désormais compilé pour votre client avec la librairie mcrypt intégré ( nous verrons l'utilité de celle-ci un peu après ). Toujours dans le répertoire nsca-2.4, on peu désormais trouver les fichiers qui nous seront utilent. Pour la partie serveur : - nsca.cfg C'est le fichier qui va contenir les paramètres permettant la communications avec les hotes distants. - nsca.xinetd C'est le fichier qui va permettre de lancer le daemon nsca à partir de xinetd. - src/nsca C'est le daemon nsca qui tourne sur le serveur. Pour la partie cliente : - send_nsca.cfg C'est le fichier qui va contenir les paramètres permettant la communication avec le daemon nsca. - src/send_nsca C'est le programme qui va transmettre les données au daemon. CONFIGURATION : Sur le serveur : Copiez les 3 fichiers correspondant dans les répertoires suivants : - nsca : /etc/nagios/ - nsca.cfg : /etc/nagios/ - nsca.xinetd : /etc/xinetd/ Il va falloir maintenant configurer ces fichiers. Dans un premier temps, nous allons nous occuper du fichier nsca.cfg : - indiquer un password ( il faudra indiquer le même sur les clients ) - indiquer le port sur lequel le daemon va écouter ( par exemple : 5667 ) - indiquer l'adresse IP des clients qui vont nous envoyer les données ( allowed_hosts ) - indiquer le mode de cryptage des données ( ne pas se contenter d'un XOR ), c'est pour cela que nous avons compilé avec libmcrypt. ( c'est indispensable de justifier un BON mode de cryptage afin d'assurer une bonne sécurité ). - indiquer le nsca_user ( par exempe: nagios ) - indiquer le nsca_group ( par exemple : nagios ) - pour les premier essai indiquer debug=1 - indiquer le chemin du fichier de command de nagios : par exemple: /var/spool/nagios/nagios.cmd ) - indiquer le chmein du fichier de dump créé par nsca ( par exmple : /var/spool/nagios/nsca.dump ) - indiquer un max_packet_age : temps maximum pendant lequel un client peu envoyer ses données en secondes ( par exmple : 300 ) Ensuite il va falloir s'occuper du fichier nsca.xinetd : - indiquer sur quel port va écouter le daemon ( par exemple : 5667 ) - indiquer le chemin du daemon ( par exemple : /etc/nagios/nsca ) - indiquer le chemin du fichier de configuration ( par exemple : -c /etc/nagios/nsca.cfg --inetd ) ici on indique ' --inetd' pour indiquer au fichier de configuration que le daemon tourne grace a xinetd. - indiquer le user ( par exemple : nagios ) - indiquer le group ( par exemple : nagios ) - indiquer desable à ' no ', sinon nsca ne se lancera pas ( il est par défaut à ' yes ' ) - indiquer les clients autorisé à envoyés des données ( only_from ) Maintenant vous pouvez faire un ' service xinetd restart ' ou un ' /etc/init.d/xinetd restart '. Vous pouvez vérifier que nsca fonctionne en controlant si le port indiquer auparavant ( par exemple : 5667 ) a été ouvert : netstat -tanpu Si celui-ci n'est pas ouvert, vérifiez que xinetd lance correctement nsca ( /var/log/messages ) et rajoutez dans /etc/services le port de nsca. Pour le client : Placer les 2 fichiers correspondants dans le répertoire /etc/nagios/. Nous supposerons ici que vous avez déja installé les plugins pour Nagios ainsi que net-snmp ( sans quoi nous ne pourrions faire aucun controles ). Il va falloir configurer le fichier send_nsca.cfg : - indiquer un password ( le même que sur le serveur ) - indiquer le mode de cryptage ( le même que sur le serveur ) Les donées seront envoyées à l'aide de commande utilisant ' send_nsca '. La commande qui permet d'envoyer l'état d'un service ( par exemple ) est de la forme suivante : dans l'ordre de gauche à droite : - Host name : nom de l'hote controlé - service description : description du service controlé - return code : code de retour du plugin pour Nagios ( 0, 1, 2 ) - output : données renvoyées sur stdout par le plugin - /etc/nagios/send_nsca : le programme en lui même s'inscrit ici - - H ip_du_serveur - - p port ( par exemple : 5667 ) - - to 60 ( time out ) - - d "delimiter" ( par exemple : ";" ) Le delimiter permet de séparer chaque éléments de la command afin que celle-ci soit comprise correctement par Nagios - - c /etc/nagios/send_nsca.cfg : le chemin du fichier de configuration. Arrivé jusqu'ici je pense que vous n'avez pas tout compris a la commande. C'est pourquoi un exemple va vous aider: Cette commande est lancé sur un serveur se situant derrière un parefeu ( d'adresse ip_parefeu ) et nous controler que ce même pare-feu possède une connexion ssh active. echo "parefeu;ssh-parefeu;return_code;`/usr/lib/nagios/plugins/check_ssh ip_parefeu`" | /etc/nagios/send_nsca -H ip_nagios -p 5667 -to 60 -d ";" -c /etc/nagios/send_nsca.cfg Normalement si tout c'est bien déroulé, il vous affiche un message du type : 1 data packet(s) sent to host successfully. Vous pouvez vérifier coté serveur que votre information a bien été recu grace à /var/log/messages. Si les données ne passent toujours pas jusqu'au serveur, n'oubliez pas d'ouvrir le port sur votre firewall, et tand qu'a sécuriser encore, en ip source , indiqué celle de votre/vos serveur/s. INTEGRATION DANS NAGIOS : Maintenant que les données sont arrivées jusqu'au serveur Nagios, il va falloir faire en sorte que celui-ci les comprennent et les intègrent. Tout d'abord, il faut modifier quelques options dans nagios.cfg : indiquez les différentes options suivantes - check_external_command=1 - accept_passive_service_checks=1 Ensuite il va falloir s'occuper du fichier services.cfg. En effet nous n'allons pas pouvoir utiliser les même " generic-service " puisque dans notre cas, il sagit d'un service passif. Il faut créer un nouveau service de la forme suivante ( je vous laisse indiqué vos propres options de notifications ) : define service{ service_description mail delivery use generic-service active_checks_enabled 0 passive_checks_enabled 1 register 0 is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 contact_groups localhost-admins notification_interval 120 notification_period 24x7 notification_options w,u,c,r name passive_checkservice } Vous pouvez remarquer que a la fin de la description de notre nouveau service, nous avons indiqué un " name " qui va nous permettre d'utiliser dans un autre service celui-ci. Maintenant nous pouvons créer le service qui va récupérer les données réceptionnées par le daemon nsca : # NSCA define service{ use passive_checkservice host_name serveur.distant service_description ssh par nsca # ici la commande check_smtp n'a aucune signification particuliere # c'est simplement que sans check_command cela ne marche pas ! check_command check_smtp } Désormais Nagios recoie les données envoyé depuis le client par send_nsca et les intègrent grave à cette nouvelle définition de service.
|
|
|
Flash info
Vous avez besoin de configurer BIND ? Ne manquez pas la section "logiciels " ! |
|