Le système d'exploitation GNU-Linux/La supervision

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


  1. Qu'est-ce qu'un système d'exploitation ?
  2. Unix et Linux
  3. Partitionnement du disque
  4. Installation
    1. Installer Debian via le réseau
  5. Utilisateur Unix, l'interface console
    1. Le login
    2. Commandes de base
    3. L'aide en ligne man
    4. L'éditeur de texte vi
    5. Les shells
    6. La complétion
    7. Les jokers
    8. Les répertoires importants
    9. Redirection des entrées/sorties
    10. Invoquer un programme en tâche de fond
    11. Propriétaires et droits d'accès
    12. Processus
    13. Locale
  6. Administration du système
    1. Configuration du réseau
    2. Les utilisateurs et groupes
    3. Le processus d'initialisation
    4. Les systèmes de fichiers
    5. Le système virtuel /proc
    6. Les périphériques /dev
    7. L'ordonnanceur de travaux cron
    8. Le backup : tar et gzip
    9. ghost avec partimage
    10. sauvegarde de fichiers avec rsync
    11. Les fichiers journaux syslog
    12. Installation de nouveaux logiciels
    13. Le noyau Linux et les modules
    14. Autres commandes utiles
    15. Installation RAID1 logiciel + LVM + XFS
    16. Scripts de surveillance
    17. Réseaux sans fil
  7. Administration des services réseaux
    1. Le serveur de noms BIND
    2. Le serveur de configuration réseau DHCP
    3. Le serveur de shell distant SSH
    4. Le partage de fichiers Samba
    5. Le partage de fichiers NFS
    6. Le serveur d'impression CUPS
    7. Le serveur de fichiers FTP
    8. Le serveur Web Apache
    9. La base de données MySQL
    10. Le serveur de mails Postfix
    11. Les annuaires LDAP
    12. L'outil d'administration Webmin
    13. La supervision
  8. Sécurisation d'un serveur Linux
    1. Installation d'un service en mode chroot
    2. Protection avec iptables
  9. Médiagraphie
  10. Auteurs


Nagios[modifier | modifier le wikicode]

Nagios s'installe assez facilement pour surveiller, archiver et représenter les périodes où les machines sont en ligne, leurs services sont lancés et leurs ressources disponibles[1] :

Nagios service detail.png

Il peut ainsi prévenir automatiquement par email, chaque contact associé à une machine quand l'état d'un service change (ex : processeur saturé, disque dur plein à 90 %, page web inaccessible...).

Installation du serveur[modifier | modifier le wikicode]

Le paquet Ubuntu s'arrête à la version 3 :

apt-get install nagios3

Sinon, pour être sûr d'obtenir la dernière version, il est possible de récupérer le tarball en renseignant son nom sur le site officiel[2], puis de l'installer à partir de l'étape 2 en root :

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.0.8.tar.gz

useradd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios

tar xzf nagios-4.0.8.tar.gz
cd nagios-4.0.8
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode

/etc/init.d/nagios start

Enfin, pour ajouter un service à monitorer, il suffit de modifier les fichiers .cfg.


Interface graphique[modifier | modifier le wikicode]

Le portail web (ex : http://127.0.0.1/nagios/) a pour prérequis Apache. Il s'installe comme suit :

make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
/etc/init.d/apache2 reload

Par défaut il est protégé par le mot de passe du compte nagiosadmin.

Par ailleurs, la page d'accueil par défaut ne montrant pas les services monitorés, il peut être rentable d'utiliser http://127.0.0.1/nagios/?corewindow=/nagios/cgi-bin/status.cgi?host=all à la place.

Le menu Map permet un affichage sous forme de carte :

Serveur.PNG

Fichiers de configuration .cfg[modifier | modifier le wikicode]

Pour configurer ce que Nagios doit surveiller, on doit éditer les fichiers de configuration .cfg importés depuis /usr/local/nagios/etc/nagios.cfg (généralement tout ce qui est dans /usr/local/nagios/etc/objects/).

Que la surveillance soit opérationnelle, ces fichiers doivent comporter les quatre objets suivants[3] (par défaut le classement est d'un type d'objet par fichier mais un .cfg peut tous les contenir) :

define command {
        command_name
        command_line
}

define service {
        use                     
        host_name               
        service_description     
        check_command           
}

define host {
        use                     
        host_name               
        alias                   
        address                 
        check_command           
}

define contact {
        name 
}

L'objet commande pointe sur le fichier exécutable du système d'exploitation qui sera exécuté par Nagios (en Shell, Perl, Java, Python...). Ex :

define command {
  command_name    check_sftp
  command_line    java -jar $USER1$/check_sftp.jar -port=22 -t=10 -temp=/tmp/ -host=$ARG1$ -user=$ARG2$ -pwd=$ARG3$ -warning=$ARG4$ -critical=$ARG5$
}

Plusieurs objets services peuvent ensuite appeler une même commande avec différents arguments (ex : SFTP du serveur 1, du serveur 2...).

Nagios 3[modifier | modifier le wikicode]
cd /etc/nagios3/conf.d
vim localhost_nagios2.cfg	# (ajouter la machine)
vim hostgroups_nagios2.cfg	# (définir l'emplacement de la machine sur le site Nagios)
vim services_nagios2.cfg	# (préciser ce qu'il faut surveiller sur la machine, ex : HTTP)
/etc/init.d/nagios3 restart
Nagios 4[modifier | modifier le wikicode]
cd /usr/local/nagios/etc/objects
vim localhost.cfg
/etc/init.d/nagios restart
Attention !
link={{{link}}}

Avant de mettre à jour Nagios ou Linux, bien sauvegarder la configuration de /usr/local/nagios/etc/ (ou /etc/nagios3/) selon la version.

Plugins[modifier | modifier le wikicode]

Les plugins permettent de monitorer plus de services, ils sont téléchargeables depuis https://www.nagios.org/download/plugins :

tar xzf nagios-plugins-2.0.3.tar.gz
cd nagios-plugins-2.0.3
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

Addons[modifier | modifier le wikicode]

Les addons ajoutent des fonctionnalités supplémentaires, comme des représentations graphiques : https://www.nagios.org/download/addons/.

Surveillance SFTP[modifier | modifier le wikicode]
Test de formulaire HTML[modifier | modifier le wikicode]

Installation d'un client[modifier | modifier le wikicode]

Il suffit d'installer http://www.nsclient.org/ en administrateur sur la machine à surveiller. Parfois le pare-feu doit être ouvert sur le port 5666 ou 12489.

Sur Ubuntu : apt-get install xinetd.


Problèmes connus[modifier | modifier le wikicode]

  • Les erreurs du serveur peuvent être obtenues avec tail /usr/local/nagios/var/nagios.log.
  • Celles du client Windows dans C:\Program Files\NSClient++\nsclient.log (si configuré dans le nsclient.ini).

connect to address 127.0.0.1 and port 12489: Connexion refusée[modifier | modifier le wikicode]

Si le pare-feu est déjà ouvert à Nagios ou au port 12489, et si C:\Program Files\NSClient++\nsc.ini autorise déjà l'IP du serveur Nagios, et que le processus nscp.exe est bien lancé, c'est peut être qu'avec Nagios 4 il faut utiliser C:\Program Files\NSClient++\nsclient.ini.

Normalement ensuite un telnet 127.0.0.1 12489 depuis le client fonctionne.

Erreurs sur /usr/local/nagios/var/spool/checkresults[modifier | modifier le wikicode]

Ex :

Error in configuration file '/usr/local/nagios/etc/nagios.cfg' - Line 452 (Check result path '/usr/local/nagios/var/spool/checkresults' is not a valid directory)
Error: Unable to write to check_result_path ('/usr/local/nagios/var/spool/checkresults') - Permission denied

En effet, /usr/local/nagios/var/spool/checkresults est nécessaire au lancement du processus Nagios 4, et peut être créé manuellement à cet effet :

mkdir /usr/local/nagios/var/spool/
mkdir /usr/local/nagios/var/spool/checkresults/
chown nagios /usr/local/nagios/var/spool/checkresults
chgrp nagios /usr/local/nagios/var/spool/checkresults

Error: Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update![modifier | modifier le wikicode]

Si depuis le portail web on ne peut pas planifier de maintenance à cause de cette erreur, alors que les permissions du fichier semblaient correctes, il faut modifier le fichier suivant[4] :

vim /etc/init.d/nagios

Rechercher la ligne démarrant par "chown $NagiosUser:$NagiosGroup $NagiosRunFile", puis ajouter en dessous :

sleep 10
chmod 666 /usr/local/nagios/var/rw/nagios.cmd
/etc/init.d/nagios restart

Internal Server Error[modifier | modifier le wikicode]

Si la page d'accueil fonctionne mais pas les vues monitoring, c'est certainement que le CGI n'arrive pas à s'exécuter.

Parfois l'erreur est notée plus clairement : You don't have permission to access /cgi-bin/nagios3/status.cgi on this server.

It appears as though you do not have permission to view information for any of the services you requested[modifier | modifier le wikicode]

Dans l'interface web, passer "use_authentication=1" à 0 dans cgi.cfg.

Kernel panix[modifier | modifier le wikicode]

Peut se produire si la RAM est insuffisante (ex : < 512 Mo sur Ubuntu 16.04).

Network Unreachable[modifier | modifier le wikicode]

Si le serveur Nagios ping une machine qui fonctionne, mais qu'elle y apparait comme injoignable, c'est à cause de la différence entre le ping IPv4 et le ping6. Il faut juste modifier le check-host-alive de command.cfg en ajoutant "-4" à la fin :

define command{
        command_name    check-host-alive
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -4
}

NSClient - ERROR: Could not get data for 5 perhaps we don't collect data this far back?[modifier | modifier le wikicode]

Un reboot du service ne change rien, il faut redémarrer l'OS.

NSClient - ERROR: Could not get value[modifier | modifier le wikicode]

Idem que ci-dessus.

NSClient - ERROR: Failed to get PDH valuee[modifier | modifier le wikicode]

Idem que ci-dessus.

NSClient - ERROR: Invalid password[modifier | modifier le wikicode]

Sur le client Windows, modifier dans C:\Program Files\NSClient++\NSC.ini, la ligne password=, afin qu'il corresponde à celui définit sur le serveur, dans /usr/local/nagios/etc/objects/resource.cfg à la ligne $USER4$=. Ou vice-versa.

Sinon réinstaller le client, sa version n'est peut-être plus à jour.

Si la commande suivante fonctionne depuis le serveur, c'est qu'il faut compléter commands.cfg :

/usr/local/nagios/libexec/check_nt -H Mon_IP_Cliente -v USEDDISKSPACE -p 12489 -l c -s Mon_Mot_De_Passe

Status UNKNOWN, Status Information Utilisation:[modifier | modifier le wikicode]

La connexion au client Nagios fonctionne, mais le statut est flou : il faut réinstaller et reconfigurer Nagios client (problème de version avec le serveur incompatible).

Warning: Host 'xxx' has no default contacts or contactgroups defined![modifier | modifier le wikicode]

Survient dans les logs au lancement de Nagios pour avertir qu'en cas d'alerte sur la machine mentionnée, personne ne sera prévenu.

Pour y remédier, vérifier la ligne contact_groups dans template.cfg :

define host{
 name                    xxx
 contact_groups          admins
 ...
}

Références[modifier | modifier le wikicode]

  1. https://library.nagios.com/library/products/nagioscore/manuals/
  2. https://www.nagios.org/download/core/
  3. http://doc.ubuntu-fr.org/nagios
  4. http://alexnogard.com/error-could-not-open-command-file-usrlocalnagiosvarrwnagios-cmd-for-update/

Voir aussi[modifier | modifier le wikicode]