Catégories
Open-source Reseau Systeme

Utilisation de Centreon

Centreon est une belle couche d’administration Web à ajouter à votre serveur Nagios (si vous êtes allergiques à la ligne de commande Unix). Cependant la prise en main de Centreon peut s’avérer difficile vu l’absence de guide utilisateur digne de ce nom…

Avant de commencer, il faut vous assurer d’avoir une configuration Nagios/Centreon en état de marche…

Nous allons donc dans ce billet dérouler un cas d’école: l’ajout  d’un « host » de type serveur Linux et d’un « service » HTTP pour la supervision d’un serveur Web Apache.

Ajout d’un « host »

Nous allons ajouter un host de type serveur Linux à notre configuration Nagios.

On va pour cela dans le menu Configurer / Hosts et on clique sur le bouton Add:

Ensuite, on entre les caractéristiques propres du serveur (1):

  • Son nom (« host name »): www
  • Sa description (« Alias »): Serveur Web
  • Son adresse IP/DNS: www.mondomaine.com

On clique ensuite sur le bouton + pour ajouter un template associé a cet « host » (2). Pour rappel, un template est la centralisation de caractéristiques communes à des machines.

Puis on sélectionne le template (3): Servers-Linux

Enfin, on clique sur le bouton Save (4).

A ce stade, l' »host » www est dans la configuration de Centreon.

Ajout d’un « service »

Nous allons ajouter un host de typeNous allons poursuivre notre exemple par l’ajout d’un « service » pour superviser un serveur Web hébergé sur notre « host » www. Pour cela, il faut se rendre dans les menus Configuration / Service.

 

Comme on peut le voir, Centreon à créé des services par défaut (associé au template par défaut) permettant de superviser par SNMP certains services (disque, charge, swap) de notre serveur. Pour que cela fonctionne, il faut bien évidemment qu’un serveur SNMP soit lancé et configuré sur la machine « host » www. Dans mon exemple, je veux seulement surveiller la présence d’un serveur Web, je vais donc supprimer ces services de ma configuration Nagios:

Puis:

On peut ensuite ajouter notre nouveau service en cliquant sur le bouton Add:

Nous allons commencer par saisir:

  • le nom du service: Serveur HTTP (1)
  • le template assosié: generic-service (2)

Il est possible de voir le contenu d’un template en cliquant sur le bouton à droite du menu déroulant:

ce qui va afficher:

  • Le plugin à appeler pour ce service: check_http (3)

On clique ensuite sur le menu Relations (4) pour associer notre « service » au « host »

On ajoute donc le « host » www à la liste des hosts associés à ce service:

On finalise en cliquant sur le bouton Save:

Le service est maintenant présent dans la configuration de Centreon.

Notre configuration n’est pas encore supervisé, Centreon ne fait pas la supervision, c’est Nagios qui s’occupe de ces taches. Il faut donc exporter la nouvelle configuration sur notre serveur Nagios.

Exportation de la configuration vers Nagios

Il faut pour cela, aller dans le menu Configuration / Nagios / Generation (1 / 2) puis cliquer sur les boutons:

  • « Move export files »: pour déplacer physiquement les fichiers de configuration dans l’arborescence Nagios.
  • « Restart Nagios »: pour demander à Centreon de redémarrer Nagios pour que la configuration soit prise en compte.

Puis cliquer sur Export (3)

Si tout ce passe bien, vous ne devriez pas avoir de message d’erreur mais seulement:

Quelques minutes après l’exportation, la nouvelle configuration apparaitra dans l’interface de Centreon:

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 4

Nous arrivons bientôt à la fin de l’installation de notre serveur de supervision. Avec Nagios et Centreon il est parfaitement opérationnel. Je trouve cependant qu’il manque encore à Centreon des fonctions de graphes évoluées. C’est pour cela que je propose d’ajouter sur notre bébé un serveur Cacti.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 3

Les deux premiers billet de cette série nous ont permis d’installer le coeur de notre serveur de supervision: le logiciel Nagios. Nous allons donc maintenant nous occuper de l’enrobage: l’interface Web d’administration Centreon.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Centreon offre à Nagios une nouvelle interface et lui apporte de nouvelles fonctionnalités. Il va rendre la configuration de Nagios plus facile et d’avoir une interface graphique améliorée. C’est une interface qui pour moi n’est pas obligatoire mais qui peut s’avérer utile dans certains cas:

  • si une équipe doit gérer le serveur Nagios, il sera plus facile de les former en utilisant Centreon
  • si vous êtes allergique aux fichiers de configuration au format texte
  • si vous êtes un “accro” aux interfaces Web

Attention toutefois, Centreon va générer des fichiers de configuration de Nagios à sa manière. Vous allez donc perdre tout le contrôle sur ces fichiers… Bref si vous êtes un administrateur système soigneux, qui prend soit de commenter/archiver voir gérer en configuration ce type de fichiers, je vous conseille de passer votre chemin et d’attendre le prochain billet de cette série.

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 2

Attention:

avant de suivre ce tutoriel, il faut avoir effectuer toutes les étapes
de la première partie de tutoriel (PART1) qui est disponible ici.

Actuellement le couple NDO / Centreon n’est pas compatible avec Nagios 4.

Dans un premier billet, nous avons installé un serveur GNU/Linux. Il est maintenant temps de passer au chose sérieuse en installant le coeur de notre système: Nagios.

A l’heure ou je rédige ce billet, la dernière version de Nagios est la 3.5.1, hors si on regarde la version disponible dans les packages apt d’Ubuntu, on voit qu’ils sont un peu en retard au niveau des version. C’est donc pour cette raison que je préfère compiler Nagios depuis les sources afin de disposer de la dernière version sur notre serveur de supervision.

Catégories
Nagios Open-source Reseau Systeme

Le serveur de supervision libre – PART 1

Cela fait maintenant un petit moment que ce blog existe. Il aborde bien des sujets autours des logiciels libres mais il y en a un qui suscite plus d’intérêt que les autres: la supervision système et réseau. La complexité de ces logiciels et la faible documentation Francophone (bien que ce soit en train de changer) y est surement pour quelque chose.

Je propose donc de commencer une série de billets sur l’installation d’un serveur de supervision basé uniquement sur des solutions libres.

PART 1 – Installation du système d’exploitation GNU/Linux
PART 2 – Installation de Nagios
PART 3 – Installation de Centreon
PART 4 – Installation de Cacti

Les caractéristiques de ce serveur seront les suivantes:

  • Système d’exploitation: GNU/Linux Ubuntu Server Edition 8.10 ou supérieure
  • Nagios 3.4.1
  • Centreon 2.3.8
  • Cacti 0.8.7i

Trêve de blabla, entrons directement dans le vif du sujet avec l’installation du système d’exploitation et des pré-requis systèmes qui vont servir de base à notre serveur de supervision.

Catégories
Open-source Reseau

Surveiller les interfaces de son Cisco avec Nagios

Qui veut surveiller l’état des interfaces de ses routeurs Cisco doit obligatoirement se plonger dans l’arborescence des MIB SNMP. Heureusement, Patrick Proy a eu la bonne idée d’intégrer dans un seul et même script Perl toutes les fonctions pour répondre à ce besoin.

Nous allons dans ce billet voir comment installer et tester le plugin check_snmp_int.pl puis configurer Nagios pour prendre en compte ce nouveau plugin.

Installation du plugin

Il faut dans un premier temps se rendre dans le répertoire ou les plugin Nagios sont stockés (/usr/local/libexec/nagios par exemple) puis y télécharger la dernière version du plugin (1.4.8 au moment de l’écriture de ce billet):

cd /usr/local/libexec/nagios
wget http://nagios.manubulon.com/check_snmp_int.pl

Ensuite on le rend executable par Nagios:

chown nagios:nagios check_snmp_int.pl
chmod 555 check_snmp_int.pl

Enfin on vérifie que l’utilisateur Nagios (ou celui qui doit lancer Nagios) peut exécuter ce script:

su – nagios
nagios> /usr/local/libexec/nagios/check_snmp_int.pl -h
… la syntaxe va s’afficher …
nagios> exit

Si vous avez une erreur lors de l’éxécution du script, cela peut être dû à l’absence des pré-requis suivants sur votre système:

  • Perl doit être installé dans le répertoire /usr/bin/perl
  • La librairie Perl nommée Net::SNMP doit être installé (via CPAN)
  • Le fichier ‘utils.pm doit être présent dans le répertoire des plugins Nagios

Test du plugin

Nous allons dans un premier temps chercher la liste des interfaces réseau du routeur Cisco (ou autre compatible avec MIB-2 standard) à superviser:

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n zzzz -v
Alarm at 15 + 5
SNMP v1 login
Filter : zzzz
OID : 1.3.6.1.2.1.2.2.1.2.26, Desc : Async54
OID : 1.3.6.1.2.1.2.2.1.2.28, Desc : Async56
OID : 1.3.6.1.2.1.2.2.1.2.18, Desc : Async46
OID : 1.3.6.1.2.1.2.2.1.2.12, Desc : Async40
OID : 1.3.6.1.2.1.2.2.1.2.31, Desc : Async59
OID : 1.3.6.1.2.1.2.2.1.2.19, Desc : Async47
OID : 1.3.6.1.2.1.2.2.1.2.22, Desc : Async50
OID : 1.3.6.1.2.1.2.2.1.2.34, Desc : Async62
OID : 1.3.6.1.2.1.2.2.1.2.13, Desc : Async41
OID : 1.3.6.1.2.1.2.2.1.2.23, Desc : Async51
OID : 1.3.6.1.2.1.2.2.1.2.4, Desc : Null0
OID : 1.3.6.1.2.1.2.2.1.2.35, Desc : Loopback0
OID : 1.3.6.1.2.1.2.2.1.2.30, Desc : Async58
OID : 1.3.6.1.2.1.2.2.1.2.5, Desc : Async33
OID : 1.3.6.1.2.1.2.2.1.2.11, Desc : Async39
OID : 1.3.6.1.2.1.2.2.1.2.1, Desc : Ethernet3/0
OID : 1.3.6.1.2.1.2.2.1.2.39, Desc : Virtual-Access2
OID : 1.3.6.1.2.1.2.2.1.2.14, Desc : Async42
OID : 1.3.6.1.2.1.2.2.1.2.37, Desc : Virtual-Template1
OID : 1.3.6.1.2.1.2.2.1.2.16, Desc : Async44
OID : 1.3.6.1.2.1.2.2.1.2.20, Desc : Async48
OID : 1.3.6.1.2.1.2.2.1.2.17, Desc : Async45
OID : 1.3.6.1.2.1.2.2.1.2.29, Desc : Async57
OID : 1.3.6.1.2.1.2.2.1.2.36, Desc : Tunnel0
OID : 1.3.6.1.2.1.2.2.1.2.3, Desc : Serial3/1
OID : 1.3.6.1.2.1.2.2.1.2.25, Desc : Async53
OID : 1.3.6.1.2.1.2.2.1.2.2, Desc : Serial3/0
OID : 1.3.6.1.2.1.2.2.1.2.7, Desc : Async35
OID : 1.3.6.1.2.1.2.2.1.2.33, Desc : Async61
OID : 1.3.6.1.2.1.2.2.1.2.9, Desc : Async37
OID : 1.3.6.1.2.1.2.2.1.2.6, Desc : Async34
OID : 1.3.6.1.2.1.2.2.1.2.15, Desc : Async43
OID : 1.3.6.1.2.1.2.2.1.2.10, Desc : Async38
OID : 1.3.6.1.2.1.2.2.1.2.27, Desc : Async55
OID : 1.3.6.1.2.1.2.2.1.2.32, Desc : Async60
OID : 1.3.6.1.2.1.2.2.1.2.8, Desc : Async36
OID : 1.3.6.1.2.1.2.2.1.2.21, Desc : Async49
OID : 1.3.6.1.2.1.2.2.1.2.24, Desc : Async52

Il faut ensuite noter le nom système des interfaces à surveiller (par exemple Serial 3/0 et Serial 3/1 dans mon cas).

Puis on lance ensuite la commande pour vérifier l’état de l’interface Serial 3/0:

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n « Serial3/0 » -r
Serial3/0:UP:1 UP: OK

On a donc maintenant la commande à éxécuter, il ne reste plus qu’a l’intégrer dans notre configuration de Nagios.

Configuration de Nagios

On commence par se rednre dans le répertoire ou se trouve les fichiers de configuration de Nagios (/usr/local/etc/nagios par exemple):

cd /usr/local/etc/nagios

Puis si vous êtes sous Nagios 3.x ou supérieur dans le sous-répertoire objects:

cd objects

Enfin on édite le fichier commands.cfg puis on y ajoute la section suivante:

###################
# check_snmp_int.pl
###################

# ‘check_snmp_int.pl’, vérifier l’état de l’interface reseau
define command{
command_name    check_snmp_int
command_line    $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -r
}

On vient donc de créer une nouvelle commande Nagios qui appelera le plugin check_snmp_int avec deux paramètres:

  • $ARG1$: nom de la communauté SNMP à utiliser (public la plupart du temps)
  • $ARG2$: nom de l’interface à superviser

Enfin , on ajoute un nouveau service pour le routeur Cisco à superviser (par exemple dans le fichier network.cfg):

define host{
use             routeur
host_name       cisco
alias           Routeur liaison WAN
address         <adresseIProuteurcisco>
}
define service{
use                     generic-service
host_name               cisco
service_description     LS 1
check_command           check_snmp_int!public!« Serial3/0 »
}

Et si en plus je veux…

…surveiller la bande passante utilisée et envoyer une alerte si celle-ci dépasse un certain seuil ? Aller Noël n’est pas si loin…

Il suffit de créer une nouvelle commande Nagios et d’utiliser l’option -k du plugin. Par exemple pour surveiller un interface Serial3/0 et emmettre une alerte de warning si  débit dépasse 1.6 Mbps puis une alerte critique si ce dernier passe la barre des 1.9 Mbps ?

/usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n « Serial3/0 » -k -w 1600,1600 -c 1900,1900

Je vous laisse convertir cette commande système vers une commande Nagios, cela vous fera un bon exercice 😉

Catégories
Open-source Reseau

Mise à jour de Nagios 3.0.6

La nouvelle version de Nagios (3.0.6) est en ligne. La liste des changements est disponible içi. Comme toujours, il est fortement conseillé de mettre à jour vos serveurs. Pour celà vous pouvez suivre une de ces procédures:

A vous de jouer !

Catégories
Open-source Reseau Systeme

Notifications Nagios par SMS

url.jpgCe billet fait suite à une demande pressente de plusieurs lecteurs de ce blog qui ont en commun le besoin d’envoyer des notifications Nagios par SMS afin que leurs administrateurs/utilisateurs puissent les recevoir sur un simple téléphone portable.

Avant de commencer…

… ce qui Nagios ne sait pas faire: envoyer des SMS !!!

Et oui, il n’y a pas de miracle, Nagios ne sait pas envoyer directement de SMS (il n’est pas fait pour cela…). Il va falloir donc passer par un serveur offrant les fonctions suivantes:

  • recevoir les notifications venant de Nagios (par mail, http ou autre…)
  • transformer ce message en SMS
  • envoyer le SMS sur le réseau téléphonique GSM

Pas la peine de chercher bien loin, une requête du type serveur SMS dans gOOgle devrait vous mettre sur la bonne voie. Dans l’exemple si dessous, j’ai choisi l’opérateur 123-SMS qui propose un service sans abonnement (on crédite son compte en fonction de ses besoins) et avec des interfaces diverses et variées (Mail, HTTP, Socket, Curl…).

Il faut dans un premier temps créer un compte et le créditer

Je vous conseille de créer le compte en question en donnant l’adresse mail de l’utilisateur Unix qui lance Nagios (par exemple nagios@votredomaine.com).

Configuration de Nagios

Il faut créer une nouvelle commande de notification dans le fichier de configuration …:

define command{

command_name notify-service-by-sms

command_line /usr/bin/printf « %b » « ** $NOTIFICATIONTYPE$ alert – $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ ** » | /usr/bin/mail -s « MOTDEPASSE:$CONTACTPAGER$ » sms@123-sms.net

}

define command{

command_name notify-host-by-sms

command_line /usr/bin/printf « %b » « Host $HOSTSTATE$ alert for $HOSTNAME$! » | /usr/bin/mail -s « MOTDEPASSE:$CONTACTPAGER$ » sms@123-sms.net

}

avec:

  • MOTDEPASSE est le mot de passe fournie par votre opérateur de SMS
  • CONTACTPAGER sera automatiquement remplacer par Nagios par le numéro de téléphone portable (PAGER) du contact à prévenir
  • sms@123-sms.net est l’adresse mail du serveur de votre opérateur SMS (le serveur qui va envoyer le SMS sur le réseau GSM)

Il ne reste plus qu’a ajouter cette notification aux administrateurs/utilisateurs (par exemple le pauvre gars nommé James qui a comme numéro de téléphone 06007007) que l’on souhaite prévenir:

define contact{

contact_name monadminquivapasdormirdelanuit

alias James

service_notification_period 24×7

host_notification_period 24×7

service_notification_options w,u,c,r

host_notification_options d,u,r

service_notification_commands notify-service-by-sms

host_notification_commands notify-host-by-sms

pager 336007007

}

Et voilà, il ne reste plus qu’a relancer Nagios et attendre les premiers SMS…

Catégories
Open-source Reseau

Mise à jour des plugins dans Nagios

litejazz_logo.pngLa version 1.4.13 des plugins officiels de Nagios viennent de sortir. Pour une description précise des changements, vous pouvez consulter ce billet sur Nagios-fr.

Voici donc un procédure effectuer cette mise à jour sur un serveur existant. Cette procédure est applicable pour toutes les mises à jours des plugins.

Récupération des plugins

Il faut se rendre sur le site officiel pour télécharger la dernière version des plugins.

wget http://ovh.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz

Compilation et installation

On lance la classique « combo » suivant:

cd nagios-plugins-1.4.13

./configure

make

make install

Puis on met à jour les droits des fichiers:

chown nagios:nagios /usr/local/nagios/libexec/*

Redémarrage de Nagios

Sous Fedora:

service nagios restart

Sous Ubuntu/Debian

/etc/init.d/ nagios restart

Catégories
Open-source Reseau

Sjitter supporte l’IPv6

sjitter.pngPetite amélioration de Sjitter, mon outil pour tester les réseaux (bande passante, délais, gigue) en ligne de commande. Le logiciel a été testé sous GNU/Linux, FreeBSD et Mac OS X.

Je viens de mettre en ligne la version 0.17 qui apporte le support de l’adressage IPv6. Un petit exemple d’utilisation:

Server# sjitters -6

[Client: fe80::21e:bff:fe33:f39b] Init OK (wait 5252 datagrams of 1400 bytes)

[Client: fe80::21e:bff:fe33:f39b] Receive 5252/5252 (100%) datagrams in 60.12 seconds (978 Kbps)

One-way delay summary (ms): Min=0.01 / Max=11.02 / Avg=0.03

Jitter summary (ms) : Min=0.00 / Max=1.27 / Avg=0.02

Client# sjitterc -6 -c fe80::21eb:bff:fe31:f76c -b 1000 -t 60

Send data (5252 datagrams of 1400 bytes / 1000 Kbps) to the [server]:port [fe80::21e:bff:fe33:f39b]:9930

Sending data (estimate time: 60 seconds)…

Summary: 5252 datagrams sent in 60.12 seconds (978 Kbps)

Plus d’information sur Sjitter sur la page officielle ainsi que sur la forge.