Nagios

De Hegyd Doc.

Sommaire

Prérequis

  • Un serveur sous système GNU/Linux
  • Cette page de manuel à été faite sous une Debian Squeeze

Présentation

  • Nagios3 est un outils de supervision permettant la surveillance système et réseau. Il surveille les hôtes et services spécifiés, alertant lorsque les systèmes se portent mal ou/et bien. C'est un logiciel libre sous licence GPL.
  • Le service est installé sur la Vm Sysadmin.

Installation du serveur

  • Installer nagios3
aptitude install nagios3 nagios-nrpe-plugin
  • Configuration

Les fichiers de configuration pour les clients, les templates (hosts, services ...) de nagios se trouve dans :

/etc/nagios3/conf.d/

Le fichier de configuration de nagios lui même se trouve dans :

/etc/nagios3/nagios.cfg
  • Configuration d'un client

Dans le fichier de configuration d'un client vous définissez les services que vous voulez lui associé :

define service{                                                                                                   
    use                             generic-service                            # référence au template de service    
    host_name                       hosting                                    # nom de l'hôte à laquelle on associe le service                                                         
    service_description             SSH                                        # description du service                
    check_command                   check_ssh!argument1!argument2...           # lancement de la commande  les arguments sont séparés par des !   
}

Les commandes sont définis dans le dossier :

/etc/nagios-plugins/config/*.cfg

Si l'on veut définir un service distant avec le plugin Nrpe :

define service{                                                                                                 
    use                             generic-service                               # référence au template de service    
    host_name                       hosting                                       # nom de l'hôte à laquelle on associe le service                                                         
    service_description             SSH                                           # description du service                
    check_command                   check_nrpe!check_ssh! argument1 argument2     # lancement de la commande les arguments sont séparés par des espaces
}

Il faut que la commande soit définis dans le fichier de configuration de Nrpe (voir point suivant)

Installation du client (distant)

  • Installer NRPE server et les plugins de bases pour Debian
aptitude install --without-recommends nagios-nrpe-server nagios-plugins fping libnet-snmp-perl snmp
  • Installer NRPE server et les plugins de base pour Fedora
yum install nrpe nagios-plugins-dummy nagios-plugins-load nagios-plugins-ntp nagios-plugins-sensors nagios-plugins-smtp nagios-plugins-disk nagios-plugins-swap

! Penser à mettre le service au démarrage via la commande suivante !!!

chkconfig nrpe --levels 2345 on


  • Installer les plugins Hegyd
mkdir /usr/local/share/nagios
svn co http://dev.hegyd.net/svn/sysadmin/nagios/hegyd-plugins /usr/local/share/nagios/hegyd-plugins
chmod -R 775 /usr/local/share/nagios
chown -R root:staff /usr/local/share/nagios/hegyd-plugins
ln -s /usr/local/share/nagios/hegyd-plugins/* /usr/local/bin/
  • Configuration de NRPE

Backup de la config d'origine, puis remplacement par la version générique du dépot

cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.orig.bak
svn export http://dev.hegyd.net/svn/sysadmin/nagios/nrpe.cfg /etc/nagios/nrpe.cfg

Configuration pour le check Apache

  • Activer le module apache extended status
a2enmod status
  • Autorise sysadmin à consulter la page de status

Editer le fichier "/etc/apache2/mods-enabled/status.conf" :

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 ::1
        Allow from 178.33.76.41
        Allow from 46.18.122.14
        AuthUserFile /var/projects/common/.htpasswd
        AuthName "Acces reserve"
        AuthType Basic
        require user mike albin emmanuel gael
        Satisfy Any
</Location>

# Keep track of extended status information for each request
ExtendedStatus On

Configuration pour les check Mysql

Ajouter l'utilisateur nagios dans le cli Mysql :

CREATE USER nagios@localhost IDENTIFIED BY PASSWORD '*D2E12CBA3CE3E704A874AC1703D59044D8B1D61D';
GRANT PROCESS ON *.* TO 'nagios'@'localhost' IDENTIFIED BY PASSWORD '*D2E12CBA3CE3E704A874AC1703D59044D8B1D61D';
  • Notes

Il faut ouvrir le port 5666 par défaut pour le service nrpe.

Dans le fichier de configuration, /etc/nagios/nrpe.cfg, modifier la ligne suivante pour autoriser le passage de paramètres aux commandes lancées via Nrpe

dont_blame_nrpe=1

Il faut aussi commenter les exemples de commandes par défaut et ainsi mettre les commandes souhaitées en suivant ce principe :

command[nom_de_la_commande]=chemin_absolu_vers_le_plugin [option $ARG1$] [option2 $ARG2$]

Gestion des spool mails

La gestion du volume de mail par spool se fait via le démon mailgraph qui analyse le log mail.log en temps réel afin d'en sortir des statistics. Normalement, les statistiques sont directement stockées dans une fichier rrd, mais il est possible de patcher le script afin qu'il log dans un fichier et exloiter les données via NRPE.

  • Procédure :

Installer mailgraph packagé sans installer les dépendances apache recommandés :

apt-get install mailgraph --no-install-recommends
/etc/init.d/mailgraph stop
cp /usr/sbin/mailgraph /usr/local/sbin/
wget http://www.linuxplayer.org/wp-content/uploads/2011/03/check_mailstat_plugin_v0.9.1.zip
unzip check_mailstat_plugin_v0.9.1.zip
cd check_mailstat_plugin_v0.9.1
patch /usr/local/sbin/mailgraph mailgraph.patch
vim /etc/init.d/mailgraph
DAEMON="/usr/local/sbin/mailgraph"
/etc/init.d/mailgraph start

Liste de vérification

  • A mettre sur tous les serveurs

- Current Load - SSH - Disk Space - Memory - Swap - Total Procs - Uptime - NTP


TODO

  • Check si les firewall sont bien chargé
  • check du service nagios via pingdom
  • check Gluster,bacula, nb connection CloseWait par ip