Mise en place d'une solution de monitoring éclaté avec Nagios, CheckMK et Thruk

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search
Nagios

Software version Nagios 3
Chekc Mk 1.1.12p7
Thruk 1.30
Operating System Debian 6
Website
Last Update 28/06/2012
Others

1 Introduction

Avant d'attaquer cette documentation, il est préférable d'être à l'aise avec certains outils. En voici la liste avec les documentations associées :

Cette documentation a pour but, d'installer un serveur Thruk capable de visualiser les informations de différents serveurs Nagios distants :

Nct 1.jpg

Ce schéma sera notre référence tout au long du tutoriel.

Nous aurons donc besoin de 4 serveurs avec les services suivants d'installés:

  • SRV-THRUK: Apache & Thruk qui sera notre serveur "d'écran".
  • SRV-NAGIOS1: Nagios & Check Mk qui sera un serveur Nagios pour monitorer une partie x de notre parc
  • SRV-NAGIOS2: Nagios & Check Mk qui sera un serveur Nagios pour monitorer une partie y de notre parc
  • SRV-NAGIOS3: Nagios & Check Mk qui sera un serveur Nagios pour monitorer une partie z de notre parc

Au final, nous voulons obtenir des écrans décentralisés sans aucune dépendance entre eux :

Nct 2.jpg

2 Thruk : Serveur ecran

2.1 Installation

Débutons par l'installation d'Apache2

Command aptitude
aptitude install apache2

Maintenant Apache2 d'installé passons au téléchargement de Thruk :

Command
dpkg -i thruk_version.deb
apt-get -f install

Vous pouvez dès a présent accéder à votre interface Thruk, en tapant ceci dans votre navigateur : http://localhost/thruk

Le login et mot de passe sont : thrukadmin

2.2 Configuration

La configuration Thruk est principalement initialisée, par deux fichiers :

  • thruk.conf : C'est la configuration globale de thruk à ne surtout pas modifier ?!
  • thruk_local.conf : C'est la configuration personnalisable, qui va être chargée par thruk.conf

Nous allons donc éditer notre /etc/thruk/thruk_local.conf comme ci-dessous:

Configuration File /etc/thruk/thruk_local.conf
<Component Thruk::Backend>
<peer>                                                 #Premier Nagios distant
      name   = srv-nagios1                             #Nom de la connexion, ce nom sera affiché sur Thruk
      type   = livestatus                              #Type de connexion
      <options>
          peer   = 192.168.0.37:6557                    #Adresse ip du serveur Nagios et port utilisé par le livestatus (ref. 2-Configuration)
     </options>
  </peer>
 
<peer>                                                 #Second Nagios distants
      name   = srv-nagios2
      type   = livestatus
      <options>
          peer   = 192.168.0.27:6557
     </options>
  </peer>
 
<peer>                                                  #Troisieme Nagios distants
      name   = srv-nagios3
      type   = livestatus
      <options>
          peer   = 192.168.0.162:6557
     </options>
  </peer>
 
</Component>

Pour terminer il suffit juste de lancer le service Thruk :

Command service
service thruk start

La configuration de notre SRV-THRUK ne nécessite pas d'autres modifications dans notre cas, nous allons pouvoir passer à la partie installation des serveurs Nagios et CheckMK.

3 Nagios & CheckMk : Serveurs de monitoring

3.1 Installation

Premièrement occupons nous de Nagios3 :

Command aptitude
aptitude install nagios3

Puis du fameux plugin pour Nagios, Check Mk :

Command
aptitude install xinetd gcc g++ libc6-dev make libapache2-mod-python         #Dépendances nécessaires
wget http://mathias-kettner.de/download/check_mk-1.2.0p1.tar.gz              #Téléchargement du check_mk
tar -zvxf check_mk-version.tar
cd check_mk-version/
./setup.sh

Utilisez le setup avec les options par défaut. Au besoin, reportez vous à la documentation sur CheckMk pour plus d'informations. Puis installez l'agent :

Command
wget http://mathias-kettner.de/download/check-mk-agent_1.2.0p1-2_all.deb
dpkg -i check-mk-agent_version.deb

3.2 Configuration

Ce fichier livestatus est primordial dans notre réalisation, car c'est dans celui-ci que l'on renseigne le port utilisé par livestatus, l'adresse ip de notre serveur Thruk distant et le chemin du socket utilisé.

Prenez donc comme exemple le fichier /etc/xinetd.d/livestatus ci-dessous. Ce fichier livestatus est à créer, attention ne pas insérer les commentaires dans le fichier de configuration :

Configuration File /etc/xinetd.d/livestatus
service livestatus
{
 type = UNLISTED
 port = 6557                                     #Port Utilisé par le service livestatus => thruk_local.conf
 socket_type = stream
 protocol = tcp
 wait = no
 cps = 100 3
 instances = 500
 per_source = 250
 flags = NODELAY
 user = nagios
 server = /usr/bin/unixcat
 server_args = /var/lib/nagios3/rw/live          #Chemin du socket utilisé
 only_from = 192.168.0.190                        #Adresse ip de notre SRV-THRUK
 disable = no
}

Pour finir il faut redémarrer notre service :

Command
/etc/init.d/xinetd restart

Nous allons créer le répertoire contenant le socket (live), et lui attribuer des droits :

Command
mkdir -p /var/lib/nagios3/rw/
touch /var/lib/nagios3/rw/live
chown -Rf nagios. /var/lib/nagios3

Il faut également éditer la configuration de nagios pour saisir le chemin de notre socket

Le fichier à éditer est /etc/nagios3/nagios.cfg :

Configuration File /etc/nagios3/nagios.cfg
# Load Livestatus
Modulebroker_module=/usr/lib/check_mk/livestatus.o /var/lib/nagios3/rw/live  #Chemin correspondant à notre socket
event_broker_options=-1

Redémarrez Nagios3

Command
/etc/init.d/nagios3 restart

Si vous voulez tester votre socket et recupérer des informations de celui-ci :

Command echo
echo 'GET services' | unixcat /var/lib/nagios3/rw/live
echo 'GET hosts' | unixcat /var/lib/nagios3/rw/live