1. Gestion des machines virtuelles
====> Dom0 <====Pour éviter d'engorger le serveur, nous allons désactiver les machines virtuelles qui ne sont plus utiles. Ces machines ne seront pas supprimées et pourront être relancée en cas de besoin
- Lister les machines virtuelles actuellement sur le serveur
# xl list
- Vérifier que les machines suivantes sont dans la liste :
- Domaine0
- vmDnsDhcp
- Pour les autres machines présente dans la liste (vmPxe, vmCloud) :
- Fermer la machine virtuelle :
# xl shutdown NOM_MACHINE
- Désactiver son lancement automatique :
# rm /etc/xen/auto/NOM_MACHINE.pvlinux
- Fermer la machine virtuelle :
Il n'y a donc plus que trois machines virtuelles activées : Domaine0, vmDnsDhcp et mail. Nous allons créer une machine virtuelle pour installer le serveur nagios
- A l'aide de la commande xen-create-image, créer une nouvelle machine virtuelle
- hostname: vmNagios
- ip: 10.0.x.105
- Créer un lien symbolique pour que vmNagios se lance avec le serveur :
# ln -s /etc/xen/vmCloud.pvlinux /etc/xen/auto/vmCloud.pvlinux
- Lancer la machine :
# xl create /etc/xen/vmCloud.pvlinux
2. Préparation de l'environnement
====> vmNagios <====Avant de procéder à l'installation de Nagios il est nécessaire de préparer le terrain et d'installer les paquets suivant :
- Installation du serveur web (apache) :
# apt-get installe apache2
- Vérifier qu'une page s'affiche sur l'url :
http://10.0.x.105
- Installation du module php :
# apt-get install libapache2-mod-php5
- Redémarrage de apache :
# systemctl restart apache2
- Installation des utilitaires pour faire un "build" :
# apt-get install build-essential
- Installation de la libraire de développement GD :
# apt-get install libgd2-xpm-dev
- Installation de unzip :
# apt-get install unzip
Il est maintenant nécessaire de créer un utilisateur et des groupes pour le fonctionnement de Nagios :
- Créeation d'un utilisateur "nagios" :
# useradd -m -s /bin/bash nagios
- Configuration du password ("nagios") :
# passwd nagios
- Création d'un nouveau groupe nagios command :
# groupadd nagcmd
- Ajout des utilisateurs nagios et apache au groupe :
# usermod -a -G nagcmd www-data # usermod -a -G nagcmd nagios
3. Installation de Nagios
====> vmNagios <====Nagios est un logiciel open-source. Pour l'installation nous allons donc récupérer les sources du programme et les compiler.
- Créer un répertoire pour le téléchargement :
# mkdir ~/downloads # cd ~/downloads
- Télécharger les sources de Nagios :
# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz --no-check-certificate
- Décompresser le fichier téléchargé :
# tar xzf nagios-4.1.1.tar.gz
- Se rendre dans le répertoire décompressé :
# cd nagios-4.1.1
- Lancer le script de configuration :
# ./configure --with-command-group=nagcmd
- Réaliser la compilation de Nagios :
# make all
- Installer les binaires, scripts, exemple de configuration, commandes :
# make install # make install-init # make install-config # make install-commandmode
4. Configuration de Nagios
====> vmNagios <====- Ouvrir le fichier de configuration :
# nano /usr/local/nagios/etc/objects/contacts.cfg
- Dans "define contact" modifier l'email "nagios@localhost" :
email votre_email ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
- Configurer l'interface web :
# mkdir -p /etc/httpd/conf.d/nagios.conf # make install-webconf
- Créer l'utilisateur admin pour l'interface web (password : "postfo2016!" ) :
# htpasswd -c /usr/local/nagios/etc/htpasswd.users postfo2016
- Ajouter le fichier de configuration pour le serveur web :
# cp ~/download/nagios-4.1.1/sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf # ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/nagios.conf
- Activer la prise en charge des scripts cgi :
# a2enmod cgi # a2enmod cgid
- Redémarer le serveur web :
# systemctl restart apache2
5. Compilation et installation des plugins
====> vmNagios <====- Se rendre dans le repertoire download :
# cd ~/downloads
- Télécharger les plugins :
# wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
- Décompresser l'archive :
# tar xzf nagios-plugins-2.1.1.tar.gz
- Se rendre dans le répertoire :
# cd nagios-plugins-2.1.1
- Lancer le script de configuration :
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
- Réaliser la compilation :
# make
- Installer :
# make install
6. Démarrage de Nagios
====> vmNagios <====- Configurer Nagios pour démarrer automatiquement :
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
- Vérifier que les fichiers de configuration de Nagios sont correctes :
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- Lancer Nagios :
# /etc/init.d/nagios start
Nagios devrait fonctionner a ce stade ("# /etc/init.d/nagios start"). Il semble pourtant il y avoir un problème entre la version de Debian et la version de Nagios emêchant son lancement ("nagios.serviceFailed to start nagios.service: Unit nagios.service failed to load: No such file or directory"). Il est alors nécessaire de procéder à quelques opérations supplémentaires :
- Créer un backup du fichier de lancement de nagios :
# cp /etc/init.d/nagios /root/init.d.nagios.backup
- Remplacer le fichier nagios par le fichier skeleton :
# cp /etc/init.d/skeleton /etc/init.d/nagios
- Editer le fichier :
# nano /etc/init.d/nagios
- Supprimer les lignes :
DESC="Description of the service" DAEMON=/usr/sbin/daemonexecutablename
- Ajouter en fin de fichier :
DESC="Nagios" NAME=nagios DAEMON=/usr/local/nagios/bin/$NAME DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg" PIDFILE=/usr/local/nagios/var/$NAME.lock
- Modifier les droits sur le fichier :
# chmod +x /etc/init.d/nagios
- Lancer Nagios :
# /etc/init.d/nagios start
- Se rendre sur l'interface web :
http://10.0.x.105/nagios
- Login: postfo2016
- Password : postfo2016!
7. Monitorer le routeur
====> vmNagios <====- Editer le fichier de configuration de Nagio :
# nano /usr/local/nagios/etc/nagios.cfg
- Supprimer le caractère "#" au début de la ligne :
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg
- Editer le fichier de configuration des switch :
# nano /usr/local/nagios/etc/objects/switch.cfg
- Dans la section "define host", modifier l'adresse :
address 10.0.x.1 ; IP address of the switch
- Modifier le champ "alias" pour refleter le modele de votre routeur
- Vous pouvez modifier le champ "hostname" pour refleter le modele de votre routeur. Dans ce cas, il est nécessaire de modifier les "services definitions" pour utiliser ce nouveau hostname.
- Vérifier les fichiers de configuration :
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- Si il n'y a pas d'erreur dans les fichiers de configuration, relancer Nagios :
# /etc/init.d/nagios restart
- Vérifier dans l'interface web que le routeur apparait et qu'il répond au ping
8. Installer le Daemon NRPE
====> Client <====Pour pouvoir exécuter les différents plugins de Nagios sur les machines clientes, il est nécessaire d'installer le Daemon NRPE et les plugins Nagios.
Le daemon NRPE permettra au serveur Nagios d'exécuter les plugins installé sur la machine cliente
- Installer les utilitaires nécessaire à l'installation :
#apt-get install build-essential libssl-dev
- Créer un utilisateur "nagios" avec le mot de passe "postfo2016!" :
# useradd nagios # passwd nagios
- Se rendre dans le répretoire downloads :
# mkdir ~/downloads # cd ~/downloads
- Télécharger le plugin nrpe :
# wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
- Décompresser :
# tar xvf nagios-plugins-2.1.1.tar.gz
- Ouvrir le repertoire décompressé :
# cd nagios-plugins-2.1.1
- Configurer l'installation :
# ./configure
- Lancer la compilation :
# make
- Installer les différents composants :
# make install
- Modifier les permissions sur le répertoire de plugins :
# chown nagios.nagios /usr/local/nagios # chown -R nagios.nagios /usr/local/nagios/libexec
- Installer xinetd :
# apt-get install xinetd
- Télécharger le daemon nrpe :
# cd ~/downloads # wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
- Décompresser :
# tar xvf nrpe-2.15.tar.gz
- Ouvrir :
# cd nrpe-2.15
- Configurer :
# ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu/
- Compiler:
# make all
- Installer :
# make install-plugin # make install-daemon # make install-daemon-config # make install-xinetd
- Ouvrir le fichier nrpe de xinetd :
# nano /etc/xinetd.d/nrpe
- Ajouter l'url du serveur Nagios :
only_from = 127.0.0.1 localhost 10.0.x.105
- Ouvrir le fichier de configuration des services :
# nano /etc/services
- Ajouter le daemon en fin de fichier :
nrpe 5666/tcp NRPE
- Relancer xinetd :
# systemctl restart xinetd
- Vérifier localement si le daemon est activé :
# netstat -at | grep nrpe tcp 0 0 *:nrpe *:* LISTEN
- Vérifier le bon fonctionnement du daemon :
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 NRPE v2.15
- Appeler un plugin Nagios :
# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs
9. Configuration du serveur Nagios pour utiliser NRPE
====> vmNagios <====- Télécharger et décompresser nrpe :
# cd /root/ # wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz # tar xzf nrpe-2.15.tar.gz # cd nrpe-2.15
Installer libssl-dev :
# apt-get install libssl-dev
# ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu # make # make install-daemon
# /usr/local/nagios/libexec/check_nrpe -H 10.0.x.ip_client NRPE v2.15
- Installer le plugin nrpe :
# apt-get install nagios-nrpe-plugin
- Vérifier la présence de nrpe :
# cd /usr/lib/nagios/plugins/ # ls
Le fichier check_nrpe doit être présent - Créer un lien symbolique pour ajouter le plugin a NOTRE installation de Nagios :
# ln -s /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec/check_nrpe
- Retester :
# /usr/local/nagios/libexec/check_nrpe -H 10.0.x.ip_client
10. Ajouter les clients sur le serveur Nagios
====> vmNagios <=====- Créer les deux fichiers :
# cd /usr/local/nagios/etc/ # touch hosts.cfg # touch services.cfg
- Ajouter ces fichiers a la configuration de Nagios :
- Editer le fichier de configuration:
# nano /usr/local/nagios/etc/nagios.cfg
- Ajouter les deux lignes comme indiqué (après #You can specify...):
# You can specify individual object config files as shown below: cfg_file=/usr/local/nagios/etc/hosts.cfg cfg_file=/usr/local/nagios/etc/services.cfg
- Editer le fichier de configuration:
- Ouvrir le fichier hosts.cfg :
# nano /usr/local/nagios/etc/hosts.cfg
- Ecrire dans le fichier (remplacer host_name, alias et address) :
## Default Linux Host Template ## define host{ name linux-box ; Name of this template use generic-host ; Inherit default values check_period 24x7 check_interval 5 retry_interval 1 max_check_attempts 10 check_command check-host-alive notification_period 24x7 notification_interval 30 notification_options d,r contact_groups admins register 0 ; DONT REGISTER THIS - ITS A TEMPLATE } ## Default define host{ use linux-box ; Inherit default values from a template host_name tecmint ; The name we're giving to this server alias Machine de ???? ; A longer name for the server address 10.0.x.IP_CLIENT ; IP address of Remote Linux host }
- Editer le fichier services.cfg :
# nano /usr/local/nagios/etc/services.cfg
- Ajouter le contenu suivant (remplacer "tecmint" par le host_name indiqué dans le fichier hosts.cfg) :
define service{ use generic-service host_name tecmint service_description CPU Load check_command check_nrpe!check_load } define service{ use generic-service host_name tecmint service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service host_name tecmint service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service host_name tecmint service_description SSH Monitoring check_command check_nrpe!check_ssh } define service{ use generic-service host_name tecmint service_description FTP Monitoring check_command check_nrpe!check_ftp }
- Editer le fichier de command de NRPE :
# nano /usr/local/nagios/etc/objects/commands.cfg
- Si elle n'est pas présente, ajouter la commande suivante en fin de fichier :
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
- Vérifier qu'il n'y a pas d'erreurs dans les fichiers de configuration :
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- Si il n'y a pas d'erreurs, redémarrer nagios :
# systemctl restart nagios
- Se connecter à l'interface web pour voir les clients
Monitorer Windows
===>VirtualBox Windows<===- Depuis Windows, télécharger nscplus : http://sourceforge.net/projects/nscplus/
- Lancer l'installation :
- Allowed hosts : 10.0.x.105
- NSClient password : postfo2016!
- Enable common check_plugin
- Enable NRPE server
Configurer Nagios pour gérer windows
====> vmNagios <=====- Editer le fichier de configuration nagios windows :
# nano /usr/local/nagios/etc/objects/windows.cfg
- Mettre à jour les champs "host_name","alias" et "address" pour l'ip de la machine virtuelle windows (10.0.x.x)
- Si vous avez modifier le "host_name", mettre à jour la définition des services pour utiliser le même host_name
- Editer le fichier de configuration de Nagios :
# nano /usr/local/nagios/etc/nagios.cfg
- Décommenter la ligne (retirer le # en début de ligne ) pour obtenir le résultat :
# Definitions for monitoring a Windows machine cfg_file=/usr/local/nagios/etc/objects/windows.cfg
- Vérifier la configuration de nagios :
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
- Si il n'y a pas d'erreur, relancer Nagios :
systemctl restart nagios
- Se connecter à l'interface web et vérifier la présence de l'host
Monitoring du serveur
Relance la vmCloud. En t'inspirant du travail effectué pour monitorer les clients linux, réalise la configuration nécessaire pour monitorer vmCloud.