Catégories
Nagios Open-source Planet-libre Reseau

Le script de supervision d’Asterisk par Nagios évolue

Grâce à la contribution de Fréderic Jean, le script Perl Nagisk que j’avais développé il y a quelques temps passe en version 1.2. Cette nouvelle mouture apporte les nouveautés suivantes:

  • adaptation du script pour Asterisk version 1.6.13.2
  • modification de la commande pour avoir les informations sur les channels (« core show channels »)
  • ajout de l’option -p pour spécifier un peer

Pour rappel, Nagisk est un plugin pour Nagios permettant de récupérer, via NRPE, des informations sur votre serveur Asterisk (serveur PABX software).

La syntaxe est la suivante:

Syntax: ./nagisk.pl [-hv] [-c OPT] [-s NB|-p NAME]

-c version: Display the Asterisk version

-c peers: Display the SIP peers status

-c peer: Display the status of a particular peer

-c channels: Display the SIP channels status

-c zaptel: Display the status of the zaptel card

-c span: Display the status of a specific span (set with -s option)

-s <span number>: Set the span number (default is 1)

-p <peer name>

-h: Display the help and exit

-v: Display version and exit

Toutes les informations pour télécharger et installer ce script dans Nagios se trouve dans ce billet (mis à jour pour cette version).

Catégories
Blog Nagios Open-source Planet-libre Reseau Systeme Web

Superviser son blog avec Nagios

Pour moi, la vraie révolution Internet de ces dernières années est l’apparition de blogs ayant petit à petit pris le relais des sites institutionnels pour diffuser de l’information. Souvent tenu à bout de bras par des particuliers, ils ne disposent pas d’une infrastructure informatique professionnelle.

Ainsi en cas de problème technique, l’administrateur est souvent prévenu par ses lecteurs…

Nous allons donc voir dans ce billet comment utiliser le logiciel libre de supervision Nagios pour surveiller automatiquement son blog.

Voilà ce que donnera le résultat dans l’interface Web de Nagios:

Contexte

Afin d’illustrer ce billet, nous allons partir sur l’hypothèse ou vous disposer d’un blog hébergé sur un serveur dédié ou virtuel sous Ubuntu Server 10.04 avec un accès SSH et un compte utilisateur avec les droits d’administration (sudo>r00t).

Aller on se connecte en SSH sur son serveur et on suit le guide.

Installation de Nagios

Nous allons utiliser le script d’installation automatique de Nagios (développé par votre serviteur).

On commence par le télécharger le script nagiosautoinstall-ubuntu.sh:

mkdir ~/monitoring/

cd ~/monitoring

wget https://raw.github.com/nicolargo/nagiosautoinstall/master/nagiosautoinstall-ubuntu.sh

chmod a+x nagiosautoinstall-ubuntu.sh

Puis on lance l’installation (il y a quelques questions auxquelles il faudra répondre) :

sudo ./nagiosautoinstall-ubuntu.sh

On devrait ensuite pourvoir accéder à l’interface Web de Nagios à partir de l’URL suivant: http://@IP/nagios/

Ou @IP est l’adresse IP de votre serveur.

Configuration de Nagios

Comme Nagios tourne sur la même machine que le serveur à superviser, toutes la configuration se fera dans le fichier de configuration localhost.cfg.

J’utilise deux plugins non inclus dans les plugins de bases de Nagios (mais installé automatiquement par le script nagiosautoinstall-ubuntu.sh):

On édite le fichier /usr/local/nagios/etc/objects/localhost.cfg (à adapter à votre configuration…):

#######################################################################

#

# Supervision du blog blog.nicolargo.com

#

#######################################################################

 

#######################################################################

#######################################################################

#

# HOST DEFINITION

#

#######################################################################

#######################################################################

 

# Define a host for the local machine

 

define host{

use linux-server

host_name blog

alias blog.nicolargo.com

address 127.0.0.1

}

 

#######################################################################

#######################################################################

#

# SERVICE DEFINITIONS

#

#######################################################################

#######################################################################

 

 

# Define a service to « ping » the local machine

 

define service{

use local-service

host_name blog

service_description PING

check_command check_ping!100.0,20%!500.0,60%

}

 

 

# Define a service to check the disk space of the root partition

# on the local machine. Warning if < 20% free, critical if

# < 10% free space on partition.

 

define service{

use local-service

host_name blog

service_description Root Partition

check_command check_local_disk!10%!5%!/

}

 

 

 

# Define a service to check the number of currently logged in

# users on the local machine. Warning if > 2 users, critical

# if > 3 users.

 

define service{

use local-service

host_name blog

service_description Current Users

check_command check_local_users!2!3

}

 

 

# Define a service to check the number of currently running procs

# on the local machine. Warning if > 250 processes, critical if

# > 400 processes.

 

define service{

use local-service

host_name blog

service_description Total Processes

check_command check_local_procs!250!400!RSZDT

}

 

# Check memoire avec script check_memory

# http://blog.nicolargo.com/2008/07/surveiller-la-memoire-de-vos-serveurs-avec-nagios.html

# -w 800000000 -c 900000000

 

define service{

use local-service

host_name blog

service_description Memory

check_command check_memory!800000000!900000000

}

 

# Define a service to check the load on the local machine.

 

define service{

use local-service

host_name blog

service_description Current Load

check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

}

 

# Define a service to check the swap usage the local machine.

# Critical if less than 10% of swap is free, warning if less than 20% is free

 

define service{

use local-service

host_name blog

service_description Swap Usage

check_command check_local_swap!20!10

}

 

# Define a service to check SSH on the local machine.

# Disable notifications for this service by default, as not all users may have SSH enabled.

 

define service{

use local-service

host_name blog

service_description SSH

check_command check_ssh

#notifications_enabled 0

}

 

 

 

# Define a service to check HTTP on the local machine.

# Disable notifications for this service by default, as not all users may have HTTP enabled.

 

define service{

use local-service

host_name blog

service_description HTTP

check_command check_http

#notifications_enabled 0

}

 

# Define a service to check URL

# http://blog.nicolargo.com/google89d0cf0b89815a2a.html

 

define service{

use local-service

host_name blog

service_description URL Google check file

check_command check_url!http://blog.nicolargo.com/googl

e89d0cf0b89815a2a.html

}

 

# Define a service to check URL

# http://blog.nicolargo.com/sitemap.xml.gz

 

define service{

use local-service

host_name blog

service_description URL Sitemap

check_command check_url!http://blog.nicolargo.com/sitem

ap.xml.gz

}

 

# Define a DDOS detection service

# http://blog.nicolargo.com/?p=4100

# Warning: >50 SYN_RECV

# Critical: >70 SYN_RECV

 

define service{

use local-service

host_name blog

service_description DDOS detect

check_command check_ddos!50!70

}

Ce fichier de configuration va permettre de superviser les choses suivantes:

  • état du serveur (réponse au ping en moins de 500ms et 60% de paquets perdus)
  • espace disque disponible > 5% de la taille totale (10% pour un warning)
  • pas plus de 3 personnes connectés en même temps sur le serveur (2 pour un warning)
  • pas plus de 400 processus lancés en parallèle (250 pour un warning)
  • mémoire disponible (basée sur RAM 1 Go) > 10% de la mémoire totale (20% pour un warning)
  • charge (CPU) moyenne sur 5 minutes < 10% (5% pour un warning)
  • espace de swap disponible > 10% de la taille totale du swap (20% pur warning)
  • Port SSH en écoute
  • Port HTTP en écoute
  • Vérification de l’existence du fichier de check de Google
  • Vérification de l’existence du fichier sitemap.xml (référencement dans moteur de recherche)

Il y a surement plein d’autres choses à vérifier…

A vos claviers pour nous dire cela dans les commentaire.

Catégories
Nagios Open-source Planet-libre Reseau

Détection des attaques DDOS avec Nagios

Les attaques DDOS sont sous le feu de la rampe (et des médias) depuis l’affaire Wikileaks.

C’est une attaque assez difficile à détecter car contrairement à des attaques plus « classiques », elle se base sur le fait d’inonder la machine cible de requêtes venant d’un nombre important de machines zombies (c’est à dire infecté par un programme qui va lancer une attaque).

Nous allons dans ce billet voir comment utiliser Nagios pour envoyer des alertes en cas de détection d’une attaque de type DDOS SYN Flood.

Pour cela j’ai développé (sous licnce GPL v3) un plugin Nagios disponible à l’adresse suivante:

https://raw.github.com/nicolargo/nagiosautoinstall/master/check_ddos.pl

Installation du script

Il faut disposer d’un serveur Nagios correctement configuré. Puis exécuter les commandes suivantes:

cd /usr/local/nagios/libexec

sudo rm -f check_ddos.pl

wget https://raw.github.com/nicolargo/nagiosautoinstall/master/check_ddos.pl

chmod a+rx check_ddos.pl

sudo chown nagios:nagios check_ddos.pl

Test du script:

./check_ddos.pl -w 50 -c 60

No DDOS attack detected (5/50)

Configuration de Nagios

Pour ajouter un service de détection DDOS SYN Flood sur la machine locale (en clair pour vérifier les attaques DDOS vers le serveur hébergeant Nagios), il faut dans un premier temps éditer le fichier commands.cfg (par défaut dans le répertoire /usr/local/nagios/etc/objects) pour ajouter la nouvelle commande de detection DDOS SYN Flood:

# check_ddos

define command{

command_name check_ddos

command_line $USER1$/check_ddos.pl -w $ARG1$ -c $ARG2$

}

Puis il faut éditer le fichier localhost.cfg (qui se trouve également dans le répertoire /usr/local/nagios/etc/objects):

# Define a DDOS SYN Flood detection service

# http://blog.nicolargo.com/?p=4100

# Warning: >50 SYN_RECV

# Critical: >70 SYN_RECV

define service{

use local-service

host_name bilbo

service_description DDOS SYN Flood detect

check_command check_ddos!50!70

}

Nous venons ainsi de définir un service qui va émettre une alerte Warning quand le serveur aura plus de 50 connexions de type SYN_RECV ouvertes (plus de 70 pour une alerte Critical). Ces chiffrent sont bien sur à adapter selon les serveurs…

En bonus, si une alerte est généré, le plugin affiche le TOP 10 des adresses IP des machines zombies (pratique pour les bloquer avec des règles de Firewall Iptables).

Si vous souhaitez surveiller les attaques DDOS SYN Flood sur une autre machine, il faut utiliser le plugin NRPE qui va faire l’interface entre le serveur Nagios et le serveur à superviser.

Sources pour la rédaction de ce billet:

Catégories
Nagios Open-source Planet-libre Reseau

Utiliser Nmap pour générer vos fichiers de configuration Nagios

ATTENTION: Dans sa version actuelle, le script ne marche qu’avec la version 5 de Nmap. Sinon, le fichier .cfg généré risque de rester désespérément vide…

 

Renseigner des fichiers de configuration de Nagios « à la mimine » n’est pas une activité que je juge  passionnante.

Nous allons voir dans ce billet comment utiliser le scanner de réseau Nmap pour nous aider dans cette lourde tache en développant un petit Script Shell nommé nmaptonagios.sh. Pour les plus impatients, vous pouvez directement aller au dernier chapitre de ce billet pour voir comment installer et lancer le script.

Avant de commencer

Le plus simple est de faire cette découverte du réseau directement depuis votre serveur de supervision hébérgeant Nagios. En effet, les éventuels mécanismes de filtrage de votre réseau doivent déjà permettre a  ce serveur de faire des ping et des requêtes TCP/UDP vers l’ensemble des machines (ou alors votre serveur Nagios ne doit pas bien fonctionner…).

Il faut commencer par installer NMap sur cette machine.

Installation de Nmap sous Ubuntu / Debian:

aptitude install nmap

Récupérer la liste des machine « UP » de votre réseau

Dans la suite de ce billet, je prendrai l’exemple d’un adminsitrateur réseau qui veut découvrir les machines  de son LAN qui utilise la plage d’adresse IP suivante: 192.168.1.0/24.

Pour avoir une liste des adresses ou des noms (si vous avez un serveur DNS à jour) des machines répondant aux PING de votre réseau, il suffit de saisir la commande:

nmap -sP 192.168.1.0/24

Si un nom d’hôte est associé à une adresse il est affiché.

Exemple:

Nmap scan report for 192.168.1.104

Host is up (0.0019s latency).

Nmap scan report for labo-desktop2 (192.168.1.109)

Host is up (0.00056s latency).

Cette première commande va nous servir pour générer la boucle principale de notre script.

Détection des OS

Pour générer dans la configuration de Nagios une description des hôtes contenant l’OS, nous allons utiliser l’option -O de nmap:

nmap -O 192.168.1.109

Selon le système d’exploitation la détection se fait de manière plus au moins simple.

3 lignes sont intéressantes dans le rapport généré par l’option -O:

OS Detail: ***

Running: ***

Service detail: ***

Notre script va donc tester ces variables puis choisir celle qui donne une information la plus précise (sachant que ce test n’est pas fiable à 100%).

Détection des services

On entre dans le vifs du sujet avec la détection des services accessibles sur les machines.

On filtre pour cela les ports TCP ou UDP ouverts (open), puis on vérifie qu’un plugin est disponible dans le répertoire /usr/lib/nagios/plugins (il est possible de changer ce répertoire en modifiant la variable NAGIOS_PLUGINS_PATH au début du script).

Par exemple, si le script détecte que le port TCP/80 (http) est open, alors il va rechercher le plugin /usr/lib/nagios/plugins/check_http et configurer le service correspondant. Si il ne le trouve pas il va se rabattre sur un check_tcp simple sur le port 80.

On utilise la commande nmap suivante:

nmap -sV 192.168.1.109

Installation et utilisation du script nmaptonagios.pl

On commence par récupérer le script:

wget https://raw.github.com/nicolargo/nagiosautoinstall/master/nmaptonagios.sh

chmod a+x ./nmaptonagios.sh

Puis on l’exécute:

sudo ./nmaptonagios.sh 192.168.1.0/24

—————————————————————

Nagios configuration file: /tmp/nmaptonagios-20101124095216.cfg

—————————————————————

A la fin du script, on a un fichier de configuration de Nagios à éditer et à adapter à vos besoins:

vi /tmp/nmaptonagios-20101124095216.cfg

Pour faire prendre en compte ce fichier par Nagios, il suffit de le copier dans le répertoire /usr/local/nagios/etc/objects:

sudo cp /tmp/nmaptonagios-20101124095216.cfg /usr/local/nagios/etc/objects

sudo chown nagios:nagios /usr/local/nagios/etc/objects/nmaptonagios-20101124095216.cfg

Puis de relancer nagios:

sudo service nagios restart

Le script est distribué sous licence GPL v2. Libre à vous de l’adapter, modifier, copier et distribuer !

Catégories
Nagios Open-source Planet-libre Web

Notification Twitter (oAuth) dans Nagios

Twitter est un service devenu indispensable pour la veille technologique des geeks que nous sommes. Son « ouverture via des API permet également de l’utiliser comme un moyen simple de diffusion d’informations de type alerte.

Nous allons dans ce billet voir comment configurer Nagios (l’outil de supervision open-source) pour envoyer des alertes sur un compte Twitter dédié. La méthode détaillé est compatible avec la nouvelle méthode d’authentification de Twitter nommée oAuth.

Avant de commencer

Pour ne pas poluer votre time-line pricipale, je vous conseille de créer un compte Twitter dédié à ce besoin. C’est sur ce dernier que les alertes seront envoyées. Il suffira ensuite aux « administateurs » de suivre ce compte Twitter pour être informé au plus vite des anomalies survenues sur le réseau.

Pour créer notre compte Twitter special Nagios, on va à l’adresse suivante:

Il faut bien retenir votre « username » (nagiosnicolargo dans mon cas) et « password ».

Il faut ensuite se rendre dans les « Settings » et cliquer sur le bouton « Protect my updates » pour forcer l’approbation des utilisateurs qui vont pouvoir suivre ce compte Twitter. Quand un des administrateurs fera une demande pour suivre ce compte Twitter, il faudra l’approuver. Cela évite que n’importe qui voit que votre réseau est tombé :)…

Installation du script de mise à jour de Twitter

Depuis que l’authentification sur Twitter, la procédure est un peu plus compliquée. J’ai donc écrit un billet spécifique sur le sujet. Il suffit de suivre cette procédure en prenant comme compte Twitter le compte préalablement créé dans le chapitre précédant pour y associer une nouvelle application (le script Python nommé tweetitcli.py) qui va permettre à Nagios de mettre à jour la timeline.

Après cette étape, vous devez donc être capable de mettre à jour la timeline de votre compte Twitter dédié avec une ligne de commande du type:

./tweetitcli.py ‘Petit test depuis la ligne de commande Linux’

Je vous laisse vérifier que cela marche…

Il faut ensuite copier le script en question dans le répertoire des plugins de Nagios:

cp ./tweetitcli.py /usr/local/nagios/libexec/

sudo chown nagios:nagios /usr/local/nagios/libexec/tweetitcli.py

Configuration du serveur Nagios

Passons maintenant aux fichiers de configuration de Nagios. Je pars sur le principe que vous avez un serveur Nagios en état de marche. On commence par ajouter la commande tweetitcli.py qui va permettre d’envoyer un message à notre compte Twitter via Curl:

# vi /usr/local/nagios/etc/objects/commands.cfg

define command{
command_name    notify-host-by-twitter
command_line    $USER1$/tweetitcli.py « $HOSTNAME$ is $HOSTSTATE$ »
}
define command{
command_name    notify-service-by-twitter
command_line    $USER1$/tweetitcli.py « $SERVICEDESC$@$HOSTNAME$ is $SERVICESTATE$ ** $SERVICEOUTPUT$ »
}


Ensuite on défini le contact (ou le groupe à vous de voir):

# vi /usr/local/nagios/etc/objects/templates.cfg

define contact{
name  nicolargoadmin 
alias Admin Nicolargo
service_notification_period     24×7                    
host_notification_period        24×7                    
service_notification_options    w,u,c,r,f,s             
host_notification_options       d,u,r,f,s            
service_notification_commands   notify-service-by-twitter
host_notification_commands      notify-host-by-twitter
}

Puis enfin on associe le contact avec le service à surveiller (par exemple que mon serveur Web tourne bien…):

define host{
use                     linux-host
host_name               gandiserveur
alias                   Serveur Gandi
address                 blog.nicolargo.com
parents                 monrouteur
hostgroups              prj-perso
contacts                nicolargoadmin
}
define service{
use                     generic-service
host_name               gandiserveur
service_description     HTTP
check_command           check_http
contacts                nicolargoadmin
}

On teste…

Il ne reste plus qu’a tester vos fichiers de configuration:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

et à relancer Nagios:

sudo service nagios restart

A chaque notification, un nouveau message devrait apparaître dans votre compte Twitter dédié 😉

Catégories
Developpement Nagios Open-source Reseau Systeme

Script de mise à jour automatique de Nagios

Aprés l’installation automatique, voici un nouveau script shell « maison » permettant de mettre simplement à jour votre serveur Nagios (core et plugins inclus).

Ce script est une synthése des articles « Comment mettre à jour son serveur Nagios ? » et « Mise à jour des plugins Nagios« . Il ne doit être utilisé que si vous avez installé Nagios à partir de cette procédure ou de ce script d’installation automatique.

Le script est distribué sous licence GPL. Libre à vous de le modifier pour l’adapter à vos besoins. Si des âmes charitables veulent modifier le script pour l’adapter à d’autres distribution GNU/Linux ou BSD, je suis preneur pour les mettre en téléchargement sur mon serveur.

Récupération du script

On lance la commande suivante pour télécharger le script sur son serveur et le rendre exécutable:

cd /tmp
wget --no-check-certificate https://raw.github.com/nicolargo/nagiosautoinstall/master/nagiosautoupdate.py
chmod a+x nagiosautoupdate.py

PS: vous pouvez télécharger le script directement par l’URL suivante (GitHub).

Lancement du script

Il suffit ensuite de lancer le script et de répondre aux questions posées par le système (en root ou précédé de la commande sudo):

./nagiosautoupdate.py

Et si la mise à jour se passe mal ?

Le script archive la configuration n-1, il suffit donc d’ouvrir un terminal et de saisir les commandes suivantes pour revenir dans l’ancienne version (en root ou précédé de la commande sudo):

cd /
tar zxvf /tmp/nagios-backup.tgz
chown -R nagios:nagios /usr/local/nagios

Informations sur la mise à jour

Dans la version 0.9 du script la mise à jour se fera vers:

Nagios Core version      4.0.0
Nagios Plugins version   1.5
NRPE version             2.15
Catégories
Nagios Open-source

Soutien à Nagios-FR

La communauté libre de Nagios-FR est en ébullition depuis les échanges de mails entre Ethan (le concepteur de Nagios), sa femme Marry (qui s’occupe de l’administration Nagios Enterprise) et Olivier Jan (de Nagios-FR). Bien que je trouve la réaction d’Olivier un peu trop excessive par rapport au premier mail de Marry, c’est celle d’Ethan qui me choque le plus mais sans me surprendre.

Comme vous avez pu le constater je parle de moins en moins de Nagios (même si la page réunissant les billets sur le sujet reste la plus consulté de mon blog).  Même si la raison principale est que, de part mon activité professionnelle, je m’intéresse moins à la supervision système/réseau, je suis de moins en moins positif par rapport aux orientations prise par Nagios. Les priorités ne sont pas mises aux bons endroits, en effet, « Nagios Enterprise » met de coté les aspects techniques (évolution du produit, prise en compte des demandes des utilisateurs) par rapport aux cotés « business » (support, maintenance, gestion de la marque (c) Nagios, communication…).

Nous retombons ici sur l’éternel problème de l’industrialisation d’une solution libre. Je ne pense pas que les méthodes de « Nagios Enterprise » soient les bonnes. L’avenir nous le dira. Il serait dommage que les 10 ans d’efforts d’Ethan pour développer une solution libre et ouverte de supervision réseau soient réduit à néant. D’autant plus que la concurrence avance de son coté (voir par exemple Zabbix).

A suivre…

Catégories
Nagios Open-source

Superviser l’espace disque avec Nagios via SNMP

Disque dur

Voici une méthode simple rapide et efficace (enfin plus rapide à mettre en place que NRPE) pour surveiller l’espace disque disponible de ses machines Linux/BSD/Windows à partir de Nagios en utilisant le protocole SNMP.

Les pré-requis sont les suivants:

  • avoir un Nagios correctement installé
  • la machine à surveiller doit héberger un serveur SNMP dont la configuration permette au serveur Nagios de lire les informations (l’accès read-only v1/v2 de SNMP est suffisant)
  • suivre la suite de ce billet 😉

Configuration de la machine à surveiller

Après avoir installé et configuré son serveur SNMP, il faut ajouter la ligne suivante au fichier de configuration snmpd.conf (la localisation de ce dernier est os dépendant):

[shell]
disk / 100000
[/shell]

PS: le deuxième paramètre permet de fixer le seuil en dessous duquel une alerte SNMP est remontée. Il n’est pas très important pour nous car c’est Nagios qui va générer cette alerte avec nos propres valeurs.

On doit bien sûr relancer le service snmpd pour lire la configuration, par exemple:

[shell]
/etc/init.d/snmpd restart
[/shell]

Configuration du serveur Nagios

La première chose à faire est de vérifier que l’on arrive bien à récupérer les informations SNMP sur la machine à surveiller (d’adresse IP 192.168.0.200 dans notre exemple). Pour cela on peut utiliser la commande suivante:

[shell]
snmpget -v 1 -c public 192.168.0.200 .1.3.6.1.4.1.2021.9.1.9.1
UCD-SNMP-MIB::dskPercent.1 = INTEGER: 32
[/shell]

La commande a réussi. On a bien récupéré la valeur 32 par SNMP. Donc On a 32% d’espace disque occupé sur le disque de la machine 192.168.0.200.

On configure Nagios de la manière suivante, on édite le fichier commands.cfg:

[shell]
#################
# check_snmp_disk
#################

# Check free disk space using SNMP (add the "disk 1000000" line to the snmpd.conf)

define command{

command_name check_snmp_disk

command_line $USER1$/check_snmp -H $HOSTADDRESS$ -o .1.3.6.1.4.1.2021.9.1.9.1 -C $ARG1$ -w $ARG2$ -c $ARG3$ -u "% used"

}
[/shell]

Puis on configure le service pour la machine à surveiller (dans un autre fichier comme par exemple services.cfg):

[shell]

define service{
use generic-service
host_name Ma_Machine_192.168.0.200
service_description DISK SPACE
check_command check_snmp_disk!public!90!95
}

[/shell]

La fonction check_snmp_disk prend 3 paramètres:

  • le nom de la communauté SNMP (public)
  • le seuil au dessus duquel un warning est généré par Nagios (90%)
  • le seuil au dessus duquel un error est généré par Nagios (95%)

Il ne reste plus qu’a relancer Nagios pour prendre en compte la configuration !

Catégories
Developpement Nagios Open-source Reseau Systeme

Script d’installation automatique de Nagios

Il y a plusieurs méthodes pour installer Nagios, le système de supervision libre, sur un nouveau serveur. La plus simple est d’utiliser les dépôts officiels de votre distribution GNU/Linux, avec le désavantage de ne pas avoir les dernières versions disponibles. La seconde est de suivre pas à pas mon tutoriel (PART 1 et 2) qui permet de faire une compilation depuis les sources.

Je vous propose dans ce billet une troisième voie, qui mixe la simplicité de la première méthode et la finesse de la seconde.

J’ai développé un petit script (sous licence GPL) permettant d’automatiser l’installation d’un serveur Nagios complet sur une distribution GNU/Linux Ubuntu (j’ai validé le script sur Ubuntu Desktop et Ubuntu Server). Libre à vous de modifier ce script pour l’adapter à vos besoins. Si des âmes charitables veulent modifier le script pour l’adapter à d’autres distribution GNU/Linux ou BSD, je suis preneur pour les mettre en téléchargement sur mon SVN.

Récupération du script

On lance la commande suivante pour télécharger le script sur son serveur et le rendre exécutable:

wget --no-check-certificate https://raw.github.com/nicolargo/nagiosautoinstall/master/nagiosautoinstall-ubuntu.sh
chmod a+x nagiosautoinstall-ubuntu.sh

PS: vous pouvez télécharger le script directement sur GitHub.

Lancement du script

Il suffit ensuite de lancer le script et de répondre aux questions posées par le système (en root ou précédé de la commande sudo):

./nagiosautoinstall-ubuntu.sh

Informations sur l’installation

Dans la version 0.8 du script la configuration finale est la suivante:

Nagios Core version      4.0.0
Nagios Plugins version   1.5
Utilisateur système:     nagios
Groupe système:          nagios
Utilisateur pour l'interface Web (http://localhost/nagios/): nagiosadmin
Catégories
Nagios Open-source Reseau Systeme

Un nouveau livre en Francais sur Nagios 3.0

Je viens d’apprendre (merci Sacha) la sortie d’un nouveau livre traitant de la supervision système et réseau et de Nagios en particulier. L’auteur est Jean Gabès, administrateur système de profession et qui a également écrit quelques bons articles dans le fameux Linux magazine. Le titre du livre est « Nagios 3 pour la supervision et la métrologie : Déploiement, configuration et optimisation » aux éditions Eyrolles.

Je viens de commander ce livre, je vous fait un retour dès que je l’aurai entre les mains.