Magazine Internet

Exemples de check de services Nagios

Publié le 31 juillet 2008 par Nicolargo

Exemples de check de services NagiosQuelques exemples de services pour Nagios. N’hésitez pas à donner d’autres exemples via les commentaires ou ma fiche de contact.

J’intégrerai les exemples les plus pertinents au billet.

On menu du jour:

  • superviser un serveur Web (HTTP)
  • superviser un serveur Web sécurisé (HTTP over SSL)
  • superviser un serveur de messagerie (mail)
  • superviser un serveur VoIP (sip)
  • superviser un serveur de fichiers (samba)
  • superviser un serveur annuaire (LDAP)
  • superviser un serveur de base de données (mySQL ou pgSQL)
  • superviser un serveur réseau (DHCP et DNS)

< tous les plats sont accompagnés de frites et de salade >

Superviser un serveur Web

Nous utilisons pour cela le plugin check_http qui permet de tester si un serveur HTTP est bien lancé sur la machine à superviser.

Exemple:

define command{

command_name check_http

command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$

}

define host{

use generic-host

host_name monserveur

alias Serveur Web

address 192.168.0.100

}

define service{

use generic-service

host_name monbeauserveur

service_description HTTP

check_command check_http

}

Pour aller plus loin:

Le plugin utilise par défaut une requête sur le port TCP/80. Pour changer ce port, vous pouvez utiliser l’option -p et créer une nouvelle commande (à utiliser dans le check_command de votre nouveau service):

define command{

command_name check_http_8080

command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$-p 8080

}

Superviser un serveur Web sécurisé

Si votre serveur Web est sécurisé avec le protocole SSL. Il faut créer une nouvelle commande basée sur check_http.

Exemple:

define command{

command_name check_http

command_line $USER1$/check_http -S -I $HOSTADDRESS$ $ARG1$

}

define host{

use generic-host

host_name monserveur

alias Serveur Web

address 192.168.0.100

}

define service{

use generic-service

host_name monbeauserveur

service_description HTTPs

check_command check_https

}

Superviser un serveur de messagerie

Pour surveiller un serveur Mail proposant les protocoles SMTP, POP3 et IMAP (merci Dovecot), nous allons utiliser les plugins check_smtp, check_pop et check_imap.

Exemple:

define host{

use generic-host

host_name monserveur

alias Serveur de messagerie

address 192.168.0.100

}

define service{

use generic-service

host_name monserveur

service_description SMTP

check_command check_smtp

}

define service{

use generic-service

host_name monserveurmail

service_description POP

check_command check_pop

}

define service{

use generic-service

host_name monserveurmail

service_description IMAP

check_command check_imap

}

Superviser un serveur Asterisk

Pour surveiller un serveur SIP (par exemple votre serveur Asterisk), nous allons utiliser le plugin check_sip. n’étant pas fourni en standard, il faut d’abord l’installer puis le configurer avant de pouvoir l’utiliser comme service.

Installation:

cd /usr/src

wget http://www.bashton.com/downloads/nagios-check_sip-1.2.tar.gz

tar zxvf nagios-check_sip-1.2.tar.gz

cd nagios-check_sip-1.2

cp check_sip /usr/local/nagios/libexec/

chown apache:nagios /usr/local/nagios/libexec/check_sip

Configuration (à ajouter dans votre fichier commands.cfg de Nagios):

###### SIP#####

define command{

command_name check_sip

command_line $USER1$/check_sip -H $HOSTADDRESS$ -u sip:user@mondomaine.com

}

Il faut penser à mettre un nom d’utilisateur valide après l’option -u.

Et enfin un exemple de service:

define host{

use generic-host

host_name monserveur

alias Serveur SIP

address 192.168.0.100

}

define service{

use generic-service

host_name monserveur

service_description SIP

check_command check_sip

}

Superviser un serveur de fichiers

Un serveur de fichier peut se baser sur de nombreux protocoles. Nous allons nous focaliser sur un serveur Windows ou Linux (avec Samba), souvent utilisé en entreprise grâce au protocole SMB.

Configuration (à ajouter dans votre fichier commands.cfg de Nagios):

###### SMB #####

define command{

command_name check_smb

command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 445

}

Et enfin un exemple de service:

define host{

use generic-host

host_name monserveur

alias Serveur de fichiers

address 192.168.0.100

}

define service{

use generic-service

host_name monserveur

service_description SMB

check_command check_smb

}

Superviser un serveur LDAP

Un serveur est souvent le coeur d’un système d’information. C’est donc un poihnt critique à surveiller dans Nagios. Nous allons pour celà utiliser le service check_ldap qui prend en paramètres l’adresse du serveur LDAP ainsi que le DN à tester.

Configuration (à ajouter dans votre fichier commands.cfg de Nagios):

###### LDAP #####

define command{

command_name check_ldap

command_line $USER1$/check_ldap -H $HOSTADDRESS$ -b $ARG1$

}

Exemple de service:

define host{

use generic-host

host_name monserveur

alias Serveur LDAP

address 192.168.0.100

}

define service{

use generic-service

host_name monserveur

service_description LDAP

check_command check_ldap!”dc=mondomaine,dc=com”

}

Superviser un serveur de base de données

MySQL et pgSQL sont des serveurs de base de données open-source très répandus. Il existe donc deux plugins spécifiques check_mysql et check_pgsql disponible en standard avec Nagios. Personnellement, je n’utilise pas ces deux plugins car ils peuvent présenter une faille dans votre réseau. En effet, il utilise une requête SQL nécessitant un login/password. Hors ce couple apparaîtra dans la liste des processus lors de l’éxecution du plugin par Nagios.

Je préfère donc utiliser des plugins basés sur check_tcp.

Configuration (à ajouter dans votre fichier commands.cfg de Nagios):

###### SQL #####

define command{

command_name check_pgsql

command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 5432

}

define command{

command_name check_mysql

command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 3306

}

Exemple de service:

define host{

use generic-host

host_name monserveur

alias Serveur MYSQL

address 192.168.0.100

}

define service{

use generic-service

host_name monserveur

service_description MYSQL

check_command check_mysql

}

Superviser un serveur réseau

DHCP et DNS sont la base de votre infrastructure réseau. Nous allons donc utiliser les plugins check_dns et check_dhcp pour les surveiller de prêt.

Configuration (à modifier dans votre fichier commands.cfg de Nagios):

###### DNS #####

define command{

command_name check_dns

command_line $USER1$/check_dns -H www.google.fr -s $HOSTADDRESS$

}

###### DHCP #####

define command{

command_name check_dhcp

command_line sudo -u root $USER1$/check_dhcp -s $HOSTADDRESS$

}

Pour le check_dns, Je vous conseille de mettre un serveur qui ne risque pas de disparaître du jour au lendemain dans les DNS mondiaux en paramètre -H.

Pour le check_dhcp, la commande doit être exécuté avec les droits root. Il faut donc ajouter la ligne suivante au fichier /etc/sudoers:

nagios ALL=NOPASSWD: /usr/local/nagios/libexec/check_dhcp *

Exemple de service DNS:

define host{

use generic-host

host_name monserveur

alias Serveur DNS

address 192.168.0.100

}

define service{

use generic-service

host_name monserveur

service_description DNS

check_command check_dns

}

Exemple de service DHCP:

define host{

use generic-host

host_name monserveur

alias Serveur DHCP

address 192.168.0.100

}

define service{

use generic-service

host_name monserveur

service_description DHCP

check_command check_dhcp

}

A vous de joueret de proposer de nouveaux exemples de services !


Retour à La Une de Logo Paperblog

LES COMMENTAIRES (1)

Par foxriver
posté le 15 septembre à 14:10
Signaler un abus

Sous nagios 3 les commandes ne sont plus les mêmes.

A propos de l’auteur


Nicolargo 417 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte