Sie sind auf Seite 1von 6

TP LP Nagios

1 )Objectifs :
Mettre en place et configurer une station de surveillance nagios charge davertir les administrateurs en cas de dfaillance sur

un des serveurs du rseau.


Configurer lutilisation de diffrents plugin ainsi que certaines extensions de Nagios : nrpe et NSClient qui permettent de

surveiller des machines distantes tournant respectivement sous Linux et Windows.

2 )Remarques :
Pour chaque machine, ou groupe de machines, il faut prciser les services surveiller.
A chaque service correspond un serveur (http,...) ou un plugin Nagios standard.
Afin d'optimiser la charge rseau, il sera inutile de tester les services dune machine si celle-ci ne rpond pas au ping.

3 )Installation et configuration de Nagios


Installer Apache, openssh-client, openssh-server et Nagios 3 de votre distribution. pour l'interface Web de Nagios.
Nagios est install, il faut maintenant le configurer. O se trouvent les fichiers de configuration ? Qui sont-ils ?
Pour configurer Nagios (ajout de machines, contacts et services), il faut modifier ou ajouter des fichiers de configuration

qui se trouvent dans /etc/nagios?/conf.d.


Liste des fichiers de configuration : nagios.cfg, resource.cfg, misccommands.cfg, hosts.cfg, hostgroups.cfg, contacts.cfg,

contactgroups.cfg, timeperiods.cfg, checkcommands.cfg, services.cfg, dependencies.cfg, escalations.cfg, cgi.cfg


Configuration d'apache :
on pourra vrifier ou ajouter dans le fichier /etc/nagios3/apache2.conf les lignes suivantes :
ScriptAlias/cgibin/nagios3/usr/lib/cgibin/nagios3
ScriptAlias/nagios3/cgibin/usr/lib/cgibin/nagios3
<DirectoryMatch(/usr/share/nagios3/htdocs|/usr/lib/cgibin/nagios3)>
OptionsFollowSymLinks
DirectoryIndexindex.html
AllowOverrideAuthConfig
OrderAllow,Deny
AllowFromAll
AuthName"NagiosAccess"
AuthTypeBasic
AuthUserFile/etc/nagios3/htpasswd.users
requirevaliduser
</DirectoryMatch>

Pour ajouter un utilisateur :


sudohtpasswdc/etc/nagios3/htpasswd.usersnagiosadmin

Pour tester, utiliser un navigateur web et saisir l'URL : http://localhost/nagios3

Puis log : nagiosadmin


Puis mdp : demander lors de l'installation
Pour Nagios2, dans /etc/nagios2 il n'y a peut-tre pas htpasswd.users, nous pouvons raliser la commande suivante :
sudolns/etc/nagios/htpasswd.users/etc/nagios2/htpasswd.users

Pour Nagios premire version, dans /etc/nagios il n'y a peut-tre pas cgi.cfg, nous pouvons raliser la commande suivante :
sudolns/etc/nagios2/cgi.cfg/etc/nagios/cgi.cfg

Utilisation de la vue 3D-status Map :


installation de freewrl sous linux

4 )Configurer Nagios pour le rseau LAN :


La configuration par dfaut "/etc/nagios3/conf.d/generic-host_nagios2.cfg" .
Cette partie par dfaut (template : patron) dfinit les paramtres par dfaut d'un "host". Vrifier les paramtres utiliss au moment
du dmarrage et redmarrage de nagios :
# Generic host definition template - This is NOT a real host, just a template!
define host{
name
generic-host
; The name of this host template
notifications_enabled
1
; Host notifications are enabled
event_handler_enabled
1
; Host event handler is enabled
flap_detection_enabled
1
; Flap detection is enabled
failure_prediction_enabled
1
; Failure prediction is enabled
process_perf_data
1
; Process performance data
retain_status_information
1
; Retain status information across program restarts
retain_nonstatus_information
1
; Retain non-status information across program restarts
check_command
check-host-alive
max_check_attempts
10

TP LP Nagios

notification_interval
notification_period
notification_options
contact_groups
register
}

0
24x7
d,u,r
admins
0

; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!

Si on ne configure que ces fichiers, le check-host-alive ne fonctionne pas, il faut au moins un service (service.cfg) configur par
machine pour que cela fonctionne. Par exemple, il ai donc t ncessaire de vrifier que le service PING soit dfini pour chaque
host.
Dans la partie par dfaut de ce fichier generic-hosts_nagios2.cfg, les notifications sont actives au dmarrage.
Dfinition des diffrentes Machines correspondant l'architecture demander pendant le TP ( adapter):
On crera un fichier par machine.
Ajouter le gateway:
Crer le fichier "/etc/nagios3/conf.d/host-gateway_nagios2.cfg" et y placer les lignes suivantes :
# a host definition for the gateway of the default route
define host {
host_name
gateway
alias
Default Gateway
address
xxx.xxx.xxx.xxx
use
generic-host
}

Ajouter le service de vrification par Ping, dans "/etc/nagios3/conf.d/services_nagios2.cfg", ajouter :

define service {
hostgroup_name
service_description
check_command
use
notification_interval

ping-servers
PING
check_ping!100.0,20%!500.0,60%
generic-service
0

Activer le service test ping pour ce gateway : dans le fichier "/etc/nagios3/conf.d/hostgroups_nagios2.cfg"

define hostgroup {
hostgroup_name ping-servers
alias
Pingable servers
members
gateway
}

Testez cette configuration :

Vrifier les fichiers de configuration. Exemple : nagios3 -v /etc/nagios3/nagios.cfg


Recharger les fichiers de configuration Nagios : '/etc/init.d/nagios3 reload' ou 'service nagios3 reload'
Autoriser les commandes externes : check_external_commands = 1 dans /etc/nagios3/nagios.cfg
puis, sudo usermod -G nagios www-data ets sudo service apache2 restart
Vrifiez ensuite, via linterface web, que le systme dtecte bien votre configuration. Un temps d'attente est ncessaire.

Toujours dans ce fichier, ajoutons un groupe pour les routeurs :

# La liste de nos routers


define hostgroup {
hostgroup_name router-servers
alias
Router Servers
members
gateway
}

Si le gateway propose un serveur Web, activer le service test http pour cette machine toujours dans ce fichier

# A list of your web servers


define hostgroup {
hostgroup_name http-servers
alias
HTTP servers
members
localhost,gateway
}

Changeons l'image(icon) de ce gateway dans le Status Map de l'interface Web de Nagios3 : dans le fichier
"/etc/nagios3/conf.d/extinfo_nagios2.cfg" ajouter les lignes suivantes :

define hostextinfo{
hostgroup_name
router-servers
notes
Router servers
#/usr/share/nagios/htdocs/images/logos/base/xxxxxxxx.png
icon_image
base/router40.png
icon_image_alt
Router
vrml_image
router40.png
statusmap_image base/router40.gd2
}

Ajoutons un 'switch1'
Crer le fichier "/etc/nagios3/conf.d/host-lynek_nagios2.cfg" et y placer les lignes suivantes :

define host{
use
host_name

generic-host
switch1

; quel patron?
; nom du switch

TP LP Nagios
alias
address
}

3
Switch
xxx.xxx.xxx.xxx

Ajouter une station 'station1' ou tout autre nom de type Ubuntu connect switch1:
Crer le fichier "/etc/nagios3/conf.d/host-station1_nagios2.cfg" et y placer les lignes suivantes :

define host{
use
host_name
alias
address
parents
}

generic-host
station1
Ubuntu station
xxx.xxx.xxx.xxx
switch1

; quel patron?
; nom de la machine

Activer le service test ping pour cette machine(vu prcdemment).


Activer le service test http pour cette machine si elle est serveur HTTP.

Crons un groupe pour les stations Ubuntu : dans le fichier "/etc/nagios3/conf.d/hostgroups_nagios2.cfg"

## A list of your Ubuntu GNU/Linux servers


define hostgroup {
hostgroup_name ubuntu-servers
alias
Ubuntu GNU/Linux Servers
members
station1
}

Crons de nouvelles icnes pour d'autre machine (Ubuntu, WinXP, WinVista):


Vrifier que les paquetages "libgd-tools " et "netpbm " sont installs.
Soit le script shell genicons.sh

#!/bin/bash
path="/usr/bin"
echo "Usage : $0 img1_sans_extension [img2 ...]"
for arg
do
if [ -f "$arg" ]; then
echo converting $arg
arg="$(echo $arg | sed 's/\.gif$//')"
$path/giftopnm $arg.gif > $arg.pnm
$path/pnmtopng -transparent rgb:ff/ff/ff $arg.pnm > $arg.png
$path/pnmtojpeg -quality=100 -optimize -smooth=0 $arg.pnm > $arg.jpg
$path/pngtogd2 $arg.png $arg.gd2 0 1
fi
done
rm -f *.pnm

Utiliser ce script sur une image Gif n'excdant pas 60 pixels. On obtient ainsi 4 fichiers copier dans le
rpertoire "/usr/share/nagios/htdocs/images/logos/base"

Slectionnons son image(icon) dans le Status Map de l'interface Web de Nagios : dans le fichier
"/etc/nagios3/conf.d/extinfo_nagios2.cfg" ajouter les lignes suivantes :

define hostextinfo{
hostgroup_name
ubuntu-servers
notes
Ubuntu GNU/Linux servers
#
notes_url
http://webserver.localhost.localdomain/hostinfo.pl?host=netware1
#/usr/share/nagios3/htdocs/images/logos/base/.....png
icon_image
base/ubuntu.png
icon_image_alt
Ubuntu GNU/Linux
vrml_image
ubuntu.png
statusmap_image base/ubuntu.gd2
}

Ajouter des machines Windows XP


Ajouter un groupe "xp-servers" dans le fichier "/etc/nagios3/conf.d/hostgroups_nagios2.cfg"
Ajouter aussi ce groupe "xp-servers" dans le fichier "/etc/nagios3/conf.d/extinfo_nagios2.cfg". Crer les fichiers images

pour ce type de station.


Crer le fichier "/etc/nagios3/conf.d/host-stationxp1_nagios2.cfg" et y placer les lignes suivantes :

define host{
use
host_name
alias
address
parents
}

generic-host
; quel patron?
stationxp1
; nom de la machine
Windows XP Station
xxx.xxx.xxx.xxx
xxxxxx

Ajouter la station dans le service ping, http si ncessaire...

5 )Configurer Nagios pour le rseau WAN :


Ajoutons une passerelle "gatewayiris" aprs le "gateway" :
Crer le fichier "/etc/nagios3/conf.d/host-gatewayiris_nagios2.cfg"

TP LP Nagios

Y dclarer un host "gatewayiris" d'adresse "XXX.XXX.XXX.XXX" en prcisant qu'il est plac aprs "gateway" en
ajoutant la ligne "parents gateway"
N'ajouter pas ce routeur dans le service ping (il n'est pas configur pour rpondre)

Ajoutons des stations aprs la passerelle "gatewayiris" :


Crer le fichier "/etc/nagios2/conf.d/host-carolineiris_nagios2.cfg"
Y dclarer un host "carolineiris" d'adresse "XXX.XXX.XXX.XXX" en prcisant qu'il est plac aprs "gatewayiris"
Pour accder ce serveur HTTP, on utilisera la port 8000 dont le service Nagios n'existe pas encore.
Ajoutons le service "http:8000" grce au paragraphe suivant

6 )Activer de nouveaux services


Configurons le monitoring de services ne ncessitant pas dautres plugins que ceux installs par dfaut avec Nagios.

Ajoutons le service de test "http:8000"


tester la commande : "/usr/lib/nagios/plugins/check_http -p proxyPort -I proxyAdr -b user:pwd -u http://url:port".
Voir --help pour l'aide en ligne. Le rsultat devrait tre :
"HTTP OK : HTTP/1.1 200 OK - "
Et donc, dans le fichier "/etc/nagios2/conf.d/service_nagios2.cfg" ajouter les lignes suivantes :

define service {
hostgroup_name
service_description
check_command
use
notification_interval
}

http-servers8000
HTTP8000
check_http!-p . -I .......
generic-service
0 ; set > 0 if you want to be renotified

Crons un nouveau groupe pour cette station : dans le fichier "/etc/nagios3/conf.d/hostgroups_nagios2.cfg"

define hostgroup {
hostgroup_name http-servers8000
alias
http8000
members
clarolineiris
}

Tester ce nouveau service

Ajoutons le service de test "dhcp" connaissant votre serveur dhcp ou aprs avoir installer un serveur dhcp sur localhost.
tester la commande : "/usr/lib/nagios/plugins/check_dhcp -s XXXXXXX -i eth0" . Le rsultat pourrait tre :
"Erreur: Impossible de connecter le socket l'interface eth0. Vrifiez vos droits... " ou
"OK: Reu 1 DHCPOFFER(s), bail maximum = 43200 sec. " avec "sudo"
Dans le fichier "/etc/nagios3/conf.d/service_nagios2.cfg" ajouter les lignes suivantes :

define service {
hostgroup_name
service_description
check_command
use
notification_interval
}

dhcp-servers
DHCP
check_dhcp
generic-service
0 ; set > 0 if you want to be renotified

Crons un nouveau groupe pour cette station : dans le fichier "/etc/nagios2/conf.d/hostgroups_nagios2.cfg"

define hostgroup {
hostgroup_name dhcp-servers
alias
DHCP Servers
members
xxxxxxxxx,yyyyyyy
}

Tester ce nouveau service. Il est peut-tre ncessaire de donner plus de droit Nagios.

Tester le plugin SNMP :


/usr/lib/nagios/plugins/check_snmp -H localhost -C public -o 1.3.6.1.2.1.1.1.0
ou system.sysDescr.0
/usr/lib/nagios/plugins/check_snmp -H gateway -C public -o interfaces.ifTable.ifEntry.ifDescr.1 ou 1.3.6.1.2.1.2.2.1.2.1
SNMP OK - loopback | IF-MIB::ifDescr.1=loopback
En compltant les fichiers services.cfg et commands.cfg afin de tester les services disponibles sur une station linux, la

station Nagios, un routeur adsl(gateway), ainsi que tous les services PING.
Dans le fichier commands.cfg, dfinir les commandes excuter pour tester un service. Lensemble de ces commandes est

prsent sous forme dexcutable dans le rpertoire plugin de Nagios. On peut donc tester en ligne de commande si les
paramtres associs aux commandes fonctionnent. De mme, on obtient laide relative cette commande grce loption
h (ex: check_ping h).
Exemple de service tester : pour le test du SNMPGet, voici la dfinition dans commands.cfg:
define command{
command_name

check_snmp

TP LP Nagios
command_line
}

5
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o $ARG2$

Ainsi, pour associer le test du service snmp, on utilisera le nom check_snmp. Deux solutions :
soit on indique "en dur" les paramtres de la fonction check_snmp
soit on indique les paramtres utiliser et ces derniers seront crits dans le fichier services.cfg
Certains sont rentrs en dur, comme ladresse de lhte. Dautres seront entrer en complment de la commande, comme ARG1
et ARG2.
If faut configurer des commandes non dfinies dans commands.cfg mais prsentes dans le rpertoire de plugin. Ainsi, on rajoute
la dfinition de check_ssh, check_daytime et check_swap (voir fichier commands.cfg).
Dans le fichier services.cfg, on associe aux htes dj dfinis le service que lon souhaite tester ainsi que les arguments

ncessaires son utilisation. Exemple du SNMPGet d'une station :


define service{
use
hostgroup_name
service_description
notification_interval
check_command
}

generic-service
; Name of service template to use
gateway
SNMP
240
check_snmp!public!1.3.6.1.2.1.2.2.1.2.1

On configure ici lhte sur lequel on teste le service, les priodes de test et les priodes de notification ainsi et surtout de la
commande excuter avec ses paramtres (ceux non rentrs en durs).
Les arguments de la commande sont spars par des "!" , dans le cas du SNMPget, largument 1 correspondant ARG1 dans
commands.cfg est 'public', de mme largument 2 (ARG2) est ' 1.3.6.1.2.1.2.2.1.2.1'. Ces paramtres dpendent de la commande
excute.
Ainsi, pour chacune des stations prcdemment dfinies, nous associons les services tester.

7 )Utilisation de NSClient
Surveiller les services disponibles sur une station windows. Pour cela :
utiliser le serveur NSClient installer sur la machine windows,
ainsi que le plugin check_nt, disponible avec NSClient, afin dinterroger le serveur.
complter les fichiers services.cfg et checkcommands.cfg en consquences.
Une fois larchive zip dcompresse, il faut copier les fichiers pNSClient.exe, pdh.dll, psapi.dll et counters.defs dans le

rpertoire o lon veut installer NSClient (par exemple c:\nsclient) puis lancer la commande pNSClient.exe /install dans
un prompt MS-DOS, ce qui installe le service NSClient sur la machine.
On peut alors dmarrer le service.
Du ct de la machine Nagios, il faut utiliser le plugin check_nt qui est fourni dans le fichier zip et le copier dans le
rpertoire des plugins de Nagios.
On modifie le fichier checkcommands.cfg en y ajoutant les blocs suivant:
Test de la mmoire utilise:
define command{
command_name
command_line
}

check_windows_mem
$USER1$/check_nt -H $HOSTADDRESS$ -v MEMUSE -w $ARG1$ -c $ARG2$

Test de lespace disque utilise :


define command{
command_name
command_line
}

check_windows_disk
$USER1$/check_nt -H $HOSTADDRESS$ -v USEDDISKSPACE -l $ARG1$ -w $ARG2$ -c $ARG3$

Puis on ajoute les blocs suivant dans le fichier sercives.cfg pour utiliser ces commandes sur la machine Windows :
Test de la mmoire utilise :
define service{
use
host_name
service_description
is_volatile
check_period
max_check_attempts
normal_check_interval
retry_check_interval
contact_groups
notification_interval
notification_period

generic-service
Non_de_la_Station
MEMORY USED
0
24x7
3
5
1
Windows
240
24x7

; Name of service template to use

TP LP Nagios
notification_options
check_command
}

6
c,r
check_windows_mem!50%!90%

Test de lespace disque disponible:


define service{
use
host_name
service_description
is_volatile
check_period
max_check_attempts
normal_check_interval
retry_check_interval
contact_groups
notification_interval
notification_period
notification_options
check_command
}

generic-service
; Name of service template to use
Non_de_la_Station
DISK
0
24x7
3
5
1
Windows
240
24x7
c,r
check_windows_disk!c!60%!80%

Das könnte Ihnen auch gefallen