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

Documents pareils