Recherche personnalisée
Navigation :

Guides informatiques - Retour

 Image tiret PC

  
Le 20-07-2007 à 12h25
par ludovic
(76988 lectures)

Introduction



J'ai réalisé un stage sur l'installation et la configuration d'un logiciel de monitoring d'un parc serveur.

Le choix se porta sur Nagios, pour le noyau, qui va effectuer des requêtes SNMP vers les serveurs et nous alerter en cas de surcharge ou soucis de disques durs tels qu'un système RAID.
La 1ère partie décrit l'installation de Nagios, la 2ème partie porte sur l'installation et la configuration d'Oréon pour faciliter la configuration de Nagios. En effet, Nagios ne se configure qu'avec des fichiers de configuration et tout faire à la main est vite rébartitif. Oréon permet de créer les fichiers de configuration pour Nagios par l'intermédiaire d'une interface Internet.

Tout cela ne s'installe que sous Linux, et j'utilise Debian Etch 4 comme système d'exploitation.

Ce guide est plus technique que d'habitude et peut-être qu'il ne vous intéressera pas, mais vue la difficulté que j'ai rencontré lors de la mise en place de cette solution (avec les tutoriels sur Internet parfois trop anciens) je partage la documentation que j'ai réalisée et j'espère qu'elle pourra servir à d'autres personnes ;)

Lors de l'installation de Debian (version 4 Etch maintenant), choisissez les LOCALES -> FR_fr@Euro.

Installation de NAGIOS



apt-get install g++ gcc apache2 mysql-server-4.1 snmp snmpd // si SNMP n'est pas installé sur le serveur, le plug in check_snmp ne sera pas disponible

su
cd /tmp
wget http://www.pc-fute.com/materiel/images/nagios_oreon/nagios-2.9.tar.gz
tar xzf nagios-2.9.tar.gz
adduser nagios
mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios

Quel User sous Apache ?
grep "^User" /etc/apache2/apache2.conf //grep "^User"
/etc/httpd/conf/httpd.conf

/usr/sbin/groupadd nagcmd

/usr/sbin/usermod -G nagcmd www-data
/usr/sbin/usermod -G nagcmd nagios

cd nagios-2.9
./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios/ --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagioscmd
// Si utilisation de PerfParse pour Nagios, ajout --with-default-perfdata --with-gd-lib=/usr/lib --with-gd-inc=/usr/include


Compte-rendu une fois l’installation finie :

---
General Options:
-------------------------
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagioscmd
Embedded Perl: no
Event Broker: yes
Install ${prefix}: /usr/local/nagios
Lock file: ${prefix}/var/nagios.lock
Init directory: /etc/init.d
Host OS: linux-gnu

Web Interface Options:
------------------------
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgi-bin/
Traceroute (used by WAP): /usr/sbin/traceroute
--------------------------

Liste des commandes à taper et à réaliser les unes à la suite des autres :

make all
make install
make install-init
make install-config
make cgis


Contenu de « cd /usr/local/nagios »

bin/ -> Nagios core program
etc/ -> Main, resource, object, and CGI configuration files should be put here
sbin/ -> CGIs
share/ -> HTML files (for web interface and online documentation)
var/ -> Empty directory for the log file, status file, retention file, etc.
var/archives -> Empty directory for the archived logs
var/rw -> Empty directory for the external command file
libexec/ -> Plugins

Configuration Apache 2

A rajouter dans le httpd.conf qui est vide (pour le trouver : « find / -name httpd.conf ») :

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin

<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>

Alias /nagios /usr/local/nagios/share

<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>

/etc/init.d/apache2 reload // redémarrage d'Apache2


Définition droit d'accès

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin // Debian nous invite à choisir un MDP

Accès web : http://IP_du_Serveur/nagios/

Test des fichiers .cfg

su // etre en root
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


Si erreur dans /usr/local/nagios/var : Error: Could not create external command file '/usr/local/nagios/var/rw/nagios.cmd'
su nagios
mkdir /usr/local/nagios/var/rw


Si Nagios ne peut pas démarrer : il faut utiliser les fichiers de configuration livrés pour l’exemple :

transfert cp -R /tmp/nagios2.7/sample-config /usr/local/nagios/etc
chown -R nagios.nagios /usr/local/nagios/etc
chmod 755


START NAGIOS

cd /usr/local/nagios/etc
cp cgi.cfg-sample cgi.cfg
cp commands.cfg-sample commands.cfg
cp localhost.cfg-sample localhost.cfg
cp nagios.cfg-sample nagios.cfg
cp resource.cfg-sample resource.cfg

/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg

Si Absence fichier statusmap.cgi

Il se peut que certaines commandes ne fonctionnent pas car elles fonctionnaient avec la version Sarge de Debian :

apt-get install php4-gd libgd2 libfreetype6-dev libjpeg62-dev libpng2-dev xlibs-dev zlib1g-dev libgd2-xpm libgd2-xpm-dev libgd2 libgd2-dev

apt-get install libgd2-noxpm libgd2-noxpm-dev libgd2-xpm libgd2-xpm-dev


Pour Debian Etch 4 :

apt-get install libgd-dev


Dans "nano /etc/php4/apache2/php.ini" (ou "nano /etc/php4/apache/php.ini") -> décochez le ";" devant gd.so

Dans un dossier où nagios est décompressé, faire un :
cd /tmp/nagios-2.9
make devclean
./configure --with-gd-lib=/usr/lib --with-gd-inc=/usr/include // GD, PNG, and/or JPEG libraries could not be located
make cgis // reconfection des CGI
cd cgi
cp *.cgi /usr/local/nagios/sbin // copie nouveaux CGI vers le rep des CGI de nagios


-- 3-D status MAP : navigateur tente de télécharger le fichier -> il manque le plug-in VRML

Téléchargez le client sur : http://cic.nist.gov/vrml/vbdetect.html ou http://www.parallelgraphics.com/products/cortona/

REGLAGES

http://nagios.sourceforge.net/docs/2_0/xodtemplate.html

localhost.cfg -> contient les contacts, services, etc.
nagios.cfg -> configuration des variables
cgi.cfg -> autorisation

TEST PERFORMANCE NAGIOS

http://nagios.sourceforge.net/docs/2_0/nagiostats.html

/usr/local/nagios/bin/nagiostats -c /usr/local/nagios/etc/nagios.cfg

Les résultats de la ligne « Active Service Latency » ne doivent pas être trop importants (plusieurs dizaines/centaines de secondes) :

Active Service Latency: 0.043 / 0.862 / 0.462 sec

Ces chiffres augmentent de manière importante quand il y a des hôtes ou services en état DOWN ou UNKNOWN.

PLUGINS

Récupérez la dernière version des plug-ins : http://nagiosplug.sourceforge.net
http://sourceforge.net/project/showfiles.php?group_id=29880

Je place les plugins que j'ai utilisé sur le site mais je vous recommande de récupérer les dernières versions.

cd /tmp
wget http://www.pc-fute.com/materiel/images/nagios_oreon/nagios-plugins-1.4.8.tar.gz
tar xzf nagios-plugins-1.4.8.tar.gz
cd nagios-plugins-1.4.8
./configure
make all
make install


SNMP pour Debian

apt-get install nmap librrds-perl libgd-gd2-perl libnet-snmp-perl
cd /tmp
wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.tgz
tar xzf nagios-snmp-plugins.1.1.tgz
cd nagios_plugins
./install.sh


A l'écran s'affiche le compte-rendu :

Will now install all script(s) :
in directory : /usr/local/nagios/libexec
perl : /usr/bin/perl
temp directory : /tmp


Le script se termine par :

Installation completed OK
You can delete all the source files and directory
Remember to look for informtation at http://www.manubulon.com/nagios/


Configuration SNMP

nano /etc/snmp/snmpd.conf
commenter la ligne « com2sec paranoid default public » en rajoutant un « # »
supprimer le « # » de la ligne « com2sec readonly default public ».

Installation SNMP sous Windows



Le CD de Windows vous sera peut-être demandé.

Panneau de config
Ajout de composant
Outil de gestion et d'analyse
Cocher SNMP
Configuration dans Services -> SNMP

Installation d'Oréon 1.4



Lors de l'écriture de ce guide, Oréon est en version 1.4 et il existe 5 patchs à appliquer. Au lieu d'installer Oréon et de lui appliquer les 5 patchs, j'ai préféré récupérer Oréon 1.4 puis de patcher les sources directement et enfin de lancer l'installation.

apt-get install rrdtool sudo
apt-get install php4 php4-gd php4-cgi php4-mysql libapache2-mod-php4 php4-snmp php4-ldap php4-pear libconfig-inifiles-perl


Il faut activer mysql.so et snmp.so ldap.so en décommentant la ligne dans le php.ini -> parfois cela est déjà fait !

Récupérez la dernière version d'Oréon sur le site officiel : http://www.oreon-project.org/download.html

cd /tmp
wget http://www.pc-fute.com/materiel/images/nagios_oreon/oreon-1.4.tar.gz
tar xzf oreon-1.4.tar.gz

// PATCH 1
wget http://download.oreon-project.org/patch/oreon-patch-1.4-1.tgz
tar -xvzf oreon-patch-1.4-1.tgz
cd oreon-1.4
for i in $(ls /tmp/oreon-patch/*.patch); do patch -p1 < ${i} ; done

// PATCH 2
cd ..
wget http://download.oreon-project.org/patch/oreon-patch-1.4-2.tgz
tar xzf oreon-patch-1.4-2.tgz
cd oreon-1.4
patch -p1 < /tmp/22-oreon-2004_04_05_-_17_55.patch

// PATCH 3
cd ..
wget http://download.oreon-project.org/patch/oreon-patch-1.4-3.tgz
tar xzf oreon-patch-1.4-3.tgz
cd oreon-1.4
patch -p1 < /tmp/23-oreon-2007_04_10_-_16_27.patch

// PATCH 4
cd ..
wget http://download.oreon-project.org/patch/oreon-patch-1.4-4.tgz
tar xzf oreon-patch-1.4-4.tgz
cd oreon-1.4
patch -p1 < /tmp/oreon-patch-1.4-4/24-oreon-2007_04_13_-_19_28.patch

cd /tmp/oreon-1.4/ODS_SRC_ETC
patch -p0 < /tmp/oreon-patch-1.4-4/25-oreon-init_ods_2007_04_13.patch

// PATCH 5
cd ..
cd ..
wget http://download.oreon-project.org/patch/oreon-patch-1.4-5.tgz
tar xzf oreon-patch-1.4-5.tgz
cd oreon-1.4
patch -p1 < /tmp/oreon-patch-1.4-5/26-oreon-2007_04_24.patch


Sauvegarde du dossier patché avec les sources oreon

cp -R oreon-1.4 /root


Installation de Pear

pear upgrade DB
pear install Date DB_DataObject Numbers_Roman HTML_Common HTML_QuickForm HTML_QuickForm_advmultiselect
pear install Archive_Tar Console_Getopt HTTP Image_Color Image_GraphViz Mail Mail_Mime Net_SMTP Net_Socket Net_Ping XML_RPC PEAR_PackageFileManager

pear install -o -f --alldeps DB_DataObject_FormBuilder MDB2 Numbers_Words HTML_Table Auth_SASL Image_Canvas
pear install -o -f --alldeps Image_Graph Net_Traceroute Validate


Puis on retourne dans le dossier d'Oréon puis on lance l'installation :

cd /tmp/oreon-1.4
./install.sh

enter
enter
etc.
Where is PEAR Path ?
default to [/usr/share/pear]:/usr/share/php/


Oreon efface les nouveaux plug-ins SNMP donc on reinstalle ceux de http://nagios.manubulon.com/

cd nagios_plugins
./install.sh


On continue l’installation d’Oréon : http://IP_du_Serveur/oreon/

I accept
laisser par défaut
nagios 2.X
next
next
Partie 5 ok si installation pear install a bien été effectuée
next
Définir un mot de passe mysql à root : dans une console Putty, taper « mysqladmin password "choisir_un_mot_de_passe" » car il est possible de se connecter avec root en tapant mysql directement sans mot de passe
MDP
oreon_bdd
ods_bdd
MDP différent de root
mettre le même
>4.1 - PASSWORD()
next
next
oreonadmin
MDP
MDP
Prénom
Nom
nagios@localhost
fr
next
no - LDAP
next
next
next
next


On vérifie que l'installation s'est bien passée : http://IP_du_Serveur/oreon/index.php

Création du module pour l’enregistrement des données dans MySQL :

nano /usr/local/nagios/libexec/process-service-perfdata

#!/bin/bash
# some parameters passed on command line
TIMET=$1
HOSTNAME=$2
SERVICEDESC=$3
OUTPUT=$4
SERVICESTATE=$5
PERFDATA=$6
PERFFILE="/usr/local/nagios/var/service-perfdata"
/usr/bin/printf "%b" "$TIMET\t$HOSTNAME\t$SERVICEDESC\t$OUTPUT\t$SERVICESTATE\t$PERFDATA\n" >> $PERFFILE

// on lui donne les droits en lecture et exécution
chmod +rx /usr/local/nagios/libexec/process-service-perfdata

Oreon -> Configuration -> Nagios -> Nagios.conf
set 'Performance Data Processing Option' option to YES
in 'Service Performance Data Processing Command', select 'process-service-perfdata' plugin


save changes and restart Nagios

Ce qui donne :

Image

Configuration d’ODS

ODS est un service intégré à Oréon (depuis la 1.4) qui récupére les données de Nagios pour les intégrer dans la base de données Mysql. Cela est pratique car on peut facilement développer une interface WEB qui va lire cette base de données et afficher la charge des loadbalancers ou autre de façon très claire et cela sans passer par l'interface de Nagios ou Oréon.

Image

// démarrer ODS
/etc/init.d/ods start

// placer au boot le démon ODS
update-rc.d ods start 20 3 4 5 . stop 20 0 1 6 .

// tester les CRON
nano /etc/cron.d/oreon


Exécutez les CRON pour les tester, si des erreurs apparaissent il va falloir modifier les liens, ce que j'ai dû faire pour Debian.

Remplacer :
« /usr/local/oreon/cron/reporting/inventory_cron_update.php » par « /usr/local/oreon/cron/inventory_update.php »
les "php" par "/usr/bin/php4-cgi" si la version de PHP est la 5, pour connaitre la version "php -v"

/usr/bin/php4-cgi /usr/local/oreon/cron/inventory_update.php


LOGS Oréon

Tous les fichiers de log se trouvent dans « cd /usr/local/oreon/log ».

Correction bug graphique RRD

Sur ma machine, j'ai remarqué qu'au bout de plusieurs jours et avec une dizaine de services : les graphes ne s'affichent plus !!
En fait, il s'agit d'un mauvais paramétrage de "heartbeat metric" qui est à 300 par défaut. En la passant à 600, tout rentre dans l'ordre :)

J'ai donc codé un petit script qui passe toutes les bases RRD "heartbeat metric" à 600.

nano /root/correct_rrd.sh

#!/bin/sh
cd /usr/local/oreon/OreonDataStorage
for f in *.rrd; do rrdtool tune $f --heartbeat metric:600; done
exit 0

chmod +x /root/correct_rrd.sh


Pour l’exécuter : ./root/correct_rrd.sh

Correction des dents de scie « check_graph_traffic »

Un bug se produit sur le plug-in check_graph_traffic (peut-être qu'il sera corrigé au moment où vous lirez ces lignes), c'est à dire que les courbes de trafic font des pics en temps de scie, or une fois corrigé, les courbes sont bien lisses ;)

-> Téléchargez le plugin corrigé

cp /usr/local/nagios/libexec/check_graph_traffic.pl /usr/local/nagios/libexec/check_graph_traffic_old.pl

nano /usr/local/nagios/libexec/check_graph_traffic.pl // ligne 295 remplacer les 2 IF par :

if (($in_bits - $last_in_bits > 0) && defined($last_in_bits)) {
my $total = 0;
if ($in_bits - $last_in_bits < 0){
$total = 4294967296 - $last_in_bits + $in_bits;
} else {
$total = $in_bits - $last_in_bits;
}

my $pct_in_traffic = $in_traffic = abs($total / (time - $last_check_time));
} else {
if ($in_bits - $last_in_bits < 0){
my $total = 0;
$total = 4294967296 * 8 - $last_in_bits + $in_bits;
my $pct_in_traffic = $in_traffic = abs($total / (time - $last_check_time));
}else{
$in_traffic = 0;
}
}

if ($out_bits - $last_out_bits > 0 && defined($last_out_bits)) {
my $total = 0;
if ($out_bits - $last_out_bits < 0){
$total = 4294967296 - $last_out_bits + $out_bits;
} else {
$total = $out_bits - $last_out_bits;
}
my $pct_out_traffic = $out_traffic = abs($total / (time - $last_check_time));
} else {
if ($out_bits - $last_out_bits < 0){
my $total = 0;
$total = 4294967296 * 8 - $last_out_bits + $out_bits;
my $pct_out_traffic = $out_traffic = abs($total / (time - $last_check_time));
}else{
$out_traffic = 0;
}
}


Si l’accueil est vide : c'est-à-dire qu’il n’y a pas de CAMEMBERT

pie_chart_host.php -> erreur call to undefined function : setclipping()

dpkg -l | grep gd
gdb 6.3-6 The GNU Debugger
gdm 2.6.0.8-1sarge GNOME Display Manager
klogd 1.4.1-17 Kernel Logging Daemon
libgd-gd2-perl 2.23-1 Perl module wrapper for libgd - gd2 variant
libgd2 2.0.33-1.1sarg GD Graphics Library version 2
libgd2-xpm 2.0.33-1.1sarg GD Graphics Library version 2
libgd2-xpm-dev 2.0.33-1.1sarg GD Graphics Library version 2 (development v
libgda2-3 1.2.1-2sarge1 GNOME Data Access library for GNOME2
libgda2-common 1.2.1-2sarge1 Common files for GNOME Data Access library f
libgdbm3 1.8.3-2 GNU dbm database routines (runtime version)
php4-gd 4.3.10-18 GD module for php4
sysklogd 1.4.1-17 System Logging Daemon

find / -name arial.ttf
/usr/share/pear/Image/Canvas/Fonts/arial.ttf
/usr/share/php/Image/Canvas/Fonts/arial.ttf

find / -name fontmap.txt
/usr/share/pear/Image/Canvas/Fonts/fontmap.txt
/usr/share/php/Image/Canvas/Fonts/fontmap.txt

Placer arial.ttf et fontmap.txt dans /usr/share/php/PEAR/Image/Canvas/Fonts
mkdir /usr/share/php/PEAR/Image
mkdir /usr/share/php/PEAR/Image/Canvas
mkdir /usr/share/php/PEAR/Image/Canvas/Fonts

cp /usr/share/pear/Image/Canvas/Fonts/arial.ttf /usr/share/php/PEAR/Image/Canvas/Fonts
cp /usr/share/pear/Image/Canvas/Fonts/fontmap.txt /usr/share/php/PEAR/Image/Canvas/Fonts

pear upgrade-all

pear install -f Image_Graph
pear install -f Image_Canvas

Décalage horaire d'1h entre le RRD fourni par "Simple Graphs Renderer"

Pas de décalage avec "Graphs Plugins" ou "Graphs By Hosts"
OPTIONS -> GMT : 1

Configuration des commandes "check"



http://forums.opsyx.com/viewtopic.php?t=1322&postdays=0&postorder=asc&start=0
http://xavier.dusart.free.fr/netsaint/documentation-0.0.6/oldplugins.html
http://www.nagios-wiki.de/doku.php/snmp/start
http://www.oidview.com/mibs/detail.html
http://support.ipmonitor.com/mibs_byoidtree.aspx

cd /usr/local/nagios/libexec
Si erreur : nagios@debian:/usr/local/nagios/libexec$ ./check_snmp_load.pl -V
Can't locate Config/IniFiles.pm in @INC (@INC contains:…
apt-get install libconfig-inifiles-perl


Les lignes qui commencent par « $USER1$/ » sont les commandes à copier dans « Check Commands ».
Les lignes qui commencent par « ./ » sont à exécuter directement sous Putty pour tester le plugins en temps réel et voir ce qu’il retourne dans la console. Une fois qu’il fonctionne, on peut l’utiliser dans le Check Commands pour que Nagios l’exécute.

Il est possible de définir des arguments par défaut (Argument Example) pour le plugin dans le Check Commands. Par exemple, « !public » signifie qu’il faut spécifier le paramètre de la communauté SNMP lors de la configuration du service qui va être utilisé par Nagios.

Sous Putty pour tester si le SNMP est activé : « snmpwalk -OX -c Nom_communauté -v 1 IP_A_Tester .1.3.6.1 »

Pour connaître les arguments à utiliser pour chaque plugin, il faut taper « ./nom_plugin –h » et l’aide qui comporte la liste des paramètres s’affichera !

Uptime : va servir d’exemple
Ligne à tester sous Putty : ./check_graph_uptime.pl -H localhost -C public
Image

Si l’on veut retourner le résultat en jour, il faudra rajouter « -d » :
Image

Ligne à placer dans Check Commands :

Image

Ce plugins est livré par défaut avec Oréon et comporte des paramètres pour Oréon tel que « -g –S ».

RAM
$USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$,$ARG3$ -c $ARG4$,$ARG5$ -N -f
!public!90!60!99!80
$USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ -m "^Virtual Memory" -f
!public!80!90

Hits/sec => Get Requests/s et compteurs de performances
$USER1$/check_graph_nt.pl -H $HOSTADDRESS$ -p 12489 -v $ARG1$ -l $ARG2$ -s $ARG3$ -w $ARG4$ -c $ARG5$ -S $ARG6$
!COUNTER!"\\Web Service(_total)\\Get Requests/sec"!None!1600!2000

En laissant l’argument –g, il se produit un bug particulièrement gênant : tous les services veulent grapher la même base RRD. En le supprimant, la sortie du plugin est utilisée et les graphiques sont correctement dessinés.

Espace disque disponible
$USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C $ARG1$ -m $ARG2$ -w $ARG3$ -c $ARG4$ -f
!public!C:!80!90

Charge
$USER1$/check_snmp_load.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$% -c $ARG3$% -T $ARG4$ -f
!public!80!90!stand
Pour linux, il faut mettre « !public!2,2,2!4,4,4!netsl »

Processus
$USER1$/check_snmp_process.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$,$ARG3$ -c $ARG4$,$ARG5$ -n "" -f
!public!10!150!10!500

Traffic
./check_graph_traffic.pl -H 192.168.100.102 -i "Interface 141" -w 80 -c 90 -C public

Interface 3 => 3 Pas obligatoire de mettre Interface 3, possibilité de mettre 3 directement

!65540!80!90!public!1
!16777220!80!90!public!1
!1!80!90!public!1
!3!80!90!public!1

./check_graph_traffic.pl -H 192.168.1.244 -C public -s
Interface 65540 :: Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Client) #2

./check_graph_traffic.pl -H 192.168.7.1 -C public -i 1 -s
Interface 1 :: MS TCP Loopback interface
Interface 65539 :: IBM Netfinity 10/100 Ethernet Adapter
Interface 65540 :: IBM Netfinity 10/100 Ethernet Adapter #2

Service Windows Service test par exemple
./check_snmp_win.pl -H 192.168.7.1 -C public -n "ServiceTEST"
$USER1$/check_snmp_win.pl -H $ARG1$ -C $ARG2$ -n $ARG3$
!192.168.10.5!public!"ServiceTEST"

TCP
./check_tcp -H 192.168.7.1 -p 80 -w 10 -c 60
!192.168.10.5!80!10!60
$USER1$/check_tcp -H $ARG1$ -p $ARG2$ -w $ARG3$ -c $ARG4$

HTTP
./check_http -H domaine.com -I localhost -w 10 -c 60
port 80 -> warning 10 sec et critical 60
!192.168.10.5!10!60
$USER1$/check_http -H $ARG1$ -I localhost -w $ARG2$ -c $ARG3$

[b]Nbre de connexion au parefeu
./check_snmp_cpfw.pl -H 127.0.0.1 -C public -w -c 1000,5000 -f

Ping
$USER1$/check_graph_ping.pl -H $ARG1$ -w 400,40% -c 600,80% -f -n 3 -g -S $ARG2$
!000.000.000.000 -> adresse IP à pinguer

DNS
$USER1$/check_dns -H $ARG1$ -s $ARG2$ -w 10 -c 60
!domaine.com!IP_du_DNS

Check_SNMP s’ils ne sont pas présents :

cd /tmp
wget http://www.pc-fute.com/materiel/images/nagios_oreon/nagios-plugins-1.4.8.tar.gz
tar xzf nagios-plugins-1.4.8.tar.gz
cd nagios-plugins-1.4.8
./configure
make


FireWall



Charge
# Cisco catalyst cpu/load
my $ciscocata_cpu_5m = ".1.3.6.1.4.1.9.9.109.1.1.1.1.5.1"; # Cisco CPU load (5min %)
my $ciscocata_cpu_1m = ".1.3.6.1.4.1.9.9.109.1.1.1.1.4.1"; # Cisco CPU load (1min %)
my $ciscocata_cpu_5s = ".1.3.6.1.4.1.9.9.109.1.1.1.1.3.1"; # Cisco CPU load (5sec %)

$USER1$/check_snmp_load_fw.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ -T $ARG4$ -f
!public!80,80,80!90,90,90!cata

JUNIPER ISG 1000 (Netscreen)
# Netscreen cpu/load
my $nsc_cpu_5m = "1.3.6.1.4.1.3224.16.1.4.0"; # NS CPU load (5min %)
my $nsc_cpu_1m = "1.3.6.1.4.1.3224.16.1.2.0"; # NS CPU load (1min %)
my $nsc_cpu_5s = "1.3.6.1.4.1.3224.16.1.3.0"; # NS CPU load (5sec %)

$USER1$/check_snmp_load_fw.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ -T $ARG4$ -f
!public!80,80,80!90,90,90!nsc

-> Téléchargez le plugin

RAM
$USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ -I –f
!public!80!90

-> Téléchargez le plugin

Trafic Juniper
$USER1$/check_graph_traffic.pl -H $HOSTADDRESS$ -i $ARG1$ -w $ARG2$ -c $ARG3$ -C $ARG4$ -v $ARG5$ -g -S $ARG6$
!3!80!90!public!1

Trafic FireWall
$USER1$/check_graph_traffic.pl -H $HOSTADDRESS$ -i $ARG1$ -w $ARG2$ -c $ARG3$ -C $ARG4$ -v $ARG5$ -g -S $ARG6$
!1!80!90!public!1

Loadbalancer



Charge
http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en&translate=Translate&objectInput=ciscoMgmt

CPU : 5min .1.3.6.1.4.1.9.9.368.1.34.17.1.14.1.1

./check_snmp_load_lb.pl -H 192.168.10.2 -C public -w 80,80,80 -c 90,90,90 -T cata –f
$USER1$/check_snmp_load_lb.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ -T $ARG4$ -f
!public!80,80,80!90,90,90!cata

-> Téléchargez le plugin check_snmp_load_lb.pl

LB 1 - CSS 11000 -> .1.3.6.1.4.1.2467.1.34.17.1.13.1.1

./check_snmp_load_lb_1.pl -H 192.168.10.1 -C public -w 80,80,80 -c 90,90,90 -T cata –f
$USER1$/check_snmp_load_lb_1.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ -T $ARG4$ -f

-> Téléchargez le plugin check_snmp_load_lb_1.pl

RAM
FreeMemory : .1.3.6.1.4.1.9.9.368.1.34.17.1.10.1.1
InstalledMem : .1.3.6.1.4.1.9.9.368.1.34.17.1.12.1.1

$USER1$/check_snmp_mem_lb.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ -f
!public!80,80!90,90

-> Téléchargez le plugin check_snmp_mem_lb.pl

Trafic
$USER1$/check_graph_traffic.pl -H $HOSTADDRESS$ -i $ARG1$ -w $ARG2$ -c $ARG3$ -C $ARG4$ -v $ARG5$ -g -S $ARG6$
!3!80!90!public!1

HP - PROLIANT



Status processeurs proliant:
1.3.6.1.4.1.232.1.2.2.1.1.6

Status disques proliant:
1.3.6.1.4.1.232.3.2.5.1.1.37 .1.3.6.1.4.1.232.3.2.2.1.1.1

Status raid proliant:
1.3.6.1.4.1.232.3.2.3.1.1.4

Status ventilation proliant:
1.3.6.1.4.1.232.6.2.6.5.0

Status canaux scsi proliant:
1.3.6.1.4.1.232.5.2.2.1.1.7

Test RAID : snmpwalk -OX -c public -v 1 192.168.2.1 .1.3.6.1.4.1.795

HP – Disques durs
./check_snmp -H 192.168.2.14 -C public -o .1.3.6.1.4.1.232.3.2.5.1.1.6.1.2 -r 2 -l 'Etat du Disque Dur 1'
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.232.3.2.5.1.1.6.$ARG2$ -r 2 -l 'Etat du disque dur $ARG3$'
!public!chiffre!nbre

1 : other
2 : ok
3 : failed
4 : predictiveFailure

Pour .20 !public!1.2!1 - 1er RAID !public!1.3!2 - 1er RAID !public!1.4!3 - 1er RAID !public!1.5!4 - 1er RAID !public!1.6!5 - 1er RAID !public!1.7!6 - 1er RAID
!public!4.128!1 - 2eme RAID ... !public!4.152!14 - 2eme RAID
Pour .19 !public!0.0!1 !public!0.1!2 !public!0.2!3 !public!0.3!4
Pour .18 !public!0.144!1 - 1er RAID !public!0.145!2 - 1er RAID !public!0.146!3 - 1er RAID !public!0.147!4 - 1er RAID !public!0.148!5 - 1er RAID !public!0.149!6 - 1er RAID
!public!3.128!1 - 2eme RAID ... !public!3.143!14 - 2eme RAID
Pour .17 !public!0.144!1 !public!0.145!2 !public!0.146!3 !public!0.147!4 !public!0.148!5 !public!0.149!6

HP ProCurve Switch 2848
Surveillance port 48

HP – Contrôleur RAID
./check_snmp -H 192.168.1.5 -C public -o .1.3.6.1.4.1.232.3.2.3.1.1.4.0.1 -r 2 -l 'Etat du RAID 1'
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.232.3.2.3.1.1.4.$ARG2$ -r 2 -l 'Etat du RAID $ARG3$'
!public!chiffre!nbre

snmpwalk -OX -c public -v 1 192.168.1.20 .1.3.6.1.4.1.232.3.2.3.1.1.4 pour afficher les RAID

Nom des différents RAID :

Pour 192.168.1.20 !public!1.1!1 !public!4.1!2 !public!4.2!3
Pour 192.168.1.19 !public!0.1!1 !public!0.2!2

2 : Ok
3 : Failed
4 : Unconfigured
5 : Recovering
6 : Ready Rebuild
7 : Rebuilding
8 : Wrong Drive
9 : Bad Connect
10 : Overheating
11 : Shutdown
12 : Expanding
13 : Not Available
14 : Queued For Expansion

DELL



http://support.ipmonitor.com/mibs/STORAGEMANAGEMENT-MIB/oids.aspx

DELL – Contrôleur RAID
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.674.10893.1.20.130.1.1.5.1 -r 1 -l 'Etat du RAID'
!public!chiffre!nbre

./check_snmp -H 192.168.2.21 -C public -o .1.3.6.1.4.1.674.10893.1.20.130.1.1.5.1 // 1 -> ID controlleur
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.674.10893.1.20.130.1.1.5.1 -r 1 -l 'Etat du RAID'

0: Unknown
1: Ready
2: Failed
3: Online
4: Offline
6: Degraded

DELL - Batterie
./check_snmp -H 192.168.1.21 -C public -o .1.3.6.1.4.1.674.10893.1.20.130.15.1.4.1
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.674.10893.1.20.130.15.1.4.1 -r 1 -l 'Etat batterie'
!public

0: Unknown
1: OK
2: Failed
7: Reconditioning
9: High
10: Low
12: Charging
21: Missing

DELL - Disques durs
./check_snmp -H 192.168.1.21 -C public -o .1.3.6.1.4.1.674.10893.1.20.130.4.1.23.1 -r 3 -l 'Etat du Disque Dur 1'
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.674.10893.1.20.130.4.1.23.$ARG2$ -r 3 -l 'Etat du Disque Dur $ARG2$'

1: Other
2: Unknown
3: OK
4: Non-critical
5: Critical
6: Non-recoverable

IBM



http://www.nagios-wiki.de/doku.php/snmp/start

IBM - Controlleur RAID
./check_snmp -H 192.168.1.14 -C public -o .1.3.6.1.4.1.795.14.1.1000.1.1.11.1 // 1 -> ID controlleur
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.795.14.1.1000.1.1.11.1 -r 3 -l 'Etat du RAID'
• !public

IBM - Disques durs
./check_snmp -H 192.168.1.14 -C public -o .1.3.6.1.4.1.795.14.1.400.1.1.11.1 -r 3 -l 'Etat du Disque Dur 1'
$USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o .1.3.6.1.4.1.795.14.1.400.1.1.11.$ARG2$ -r 3 -l 'Etat du Disque Dur $ARG2$'
• !public!1

1 : unknown
2 : other
3 : okay
4 : warning
5 : failure

--------------------------------------------------------------------------------------------
Pour grapher du « check_snmp_* » -> il ne faut pas oublier « -f » en argument !

TEMPS DES CHECKS

Image

- 3 essais avant de déclarer une erreur
- Un check toutes les X * 60 secondes
- Un nouvel essai toutes les X * 60 secondes

NOTIFICATON

Les mails d'alertes avaient une forme peu commode et il manquait des informations, voici ce que j'ai mis :

Hotes-envoi-par-mail
/usr/bin/printf "%b" "********* NAGIOS ********* Notification \n\n Type: $NOTIFICATIONTYPE$ \n Host: $HOSTNAME$ \n State: $HOSTSTATE$ \n Address: $HOSTADDRESS$ \n Groups: $HOSTGROUPNAME$ \n\n Last command name: $HOSTCHECKCOMMAND$ \n\n Info: $HOSTOUTPUT$ \n\n Date/Time: $SHORTDATETIME$ \n " | @MAILER@ -s "Host $HOSTSTATE$ alert for $HOSTNAME$ !" $CONTACTEMAIL$


Services-envoi-par-mail
/usr/bin/printf "%b" "********* NAGIOS ********* Notification \n\n Type: $NOTIFICATIONTYPE$ \n Host: $HOSTNAME$ \n Service: $SERVICEDESC$ \n Address: $HOSTADDRESS$ \n Groups: $HOSTGROUPNAME$ \n\n State: $SERVICESTATE$ \n\n Date/Time: $SHORTDATETIME$ \n\n Last command name: $SERVICECHECKCOMMAND$ \n\n Additional Info: $SERVICEOUTPUT$" | @MAILER@ -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$


TIPS DEBIAN



Probleme de Locales

Sous Debian choisir Locales -> FR_fr@Euro

debian:~# dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "fr_FR@euro"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
fr_FR.ISO-8859-15@euro... done
Generation complete.

debian:~# /usr/bin/locale
LANG=fr_FR@euro
LC_CTYPE="fr_FR@euro"
LC_NUMERIC="fr_FR@euro"
LC_TIME="fr_FR@euro"
LC_COLLATE="fr_FR@euro"
LC_MONETARY="fr_FR@euro"
LC_MESSAGES="fr_FR@euro"
LC_PAPER="fr_FR@euro"
LC_NAME="fr_FR@euro"
LC_ADDRESS="fr_FR@euro"
LC_TELEPHONE="fr_FR@euro"
LC_MEASUREMENT="fr_FR@euro"
LC_IDENTIFICATION="fr_FR@euro"
LC_ALL=
debian:~#


Installation phpmyadmin

cd /tmp
wget http://www.pc-fute.com/materiel/images/nagios_oreon/phpMyAdmin-2.10.3-all-languages.tar.gz
tar xzf phpMyAdmin-2.10.3-all-languages.tar.gz
mv phpMyAdmin-2.10.3-all-languages /var/www/phpmyadmin


http://localhost/phpmyadmin/ #1045 - Access denied for user 'root'@'localhost' (using password: NO)

cd /var/www/phpmyadmin
cp config.sample.inc.php config.inc.php
nano config.inc.php
// il faut spécifier un mot de passe
$cfg['blowfish_secret'] = 'choisir_un_mot_de_passe';



Mettre à jour horloge

apt-get install ntpdate
/usr/sbin/ntpdate fr.pool.ntp.org

apt-get install ntp-simple

nano /etc/ntp.conf

server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org

/etc/init.d/ntp restart
0 */6 * * * /etc/init.d/ntp restart >> /tmp/cron_ntp_restart


Changement IP

nano /etc/network/interfaces

iface eth0 inet static
address 192.168.1.102
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.255.255
gateway 192.168.10.254

/etc/init.d/networking restart
ifup eth0


Installation POSTFIX

apt-get install postfix courier-pop courier-base courier-authdaemon courier-imap

myhostname = debnagios
mydomain = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname, localhost, $mydomain, localhost.$mydomain
mynetworks = 192.168.0.0/16, 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
mail_owner = postfix
relayhost = smpt.relais.com


Accès extérieur Mysql

Dans le code C# ou autre : "Database=perfparse;Data Source=192.168.2.90;User Id=stats_net;Password=plop;"

Sous PHPmyAdmin :
stats_net - % - Oui - SELECT - Non

nano /etc/mysql/my.cnf
#skip-external-locking
#bind-address = 127.0.0.1


Ouvrir port 3306 du parefeu ou rediriger votre routeur.

On teste en ligne de commande : "mysql -u stats_net -p -h 192.168.2.90". On rentre le mot de passe "plop" et on doit avoir la console MySQL. Si une erreur apparait, il s'agit d'une mauvaise configuration, vérifiez bien les manipulations effectuées plus haut.

LIENS INTERNET



Addons MOZILLA FireFox : https://addons.mozilla.org/fr/thunderbird/addon/3607

http://www.totkat.org/pages/nconf_commands.shtml
http://nagios.manubulon.com/
http://www.totkat.org/pages/nagios.shtml

Guide complet d’utilisation : http://wiki.oreon-project.org/index.php/DOSSIER_EXPLOITATION

TOP 5 : Configurer et ouvrir les ports de sa FreeBox Configurer sa NeufBox version 4 Installation de Nagios et Oréon : monitoring de parc informatique Enregistrer et encoder un film enregistré à partir d'une FreeBox Test du Linksys WAG200G-FR (modem/routeur ADSL, compatible ADSL2)      
© Copyright PC Futé 2003
Page exécutée en 0.882 seconde.