INSTALLATION DETAILLEE DE NAGIOS 2.5 SOUS CENTOS 4.4
Transcription
INSTALLATION DETAILLEE DE NAGIOS 2.5 SOUS CENTOS 4.4
INSTALLATION DETAILLEE DE NAGIOS 2.5 SOUS CENTOS 4.4 - version 0.1 Jean-philippe Auger Février 2007 Introduction 1 2 Bienvenue dans cette documentation sur l'installation de NAGIOS version 2.5 sur une distribution CentOS Linux. Avant de commencer l'installation je tiens à vous mettre en garde, l'installation de NAGIOS n'est pas aisée (sinon cette documentation n'aurait pas lieu d'être), elle requiert un minimum d'attention, une connaissance de base des commandes et du système UNIX, ainsi qu'un peu de bon sens. Votre installation, je vous le dit tout de suite, aura peu de chance de marcher parfaitement du premier coup, il faudra adapter la conguration de NAGIOS à votre réseaux, à votre environnement, et ce n'est pas chose facile. Mais on y arrive en persévérant, NAGIOS est un outil formidable avec lequel ou peu faire un tas de choses, ne vous découragez pas ! J'ai essayé de faire une documentation aussi fournie que possible en ce qui concerne les problèmes que j'ai rencontrés, mais il est fort probable, que vous allez rencontrer des problèmes auxquels je n'ai pas été confronté. Pour cela, il existe les moteurs de recherche d'internet qui vous permettront de voir que d'autres personnes ont rencontré (et parfois solutionné) votre problème, fouillez les forums, et le web à la recherche de la perle rare, cela s'avère souvent payant et on en apprend tous les jours. Il existe aussi une documentation en français sur NAGIOS qui contient beaucoup de choses, et même si elle parait assez monstrueuse, elle vaut le coup d'oeil. Cette documentation a été faite avec le système LATEX en utilisant le logiciel TeXnicCenter1 sous Windows XP. Mais trêve de bavardage et place à la pratique. . . 1 Le logiciel c TeXnicCenter est disponible sur http ://www.toolscenter.org/ Table des matières I Installation de la distribution CentOS Linux et des paquets 5 1 Installation - partie I 6 2 Installation - partie II 8 3 Installation des RPM 9 1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Partitionnement manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Choix des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Fin de l'installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Installation manuelle des paquets fournis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 8 9 II Conguration du serveur web, de nagios, et de iptables 10 4 Serveur web 11 5 NAGIOS 13 6 Iptables 16 III Installation de nagiosgraph 18 7 Installation 19 8 Edition 20 9 Conguration 22 10 Vérication et exemple 23 IV Administration 25 4.1 Conguration du serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.1 Conguration de NAGIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.2 NAGIOS en https . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.1 Mise en place d'une politique de ltrage avec IPTABLES . . . . . . . . . . . . . . . . . . . . . . 16 7.1 Copie des paquets et installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 8.1 Fichiers de conguration de NAGIOSGRAPH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9.1 CGI et cong web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 10.1 Droits et exemple de graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 11 Administration de NAGIOS 11.1 11.2 11.3 11.4 Ajouter une machine dans NAGIOS . . . . . . . . . Ajouter un service pour une machine dans NAGIOS Lire les logs . . . . . . . . . . . . . . . . . . . . . . . Commandes utiles . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 26 27 28 28 TABLE DES MATIÈRES 4 V Annexes 30 A Les chiers de conguration 31 B Les commandes de l'éditeur VI 32 C Liens internet 33 D Les RPMs & isos utilisés. 34 Première partie Installation de la distribution CentOS Linux et des paquets 5 Chapitre 1 Installation - partie I 1.1 Installation Pour l'installation, vous aurez besoin de : une adresse ip sur votre réseau, l'adresse IP de votre passerelle de réseau, les adresses de vos serveurs DNS primaire et secondaire, un mot de passe administrateur que vous aurez choisi Reliez le futur serveur NAGIOS au réseau puis insérer le CD1 (ou DVD) CentOS Linux. Aprés le lancement du CD1, choisir les options suivantes : • • • • • • (install in graphical mode) ENTER skip testing the CD puis next French puis next French(latin 1) puis suivant Personnaliser puis suivant partitionnement manuel avec Disk Druid puis suivant 1.2 Partitionnement manuel S'il existe des partitions, il faut les supprimer. Sélectionnez les partitions en partant du bas puis supprimezles jusqu'à ne plus avoir qu'un seul /dev/hda . Pour le partitionnement, voici les tailles que je vous suggère (pour un disque dur de 40 Go environ, à vous d'adapter la taille des partitions) : Partition swap /boot / (racine) /usr /var /tmp /home Taille 1 Go 250 Mo 10Go 10Go 10Go 4Go (le reste) Pour créer les partitions : nouveau - type de système de chiers : swap - taille : 1000 - valider nouveau - point de montage : /boot - type de système de chier : ext3 - taille : 250 - valider nouveau - point de montage : / - type : ext3 - 10000 - valider etc... nouveau - /home - ext3 - taille : remplir jusqu'à la taille autorisée maximale. suivant (GRUB) suivant (périphérique réseau) - décochez DHCP - éditer (mettre l'adresse IP que vous avez choisi) nom d'hôte - nagios.domain.fr (mettez votre nom de domaine à la place de domaine.fr) indiquer l'IP de la passerelle 6 CHAPITRE 1. INSTALLATION - PARTIE I 7 indiquer les DNS primaire et DNS secondaire cliquez sur suivant activer le pare feu choisissez ssh - http/https - smtp SELinux - désactiver suivant (langue, french par défaut) suivant (fuseau horaire, paris par défaut) suivant choisir un mot de passe pour le compte root suivant 1.3 Choix des paquets Voyons les paquets que nous allons choisir pour cette installation. Ne laissez cochés que ceux de la liste, décochez tous les autres : BUREAUX : • (aucun) APPLICATIONS : • editeurs (cliquez sur détails puis cochez emacs, Vim) • Internet base sur texte (elinks) SERVEURS : • serveur Web : crypto-utils (ssl) - distcache - mod_perl - mod_python - mod_ssl • serveur messagerie : postx • serveur chiers windows : (base sans option, décochez tout) DEVELOPPEMENT : • (aucun) SYSTEME : • outils de système détails : MRTG - net SNMP utils - samba client Chapitre 2 Installation - partie II 2.1 Fin de l'installation Finissons l'installation proprement dite : cliquer sur suivant (l'installation se lance) cliquer sur continuer (formatage puis installation des paquets) installation du CD2 - valider - CD3 - valider redémarrer nagios login : root, mot de passe : (celui que vous avez choisi, ne l'oubliez pas !) Il reste encore quelques modications à faire : dans le chier /etc/log.d/conf/logwatch.conf remplacez MailTo=root par [email protected] dans le chier /etc/hosts rajouter l'adresse ip et le domaine de votre serveur : 127.0.0.1 195.XXX.XXX.XXX localhost.localdomain nagios.votredomaine.fr localhost nagios Votre installation de la distribution est à présent terminée. Vous devriez faire quelques tests pour voir si tout fonctionne correctement avant de passer à la suite, pinguez votre passerelle par exemple. Quelques commandes que vous pouvez taper pour tester votre installation (les adresses IP sont données ici à titre d'exemple, il faut évidemment les remplacer par celles qui correspondent chez vous) : Ping de la passerelle : #ping xxx.xxx.xxx.254 Ping d'un site internet : #ping yahoo.fr Il n'y a aucune raison à ce stade de l'installation pour que cela ne fonctionne pas. Si vous n'arrivez pas à avoir du réseau, vériez vos câbles et les adresses de votre conguration en tapant la commande ifcong , qui liste les diérentes interfaces réseaux de la machine. 8 Chapitre 3 Installation des RPM 3.1 Installation manuelle des paquets fournis Nous allons eectuer l'installation des diérents paquets nécessaires à NAGIOS, toutes les commandes se font sous le compte root. Vous trouverez en annexe une explication succincte des diérentes commandes utilisées ici (yum, rpm, et autres), pour le reste vous avez toujours la possibilité d'utiliser la commande man nom_de_la_commande qui lance le manuel attaché à chaque commande. Allons tout d'abord dans le répertoire du cdrom qui contient les paquets et copions le : #cd /root #cp -R /media/cdrom/NAGIOSRPMS/ . Puis lançons les commandes suivantes : #yum install libtool-libs #yum install gd #rpm #rpm #rpm #rpm -ivh -ivh -ivh -ivh nagios-2.5-1.el4.rf.i386.rpm fping-2.4-1.b2.2.el4.rf.i386.rpm perl-Crypt-DES-2.05-3.2.el4.rf.i386.rpm perl-Digest-SHA1-2.11-1.el3.rf.i386.rpm #yum install perl-Digest-HMAC #rpm -ivh perl-Net-SNMP-5.2.0-1.2.el4.rf.noarch.rpm perl-Socket6-0 .19-1.2.el4.rf.i386.rpm #rpm -ivh nagios-plugins-1.4.4-1.el4.rf.i386.rpm #rpm -ivh nagios-nrpe-2.5.1-1.el4.rf.i386.rpm #rpm -ivh nagios-plugins-nrpe-2.5.1-1 .el4.rf.i386.rpm #yum install libart_lgpl #rpm -ivh rrdtool-1.2.15-1.el4.rf.i386.rpm perl-rrdtool-1.2.15-1 .el4.rf.i386.rpm Attention, pour certains paquets il faut en faire plusieurs à la fois, cela permet de régler certains problèmes de dépendance (pour snmp et rrdtool par exemple). Normalement, tout devrait bien se passer. S'il manque des paquets, utilisez les commandes données en annexes (yum et rpm ) pour voir lesquels sont manquants et les installer. 9 Deuxième partie Conguration du serveur web, de nagios, et de iptables 10 Chapitre 4 Serveur web 4.1 Conguration du serveur Vous avez normalement choisi l'installation d'un serveur http (Apache en l'occurrence) au début de l'installation, nous allons maintenant congurer ce serveur web (toujours sous le compte root ). Editez le chier de conguration principal du serveur web Apache : #vi /etc/httpd/conf/httpd.conf Modiez les lignes suivantes (pensez à remplacer le mail de roger par le votre :p ) : ServerAdmin root@localhost #a remplacer par votre mail [email protected] ServerName new.host.name:80 #a remplacer par le nom de la machine nagios.domain.fr:80 ServerSignature Off ServerTokens Prod #Gestion des erreurs ErrorDocument 400 "Bad request" ErrorDocument 401 "Authorisation requiered" ErrorDocument 403 "Access denied" ErrorDocument 404 "This page doesn't exist" ErrorDocument 500 "The server made a boo boo" Editez le chier /etc/httpd/conf.d/welcome.conf du serveur web Apache : #vi /etc/httpd/conf.d/welcome.conf Modiez les lignes pour avoir ceci : <LocationMatch "^/+$"> Options -Indexes ErrorDocument 403 "Access denied" </LocationMatch> Editer le chier de conguration web de NAGIOS : #vi /etc/httpd/conf.d/nagios.conf Modiez le chier pour obtenir ceci : ScriptAlias /nagios/cgi-bin "/usr/lib/nagios/cgi" <Directory "/usr/lib/nagios/cgi"> # SSLRequireSSL Options ExecCGI AllowOverride None Order allow,deny 11 CHAPITRE 4. SERVEUR WEB 12 Allow from 195.221.0.0/16 # -> A remplacer par votre propre reseau # pour autoriser l'acces AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/htpasswd.users Require valid-user </Directory> Alias /nagios "/usr/share/nagios" <Directory "/usr/share/nagios"> # SSLRequireSSL Options None AllowOverride None Order allow,deny Allow from 195.221.0.0/16 # -> A remplacer par votre propre reseau # pour autoriser l'acces AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/htpasswd.users Require valid-user </Directory> Créons le nom de l'administrateur NAGIOS (ici on a choisi nagiosadmin ) et son mot de passe pour accéder à l'interface NAGIOS : #htpasswd -c /etc/nagios/htpasswd.users nagiosadmin new password: adding password for user nagiosadmin On teste la cong web et on ajoute le daemon httpd aux programmes qui se lancent au démarrage : #service httpd configtest #service httpd start #chkconfig httpd on Faites un test sur l'adresse de votre serveur en http (par exemple http ://195.221.150.55). Vous devriez tomber sur la page Access denied . Faites un test sur l'adresse de votre nagios en http (par exemple http ://195.221.150.55/nagios). Vous devriez avoir l'invite de mot de passe nagios. Chapitre 5 NAGIOS 5.1 Conguration de NAGIOS Nous allons commencer à congurer NAGIOS proprement dit. Editons d'abord le chier cgi.cfg (conguration des CGI pour NAGIOS pour l'interface web) : #service nagios stop #vi /etc/nagios/cgi.cfg Décommentez la ligne : nagios_check_command Modiez les lignes (remplacer nagiosadmin par le nom que vous avez choisi précédemment si diérent) : authorized_for_system_information=nagiosadmin # <-- supprimez theboss et jdoe authorized_for_configuration_information=nagiosadmin authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin refresh_rate=60 Editez le chier nagios.cfg (conguration de NAGIOS) : #vi /etc/nagios/nagios.cfg Remplacez email admin@localhost par votre mail à vous. Mettez en commentaires certaines commandes dans le chier minimal.cfg , une commande est dénie comme ceci : define command{ command_name command_line } check-host-alive $USER1$/check_ping -H $HOSTADDRESS$ -w 99,99% -c 100,100% -p 1 Vous allez donc commenter les 4 lignes de la commande comme ceci : #define command{ # command_name # command_line # } check-host-alive $USER1$/check_ping -H $HOSTADDRESS$ -w 99,99% -c 100,100% -p 1 Et faire la même chose pour les commandes suivantes (sinon vous aurez une erreur parce que les commandes auront été déclarées en double) : notify by email host-notify by email check host alive check ping check local disk 13 CHAPITRE 5. 14 NAGIOS check users check procs check load Vous allez également modier la commande check_local_procs dans le chier /etc/nagios/misccommands.cfg pour qu'elle ressemble à ceci : #vi /etc/nagios/misccommands.cfg # on supprime le "-s $ARG3$" en fin de ligne define command{ command_name check_local_procs command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ } Il faudra également supprimer le bouton 3-D Status Map du menu du site web nagios car il ne sert pas à grand chose. #vi /usr/share/nagios/side.html #supprimer les lignes suivantes <tr> <td width=13> etc etc...</td> <td nowrap> etc etc... 3-D Status Map</a></td> </tr> Pour nir, on vérie la cong (il ne devrait pas y avoir d'erreurs) et on recharge NAGIOS. Il se peut qu'il y ait une erreur sur le chier nagios.log mais ce n'est pas grave : #nagios -v /etc/nagios/nagios.cfg #service nagios start Faites un test en http sur un autre ordinateur. Vous devriez à présent avoir un nagios qui fonctionne (ouf) ! Les chiers principaux de conguration sont nagios.cfg et minimal.cfg, ils correspondent à une conguration minimaliste (comme son nom l'indique) qui regroupe dans le seul chier minimal.cfg les hosts, les services et tout le reste. Vous pouvez garder un unique chier avec tout dedans, ou bien faire plusieurs autres chiers an de séparer les hosts (hosts.cfg), les services(services.cfg), etc... . Si vous changez de méthode n'oubliez pas de changer aussi le chier nagios.cfg qui contient les chemins pour accéder à tous ces petits chiers. Pour l'instant essayez les diérentes rubriques de Nagios dans l'interface web, regardez les chiers de conguration et la doc de NAGIOS pour en comprendre le fonctionnement. 5.2 NAGIOS en https Comment passer NAGIOS en accès HTTPS ? Si tout s'est bien passé jusqu'à présent, vous avez un NAGIOS qui fonctionne en HTTP, nous allons passer le site web de HTTP en HTTPS. Pour cela il nous faut : 1. Un service web, arrêtons le pour l'instant : #service httpd stop 2. Une autorisation pour le port 443 en entrée dans iptables. Pour cela vous allez rajouter une ligne dans le chier /etc/syscong/iptables aprés avoir arrêté le service, puis le relancer : #service iptables stop #vi /etc/sysconfig/iptables #rajouter la ligne pour le port 443 de façon à -A RH-Firewall-1-INPUT -m state --state NEW -m -A RH-Firewall-1-INPUT -m state --state NEW -m -A RH-Firewall-1-INPUT -j REJECT --reject-with COMMIT #service iptables start avoir ceci : tcp -p tcp --dport 25 -j ACCEPT tcp -p tcp --dport 443 -j ACCEPT icmp-host-prohibited CHAPITRE 5. NAGIOS 15 3. Vous allez ensuite congurer le chier ssl.conf : On a un chier /etc/httpd/conf.d/ssl.conf existant de par l'installation et une directive Include conf.d/*.conf dans le chier /etc/httpd/conf/httpd.conf pour la cong des repertoires de NAGIOS qui lui dit de prendre en compte tous les chiers de conguration qui sont dans le repertoire conf.d/, donc : #vi /etc/httpd/conf.d/ssl.conf On modie de façon à avoir ceci : LoadModule ssl_module modules/mod_ssl.so Listen 443 <VirtualHost 195.221.150.55> ServerName nagios.votredomaine.fr:443 ServerAdmin [email protected] SSLEngine on </VirtualHost> 4. On supprime le http : #vi /etc/httpd/conf/httpd.conf Commentez la ligne Listen 80 pour forcer la connexion en HTTPS sur le port 443 : 5. Dans le chier /etc/httpd/conf.d/nagios.conf vous devriez avoir ceci : ScriptAlias /nagios/cgi-bin "/usr/lib/nagios/cgi" <Directory "/usr/lib/nagios/cgi"> Options ExecCGI AllowOverride None Order allow,deny Allow from 195.221.0.0/16 # -> a remplacer par votre propre reseau AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/htpasswd.users Require valid-user </Directory> Alias /nagios "/usr/share/nagios" <Directory "/usr/share/nagios"> Options None AllowOverride None Order allow,deny Allow from 195.221.0.0/16 # -> a remplacer par votre propre reseau AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios/htpasswd.users Require valid-user </Directory> On teste la cong web : #service httpd configtest Si c'est ok, on relance le serveur web : #service httpd start Un petit test sur l'adresse du serveur en HTTP ne devrait aboutir à rien. En revanche en HTTPS vous devriez avoir l'invite de mot de passe (avec l'adresse https ://xxx.xxx.xxx.xxx/nagios/ ). Chapitre 6 Iptables 6.1 Mise en place d'une politique de ltrage avec IPTABLES J'ai passé beaucoup de temps sur IPTABLES, il faut dire que c'est assez hardu à utiliser (du moins pour moi). J'ai fait une conguration qui, avec quelques modications, devrait correspondre. Elle a été faite avec le logiciel Firewall Builder1 qui ajoute une certaine dimension graphique à IPTABLE. Il est alors plus facile de manipuler les règles et d'avoir une bonne vue d'ensemble du ltrage qui est fait par IPTABLES. Vous n'êtes pas obligé d'utiliser iptables, à mon sens c'est un logiciel à connaître mais qui n'est pas forcément obligatoire. Il est assez compliqué à utiliser. De plus pour le faire fonctionner avec NAGIOS, vous devrez lui indiquer les diérentes adresses de vos réseaux, serveurs, etc... Si un service ne fonctionne pas dans NAGIOS, posez vous la question iptables laisse-t-il bien passer les connexions ? . J'ai eu beaucoup de cas comme ça en montant mon serveur NAGIOS (quand on rajoute un service, on a toujours un port qui est bloqué par le rewall). Si vous optez pour iptables malgré tout, je vous recommande vivement l'utilisation de Firewall Builder. Ici, on va utiliser le chier .fw créé avec le logiciel en question (et modié par vos soins) pour installer temporairement la cong du rewall, la sauvegarder, et se servir du chier de sauvegarde ainsi créé pour l'utiliser à la place de l'ancien /etc/syscong/iptables. Allons y pour les commandes : 1. Faites un backup de la cong actuelle d'iptables : #cd /root/ #iptables-save > /root/iptables_backup 2. Arrêtez le service iptables : #service iptables stop 3. Copiez le chier du cdrom vers le répertoire /root : #cp /media/cdrom/cerbere.fw . 4. Editez le chier cerbere.fw et remplacer les adresses par les vôtres (voir les commentaires dans le chier) : #vi cerbere.fw 5. Le rendre exécutable : #chmod u+x /root/cerbere.fw 6. Le lancer : #./cerbere.fw 7. Sauvegardez dans un chier temp : #iptables-save > /root/cerbere 8. Sauvegardez le chier iptables d'origine : #cp /etc/sysconfig/iptables /etc/sysconfig/iptables.backup 1 Disponible sur le site http ://www.fwbuilder.org, disponible pour Linux et Windows 16 CHAPITRE 6. IPTABLES 9. Remplacez le chier /etc/syscong/iptables par le chier temp : #cp /root/cerbere /etc/sysconfig/iptables 10. Mettez les bons droits : #chmod 600 /etc/sysconfig/iptables 11. Relancez iptables : #service iptables start 12. Vériez que la cong ai bien changée : #iptables --list 13. Pour restaurer la cong par défaut si nécessaire : #service iptables stop #cp /etc/sysconfig/iptables.backup /etc/sysconfig/iptables #service iptables start 17 Troisième partie Installation de nagiosgraph 18 Chapitre 7 Installation 7.1 Copie des paquets et installation Vous allez extraire les paquets dans le repertoire NAGIOS et renommer le repertoire : #cd /etc/nagios/ #tar -xzvf /media/cdrom/NAGIOSRPMS/nagiosgraph-0.8.2.tar.gz #mv nagiosgraph-0.8.2/ nagiosgraph/ On fait la même chose pour le repertoire qui contiendra les RRDs (base de données des graphes). #mkdir /etc/nagios/nagiosgraph/rrd On met les droits pour être bien sûr. #chown -R nagios.nagios /etc/nagios/ On lit le chier INSTALL qui détaille l'installation de NAGIOSGRAPH. #more /etc/nagios/nagiosgraph/INSTALL 19 Chapitre 8 Edition 8.1 Fichiers de conguration de NAGIOSGRAPH Editez les chemins qui mènent aux chiers de conguration dans le chier nagiosgraph.conf : #vi /etc/nagios/nagiosgraph.conf # Location of debug log file logfile = /var/log/nagios/nagiosgraph.log # Directory to store rrd database files rrddir = /etc/nagios/nagiosgraph/rrd # File containing regular expressions to identify service and perf data mapfile = /etc/nagios/nagiosgraph/map perflog = /var/spool/nagios/perfdata.log Editez ensuite le chier insert.pl qui sert de ltre au données : #vi /etc/nagios/nagiosgraph/insert.pl ---------------------- insert.pl ---------------------------# Configuration my $configfile = '/etc/nagios/nagiosgraph/nagiosgraph.conf'; Editez maintenant le chier show.cgi qui sert à tracer les graphs : #vi /etc/nagios/nagiosgraph/show.cgi ------------------- show.cgi ------------------------------# Configuration my $configfile = '/etc/nagios/nagiosgraph/nagiosgraph.conf'; Editez nagios.cfg le chier de conguration principal de NAGIOS, attention à bien laisser commentée la ligne service_perfdata_command : process_performance_data=1 #service_perfdata_command=process-service-perfdata service_perfdata_file=/var/spool/nagios/perfdata.log service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$ ||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$ service_perfdata_file_mode=a 20 CHAPITRE 8. EDITION 21 service_perfdata_file_processing_interval=30 service_perfdata_file_processing_command=process-service-perfdata Editez /etc/nagios/misccommands.cfg -------------------- misccommands.cfg --------------------define command{ command_name process-service-perfdata command_line /etc/nagios/nagiosgraph/insert.pl } Il faut alors procéder à une petite manipulation sur l'icône qui représente le graphique car il y a un petit problème, il faut intervertir notes.gif et graph.gif, car quand on clique sur l'icône du graph on n'obtient non pas le graphique mais les notes (logiquement ça devrait être le contraire). #cp /media/cdrom/graph.gif /usr/share/nagios/images/logos/ #cd /usr/share/nagios/images/ #cp notes.gif logos/graphgif #on copie et on renomme le fichier #mv logos/graph.gif logos/graph.bak #sauvegarde le fichier actuel en le renommant #mv logos/graphgif logos/graph.gif #on renomme le fichier copié #chmod 664 logos/graph.gif #cp graph.gif notesgif # meme chose #mv notes.gif notes.bak # #mv notesgif notes.gif # #chmod 664 notes.gif Mettez le chier nagiosgraph.css dans le rep /usr/share/nagios/stylesheets/ #cp /etc/nagios/nagiosgrarph/nagiosgraph.css /usr/share/nagios/stylesheets/ Editez le chier /etc/nagios/cgi.cfg et rajoutez la ligne : ----------------- /etc/nagios/cgi.cfg ---------------------------# MAIN CONFIGURATION FILE # This tells the CGIs where to find your main configuration file. # The CGIs will read the main and host config files for any other # data they might need. main_config_file=/etc/nagios/nagios.cfg xedtemplate_config_file=/etc/nagios/serviceextinfo.cfg Créez et éditez le chier /etc/nagios/serviceextinfo.cfg #touch /etc/nagios/serviceextinfo.cfg #chown nagios.nagios /etc/serviceextinfo.cfg #vi /etc/nagios/serviceextinfo.cfg ---------------- /etc/nagios/serviceextinfo.cfg --------------------------define serviceextinfo{ service_description PING host_name localhost notes_url /nagiosgraph/show.cgi?host=$HOSTNAME$&service= $SERVICEDESC$ icon_image graph.gif } Pour que NAGIOS prenne notre chier en compte nous allons devoir dé-commenter une ligne dans le chiernagios.cfg : cfg_file=/etc/nagios/serviceextinfo.cfg Chapitre 9 Conguration 9.1 CGI et cong web Editez le chier nagios.conf et rajoutez l'autorisation d'exécuter les CGI pour le répertoire nagiosgraph dans la cong web : #vi /etc/httpd/conf.d/nagios.conf ---------------- nagios.conf ---------------------ScriptAlias /nagiosgraph "/etc/nagios/nagiosgraph" <Directory "/etc/nagios/nagiosgraph"> AllowOverride None Options ExecCGI Order allow,deny Allow from 195.221.0.0/16 # <- A remplacer par votre propre réseau </Directory> 22 Chapitre 10 Vérication et exemple 10.1 Droits et exemple de graphique Veriez les droits sur les chiers et répertoires, vous devriez avoir ceci : #ls -ld /etc/nagios/nagiosgraph/rrd/ drwxrwxr-x 2 nagios nagios 4096 fev 7 14:19 /etc/nagios/nagiosgraph/rrd/ #ls -ld /etc/nagios/nagiosgraph/ drwxr-xr-x 3 nagios nagios 4096 fev 7 14:32 /etc/nagios/nagiosgraph/ #ls -ld /var/log/nagios/ drwxr-xr-x 4 nagios nagios 4096 fev 7 14:34 /var/log/nagios/ #ls -l /etc/nagios/nagiosgraph/insert.pl -rwxr-xr-x 1 nagios nagios 4779 fev 6 17:22 insert.pl #ls -l /var/log/nagios/nagiosgraph.log -rw-rw-r-- 1 nagios nagios 0 mai 2 17:17 /var/log/nagios/nagiosgraph.log #ls -l /var/log/nagios/nagios.log -rw-r--r-- 1 nagios nagios 0 mai 2 17:17 /var/log/nagios/nagios.log Certains exemples de services que l'on peut monitorer avec NAGIOSGRAPH sont fournis dans le chier /etc/nagios/nagiosgraph/map Voici un exemple de conguration NAGIOSGRAPH avec le graphique pour la commande PING sur une machine : ---------------- /etc/nagios/services.cfg ----------------------define service{ use generic-service host_name pc-adr9-3 service_description PING is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_options w,u,c,r notification_interval 960 notification_period 24x7 check_command check_ping!100.0,20%!500.0,60% } ---------------- /etc/nagios/serviceextinfo.cfg ------------------ 23 CHAPITRE 10. VÉRIFICATION ET EXEMPLE define serviceextinfo{ service_description host_name notes_url ME$&service=$SERVICEDESC$ icon_image } 24 PING pc-adr-3 /nagiosgraph/show.cgi?host=$HOSTNA graph.gif ---------------- /etc/nagios/nagiosgraph/map --------------------# Service type: ping # output:PING OK - Packet perdus = 0%, RTA = 0.03 ms /output:PING.*?(\d+)%.+?([.\d]+)\sms/ and push @s, [ "pingRRD", [ 'Perte', GAUGE, $1 ], [ 'Ping', GAUGE, $2 ] ];\\ Si vous créez vos propres ltres, faites également attention : au nom du service (service_description) doit être le même dans services.cfg et serviceextinfo.cfg (ici PING , en majuscule) au nom de la base RRD doit être le même dans serviceextinfo.cfg et dans map (ici pingRRD ) sinon on obtient une erreur error no such le ...rrd . dans le chier map, mettez le nom de la base RRD entre double guillemets (ici pingRRD ) et les modules entre simple guillemets ' (ici 'Perte' et 'Ping'), pas de oriture genre 'Perte (%)', cela peut poser des problèmes. il peut aussi y avoir des problèmes au niveau de la création des chiers RRD, quand on lance le chier insert.pl, il est lancé avec le user apache mais normalement cela ne pause pas de problèmes. Si vous voulez modier le chier map (qui ltre les données brutes qui arrivent de nagios) : 1. #service nagios stop 2. #vi /etc/nagios/nagiosgraph/map 3. #cat /dev/null > /var/log/nagios/nagiosgraph.log 4. #service nagios start 5. #tail -f /var/log/nagios/nagiosgraph.log Si au bout de 10-15 mn vous n'avez toujours rien dans le log, c'est que c'est bon (voyez les annexes pour savoir comment voir les logs). Quatrième partie Administration 25 Chapitre 11 Administration de NAGIOS 11.1 Ajouter une machine dans NAGIOS Comment ajouter une machine dans la liste des machines surveillées par NAGIOS ? 1. Arrêtez NAGIOS #service nagios stop 2. Ajoutez la machine dans les chiers : ----------- /etc/nagios/hosts.cfg ------------# xserve1 MAC define host{ use generic-host host_name xserve1 alias MAC-xserve1 address 192.168.150.56 parents gw150 check_command check-host-alive max_check_attempts 10 notification_interval 60 notification_period 24x7 notification_options d,u,r contact_groups super-admins } ----------- /etc/nagios/hostgroup.cfg ---------# 'servers' host group definition define hostgroup{ hostgroup_name servers alias SERVEURS members xserve1 } ---------- /etc/nagios/hostextinfo.cfg --------define hostextinfo{ host_name xserve1 icon_image base/mac40.png vrml_image base/mac40.png statusmap_image base/mac40.gd2 } 3. Vériez la conguration de NAGIOS après modication : #nagios -v /etc/nagios/nagios.cfg 26 CHAPITRE 11. ADMINISTRATION DE NAGIOS 27 4. Si 0 erreurs, passez à l'installation des services qui doivent être surveillés sur la machine. 5. S'il y a des erreurs éditez le chier nom_du_chier.cfg à la ligne 00. Le numéro de ligne est indiqué quand on lance la commande précédente. 11.2 Ajouter un service pour une machine dans NAGIOS Comment ajouter la vérication d'un service dans la liste des services surveillés par NAGIOS ? 1. Dénissez la commande du service : #cd /etc/nagios #vi misccommands.cfg Exemple pour vérication d'un port sur un serveur Bacula : ---------------- misccommands.cfg -------------------# Service verify Bacula server # FD on port 9102 define command{ command_name check-bacula-fd command_line /usr/lib/nagios/plugins/check_tc p -H $HOSTADDRESS$ -p 9102 } Autre exemple avec un ping : ---------------- misccommands.cfg -------------------# Generic command to check a device by pinging it # define command{ command_name check_ping command_line $USER1$/check_ping -H $HOSTADDRES S$ -w $ARG1$ -c $ARG2$ -p 5 } Dans cet exemple : HOSTADDRESS = nom de la machine à vérier ARG1, ARG2 etc ... = arguments supplémentaires à passer à la commande. 2. Ajoutez le service : #vi services.cfg ----------------- services.cfg ---------------------------# Service definition for CHECK BACULA # define service{ use generic-service host_name xserve1 service_description bacula-fd is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 contact_groups admins,super-admins notification_interval 60 notification_period 24x7 notification_options c,r check_command check-bacula-fd } CHAPITRE 11. ADMINISTRATION DE NAGIOS 28 3. Vériez la conguration de NAGIOS après modication : #nagios -v /etc/nagios/nagios.cfg 4. Si 0 erreur, reloader la cong NAGIOS : #service nagios reload 5. Si il y a des erreurs, éditez le chier chier.cfg à la ligne XX, le numéro de ligne est indiqué quand on lance la commande : #nagios -v /etc/nagios/nagios.cfg 11.3 Lire les logs Comment lire les chiers de log quand il y a une erreur : 1. Arrêter nagios : #service nagios stop 2. CTRL + ALT + F2 pour ouvrir une nouvelle console, et se logguer en tant que root. 3. Changer de repertoire : #cd /var/log/nagios 4. Lister les chiers pour savoir quels chiers ont été modiés en dernier : #ls -lctr 5. Vider le chiers de log : #cat /dev/null > nagios.log 6. Visualiser le log en direct : #tail -f /var/log/nagios/nagios.log 7. CTRL+ALT+F1 pour repasser à l'ancienne console. 8. Relancer nagios : #service nagios start 9. Lire le nagios.log en direct sur la deuxième console (CTRL + ALT + F2). N'oubliez pas de vous déloguer de la console avec un CTRL + D quand vous avez ni. Remarquez que la même chose peut être faite pour lire le chier nagiosgraph.log 11.4 Commandes utiles Les commandes utiles de NAGIOS : Voici quelques commandes qui vous seront utiles dans l'administration de NAGIOS. Arrêter nagios : #service nagios stop Lancer nagios : #service nagios start Vérier la cong NAGIOS (vous noterez que NAGIOS nous donne le numéro de la ligne où s'est produite l'erreur s'il y en a) : #nagios -v /etc/nagios/nagios.cfg Quelques commandes unix qui vous seront également utiles. Chercher si un paquet est installé et sa version : #rpm -qa "lynx*" #yum list "*nagios*" CHAPITRE 11. ADMINISTRATION DE NAGIOS 29 Voir les chiers d'un paquet installé : #rpm -ql "lynx" Installer et supprimer un paquet : #rpm -ivh lynx.rpm #installe le paquet Lynx #rpm -e lynx.rpm #désinstalle le paquet Lynx Installer avec YUM : #yum install nagios #installe le paquet nagios #yum remove nagios #désinstalle le paquet nagios Mettre à jour les paquets avec YUM (utilitaire propre à Scientic Linux) : #yum update Rechercher un chier (chercher par exemple les chiers qui ont un nom qui commence par pouet dans le répertoire /home/toto) : #find /home/toto -name "pouet*" Rechercher un mot dans un chier (chercher par exemple les chiers qui contiennent l'expression root@localhost dans tous les chiers du répertoire où on se trouve et acher les numéros des lignes du chier) : #grep -n "root@localhost" * Rechercher les chiers qui contiennent l'expression root@localhost dans le répertoire /home et tout les sous-repertoires, le R est ici mis pour récursif , le n pour acher les numéros des lignes du chier) : #grep -Rn "root@localhost" /home Accéder au CDROM, monter, démonter un cd : #mount /media/cdrom/ -r #on monte le CD en lecture seule #cd /media/cdrom/ ... #umount /media/cdrom #on demonte le CD pour le sortir Cinquième partie Annexes 30 Annexe A Les chiers de conguration NAGIOS : Fichier nagios.cfg nrpe.cfg check_nrpe.cfg .cfg nagios.conf nagios Chemin /etc/nagios/nagios.cfg /etc/nagios/nrpe.cfg /etc/nagios/nagios-plugins/cong/check_nrpe.cfg /etc/nagios/nagios-plugins/cong/*.cfg /etc/httpd/conf.d/nagios.conf /etc/init.d/nagios Informations conf. principale conf. du serveur NRPE conf. du plugin NRPE conf. des plugins NAGIOS conf. du serveur web NAGIOS binaire NAGIOS NAGIOS (autres) : Repertoire /usr/share/nagios/ /usr/bin/nagios/ /usr/lib/nagios/cgi/*.cgi /usr/lib/nagios/plugins/check_* /var/log/nagios/ Contenu les images, icones, pages html les binaires les CGIs les plugins les logs NAGIOSGRAPH : Fichier nagiosgraph.conf insert.pl map show.cgi .rrd Chemin /etc/nagios/nagiosgraph/nagiosgraph.conf /etc/nagios/nagiosgraph/insert.pl /etc/nagios/nagiosgraph/map /etc/nagios/nagiosgraph/show.cgi /etc/nagios/nagiosgraph/rrd/*.rrd 31 Informations conguration recupère les infos (perl) ltre construction des graphs Bases de données de nagiosgraph Annexe B Les commandes de l'éditeur VI Voici quelques commandes de l'éditeur VI. Pour éditer le chier : #vi /etc/nagios/nagios.cfg Les commandes suivantes se font à l'intérieur de VI, il faut appuyer sur : pour passer en mode commande , ESC pour revenir en mode normal, ENTREE pour valider les commandes. a pour ajouter wq pour sauvegarder et quitter dd eacer une ligne (on peut la coller aprés avec p ) /texte pour chercher le mot texte (touche n pour faire suivant) v passer en mode selection y pour copier (yy pour copier la ligne entière) p pour coller q pour quitter sans sauvegarder q ! pour forcer la sortie ESC pour revenir en mode normal u pour annuler la dernière modif x pour supprimer le charactère sous le prompt 315 pour aller à la ligne 315 %s/windows/linux/g pour remplacer windows par linux dans tout le chier (option g ) 32 Annexe C Liens internet Incontournable pour les recherches : http://www.google.fr/ ISOs Linux : http://iso.linuxquestions.org/ ISOs Linux : http://www.madtux.org/ Moteur de recherche pour les RPMs : http://rpm.pbone.net/ NAGIOS, conguration par l'exemple (FR) : Documentation NAGIOS (ENG) : http://www.nagios.org/docs/ Autre documentation NAGIOS (ENG) : Plug-ins pour NAGIOS (ENG) : http://www.mathrice.org/rencontres/octobre.2005/nagios.html http://www.nagiosbook.org/html/index.html http://www.nagiosexchange.org/Home.62.0.html N'hésitez pas à me contacter pour des liens qui ne sont plus valides ou des commentaires. Vous pouvez m'écrire à l'adresse suivante : [email protected] 33 Annexe D Les RPMs & isos utilisés. ISOs scientic Linux (http ://iso.linuxquestions.org/version.php ?version=369) : CentOS-4.4-i386-bin1of4.iso CentOS-4.4-i386-bin2of4.iso CentOS-4.4-i386-bin3of4.iso CentOS-4.4-i386-bin4of4.iso RPMs utilisés : nagios-2.5-1.el4.rf.i386.rpm fping-2.4-1.b2.2.el4.rf.i386.rpm nagios-nsca-2.5-2.2.el4.rf.i386.rpm nagios-plugins-1.4.4-1.el4.rf.i386.rpm perl-Crypt-DES-2.05-3.2.el4.rf.i386.rpm perl-Digest-MD5-2.36-1.0.el2.rf.i386.rpm perl-Digest-SHA1-2.11-1.el3.rf.i386.rpm perl-Net-SNMP-5.2.0-1.2.el4.rf.noarch.rpm perl-Socket6-0.19-1.2.el4.rf.i386.rpm nagios-plugins-nrpe-2.5.1-1.el4.rf.i386.rpm nagios-nrpe-2.5.1-1.el4.rf.i386.rpm Pour NAGIOSGRAPH : perl-rrdtool-1.2.15-1.el4.rf.i386.rpm rrdtool-1.2.15-1.el4.rf.i386.rpm nagiosgraph-0.8.2.tar.gz Pour NRPE (client) : Windows : WINCLINET-nsclient_201.zip (http ://nsclient.ready2run.nl) Linux : nrpe-2.5.2.tar.gz (http ://rpm.pbone.net) Merci d'avoir lu cette doc jusqu'au bout ! Ou alors vous avez triché et commencé par la n. . . 34