Quelques 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:[email protected]
}
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 !
LES COMMENTAIRES (1)
posté le 15 septembre à 14:10
Sous nagios 3 les commandes ne sont plus les mêmes.