35

INSTALLATION DETAILLEE DE NAGIOS 2.5 SOUS …raisin.u-bordeaux.fr/IMG/pdf/nagios_stepbystep.pdf · 2 Bienvenue dans cette documentation sur l'installation de NAGIOS version 2.5 sur

Embed Size (px)

Citation preview

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 CentOSLinux.

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 debase 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 con�guration de NAGIOS à votre réseaux, à votre environnement, et ce n'est pas chosefacile. Mais on y arrive en persévérant, NAGIOS est un outil formidable avec lequel ou peu faire un tas dechoses, 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'airencontré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 ontrencontré (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 surNAGIOS 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 Win-dows XP.

Mais trêve de bavardage et place à la pratique. . .

1Le 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

1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Partitionnement manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Choix des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Installation - partie II 8

2.1 Fin de l'installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Installation des RPM 9

3.1 Installation manuelle des paquets fournis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

II Con�guration du serveur web, de nagios, et de iptables 10

4 Serveur web 11

4.1 Con�guration du serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5 NAGIOS 13

5.1 Con�guration de NAGIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2 NAGIOS en https . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

6 Iptables 16

6.1 Mise en place d'une politique de �ltrage avec IPTABLES . . . . . . . . . . . . . . . . . . . . . . 16

III Installation de nagiosgraph 18

7 Installation 19

7.1 Copie des paquets et installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

8 Edition 20

8.1 Fichiers de con�guration de NAGIOSGRAPH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

9 Con�guration 22

9.1 CGI et con�g web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

10 Véri�cation et exemple 23

10.1 Droits et exemple de graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

IV Administration 25

11 Administration de NAGIOS 26

11.1 Ajouter une machine dans NAGIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611.2 Ajouter un service pour une machine dans NAGIOS . . . . . . . . . . . . . . . . . . . . . . . . . 2711.3 Lire les logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2811.4 Commandes utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3

TABLE DES MATIÈRES 4

V Annexes 30

A Les �chiers de con�guration 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 duCD1, 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 supprimez-les 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 Taille

swap 1 Go/boot 250 Mo/ (racine) 10Go/usr 10Go/var 10Go/tmp 4Go/home (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 : post�x• 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 modi�cations à 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 localhost.localdomain localhost

195.XXX.XXX.XXX nagios.votredomaine.fr nagios

Votre installation de la distribution est à présent terminée. Vous devriez faire quelques tests pour voir sitout 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éri�ez vos câbles et les adresses de votre con�guration en tapant la commande ifcon�g , quiliste les di�érentes interfaces réseaux de la machine.

8

Chapitre 3

Installation des RPM

3.1 Installation manuelle des paquets fournis

Nous allons e�ectuer l'installation des di�érents paquets nécessaires à NAGIOS, toutes les commandes sefont sous le compte root.

Vous trouverez en annexe une explication succincte des di�érentes commandes utilisées ici (yum, rpm, etautres), pour le reste vous avez toujours la possibilité d'utiliser la commande man nom_de_la_commande quilance 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 -ivh nagios-2.5-1.el4.rf.i386.rpm

#rpm -ivh fping-2.4-1.b2.2.el4.rf.i386.rpm

#rpm -ivh perl-Crypt-DES-2.05-3.2.el4.rf.i386.rpm

#rpm -ivh 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èmesde dépendance (pour snmp et rrdtool par exemple).

Normalement, tout devrait bien se passer. S'il manque des paquets, utilisez les commandes données enannexes (yum et rpm) pour voir lesquels sont manquants et les installer.

9

Deuxième partie

Con�guration du serveur web, de nagios,

et de iptables

10

Chapitre 4

Serveur web

4.1 Con�guration du serveur

Vous avez normalement choisi l'installation d'un serveur http (Apache en l'occurrence) au début de l'instal-lation, nous allons maintenant con�gurer ce serveur web (toujours sous le compte root).

Editez le �chier de con�guration principal du serveur web Apache :

#vi /etc/httpd/conf/httpd.conf

Modi�ez 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

Modi�ez les lignes pour avoir ceci :

<LocationMatch "^/+$">

Options -Indexes

ErrorDocument 403 "Access denied"

</LocationMatch>

Editer le �chier de con�guration web de NAGIOS :

#vi /etc/httpd/conf.d/nagios.conf

Modi�ez 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 pouraccéder à l'interface NAGIOS :

#htpasswd -c /etc/nagios/htpasswd.users nagiosadmin

new password:

adding password for user nagiosadmin

On teste la con�g 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 devrieztomber 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 devriezavoir l'invite de mot de passe nagios.

Chapitre 5

NAGIOS

5.1 Con�guration de NAGIOS

Nous allons commencer à con�gurer NAGIOS proprement dit. Editons d'abord le �chier � cgi.cfg � (con�-guration des CGI pour NAGIOS pour l'interface web) :

#service nagios stop

#vi /etc/nagios/cgi.cfg

Décommentez la ligne :

nagios_check_command

Modi�ez 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 � (con�guration 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 commececi :

define command{

command_name check-host-alive

command_line $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 check-host-alive

# command_line $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 commandesauront été déclarées en double) :

� notify by email� host-notify by email� check host alive� check ping� check local disk

13

CHAPITRE 5. NAGIOS 14

� check users� check procs� check load

Vous allez également modi�er la commande � check_local_procs � dans le �chier /etc/nagios/misccommands.cfgpour 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éri�e la con�g (il ne devrait pas y avoir d'erreurs) et on recharge NAGIOS. Il se peut qu'il yait 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 con�guration sont nagios.cfg et minimal.cfg, ils correspondent à une con�gurationminimaliste (comme son nom l'indique) qui regroupe dans le seul �chier minimal.cfg les hosts, les services ettout le reste. Vous pouvez garder un unique �chier avec tout dedans, ou bien faire plusieurs autres �chiers a�nde séparer les hosts (hosts.cfg), les services(services.cfg), etc... . Si vous changez de méthode n'oubliez pas dechanger 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 con�gura-tion 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 unNAGIOS 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/syscon�g/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 à avoir ceci :

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

#service iptables start

CHAPITRE 5. NAGIOS 15

3. Vous allez ensuite con�gurer 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 � dansle �chier /etc/httpd/conf/httpd.conf pour la con�g des repertoires de NAGIOS qui lui dit de prendre encompte tous les �chiers de con�guration qui sont dans le repertoire conf.d/, donc :

#vi /etc/httpd/conf.d/ssl.conf

On modi�e 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 con�g 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 vousdevriez 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 pourmoi). J'ai fait une con�guration qui, avec quelques modi�cations, devrait correspondre. Elle a été faite avec lelogiciel � Firewall Builder1 � qui ajoute une certaine dimension graphique à IPTABLE. Il est alors plus facilede 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émentobligatoire. Il est assez compliqué à utiliser. De plus pour le faire fonctionner avec NAGIOS, vous devrez luiindiquer 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 çaen 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 tem-porairement la con�g du �rewall, la sauvegarder, et se servir du �chier de sauvegarde ainsi créé pour l'utiliserà la place de l'ancien /etc/syscon�g/iptables.

Allons y pour les commandes :

1. Faites un backup de la con�g 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

1Disponible sur le site http ://www.fwbuilder.org, disponible pour Linux et Windows

16

CHAPITRE 6. IPTABLES 17

9. Remplacez le �chier /etc/syscon�g/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éri�ez que la con�g ai bien changée :

#iptables --list

13. Pour restaurer la con�g par défaut si nécessaire :

#service iptables stop

#cp /etc/sysconfig/iptables.backup /etc/sysconfig/iptables

#service iptables start

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 con�guration de NAGIOSGRAPH

Editez les chemins qui mènent aux �chiers de con�guration 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 con�guration 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 petitproblème, il faut intervertir notes.gif et graph.gif, car quand on clique sur l'icône du graph on n'obtient non pasle 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

Con�guration

9.1 CGI et con�g web

Editez le �chier nagios.conf et rajoutez l'autorisation d'exécuter les CGI pour le répertoire nagiosgraph dansla con�g 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éri�cation et exemple

10.1 Droits et exemple de graphique

Veri�ez 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/mapVoici un exemple de con�guration NAGIOSGRAPH avec le graphique pour la commande PING sur une ma-chine :

---------------- /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 24

define serviceextinfo{

service_description PING

host_name pc-adr-3

notes_url /nagiosgraph/show.cgi?host=$HOSTNA

ME$&service=$SERVICEDESC$

icon_image 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 �) sinonon 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 lesmodules entre simple guillemets ' (ici 'Perte' et 'Ping'), pas de �oriture genre 'Perte (%)', cela peut poserdes problèmes.

� il peut aussi y avoir des problèmes au niveau de la création des �chiers RRD, quand on lance le �chierinsert.pl, il est lancé avec le user � apache � mais normalement cela ne pause pas de problèmes.

Si vous voulez modi�er 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 poursavoir 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éri�ez la con�guration de NAGIOS après modi�cation :

#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é quandon lance la commande précédente.

11.2 Ajouter un service pour une machine dans NAGIOS

Comment ajouter la véri�cation 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éri�cation 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éri�erARG1, 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éri�ez la con�guration de NAGIOS après modi�cation :

#nagios -v /etc/nagios/nagios.cfg

4. Si 0 erreur, reloader la con�g 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 onlance 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éloguerde 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éri�er la con�g NAGIOS (vous noterez que NAGIOS nous donne le numéro de la ligne où s'est produitel'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 à Scienti�c Linux) :#yum update

� Rechercher un �chier (chercher par exemple les �chiers qui ont un nom qui commence par � pouet � dansle 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 � danstous les �chiers du répertoire où on se trouve et a�cher 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 lessous-repertoires, le � R � est ici mis pour � récursif � , le � n � pour a�cher 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 con�guration

NAGIOS :

Fichier Chemin Informations

nagios.cfg /etc/nagios/nagios.cfg conf. principalenrpe.cfg /etc/nagios/nrpe.cfg conf. du serveur NRPEcheck_nrpe.cfg /etc/nagios/nagios-plugins/con�g/check_nrpe.cfg conf. du plugin NRPE.cfg /etc/nagios/nagios-plugins/con�g/*.cfg conf. des plugins NAGIOSnagios.conf /etc/httpd/conf.d/nagios.conf conf. du serveur web NAGIOSnagios /etc/init.d/nagios binaire NAGIOS

NAGIOS (autres) :

Repertoire Contenu

/usr/share/nagios/ les images, icones, pages html/usr/bin/nagios/ les binaires/usr/lib/nagios/cgi/*.cgi les CGIs/usr/lib/nagios/plugins/check_* les plugins/var/log/nagios/ les logs

NAGIOSGRAPH :

Fichier Chemin Informations

nagiosgraph.conf /etc/nagios/nagiosgraph/nagiosgraph.conf con�gurationinsert.pl /etc/nagios/nagiosgraph/insert.pl recupère les infos (perl)map /etc/nagios/nagiosgraph/map �ltreshow.cgi /etc/nagios/nagiosgraph/show.cgi construction des graphs.rrd /etc/nagios/nagiosgraph/rrd/*.rrd Bases de données de nagiosgraph

31

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 � com-mande � , ESC pour revenir en mode normal, ENTREE pour valider les commandes.

� a pour ajouter� wq pour sauvegarder et quitter� dd e�acer 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, con�guration par l'exemple (FR) : http://www.mathrice.org/rencontres/octobre.2005/nagios.html

Documentation NAGIOS (ENG) : http://www.nagios.org/docs/

Autre documentation NAGIOS (ENG) : http://www.nagiosbook.org/html/index.html

Plug-ins pour NAGIOS (ENG) : 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 pouvezm'écrire à l'adresse suivante : [email protected]

33

Annexe D

Les RPMs & isos utilisés.

ISOs scienti�c 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