Mar
21
2014

Installation et configuration de Thruk sur FAN 2.4


Voici une procédure permettant d’installer Thruk sur FAN 2.2 et plus.

Thruk est une interface Web pour Nagios et autres fork comme Naemon, Icinga… Ce qu’il a de bien par rapport à Centreon, c’est son plugin Business Process qui permet d’avoir une vue macroscopique de son infrastructure et de pouvoir générer des rapports sur le taux de disponibilité de vos applications et services.

 

Attention : L’installation de Thruk ne remplace pas Centreon. Vous pourrez utiliser les deux interfaces WEB.

Vous avez une demo dispo ici : http://www.thruk.org/demo.html

Regardez cette partie : (Business Process et Reporting)

image

 

Dans un premier temps il faut préparer l’envoi des status de nagios vers thruk. Pour cela, nous allons installer livestatus.

 

Intaller mk_livestatus :

 

Aller un petit yum :

yum install mk-livestatus

Une fois installé, il faut renseigner le nouveau broker dans la conf de Nagios :

Se logger dans Centreon et aller dans Configuration > Monitoring Engine > main.cfg, et editer le fichier Nagios CFG actif :

Cliquer sur l’onglet Data > “Add a new broker module”

image

 

 

Pour les versions x86_64 mettre :

· /usr/lib64/mk-livestatus/livestatus.o /var/log/nagios/rw/live

pour i386 :

· /usr/lib/mk-livestatus/livestatus.o /var/log/nagios/rw/live

Sauvegarder la configuration, l’exporter et redémarrer Nagios.

 

Installer thruk

Télécharger la dernière version ici : http://www.thruk.org/download.html

Activer le repo epel

yum localinstall –enablerepo=epel –nogpgcheck thruk-1.26-1.rhel5.x86_64.rpm

La dépendance mod_fcgid devrait être également installée.

 

Configuration

Editez le fichier  /etc/thruk/thruk_local.conf et vérifier la configuration:

use_frames = 1

statusmap_default_type=circle

statusmap_default_groupby = parent

<Component Thruk::Backend>

<peer>

name = Core

type = livestatus

<options>

peer = 127.0.0.1:6557

resource_file = /etc/nagios/resource.cfg

</options>

<configtool>

core_conf = /etc/nagios/nagios.cfg

obj_check_cmd = /usr/bin/nagios -v /etc/nagios/nagios.cfg

obj_reload_cmd = /etc/init.d/nagios reload

</configtool>

</peer>

</Component>

#####################################

# Business Process

<Component Thruk::Plugin::BP>

# Results will be send back by using the spool folder.

# This folder should point to the ‘check_result_path’ of your core.

spool_dir = /dev/shm

# Save objects to this file. Content will be overwritten.

objects_save_file = /etc/nagios/thruk_bp_generated.cfg

# User maintained file containing templates used for business process services.

objects_templates_file = /etc/nagios/thruk_bp_templates.cfg

# Command to apply changes to the objects_save_file

objects_reload_cmd = /etc/init.d/nagios reload

# hooks which will be executed before or after saving.

#pre_save_cmd =

#post_save_cmd =

# Refresh interval defines how often business processes

# will be recalculated and refreshed. (in minutes)

refresh_interval = 1

</Component>

 

Editez le fichier /etc/thruk/cgi.cfg et Remplacer tous les thrukadmin par nagiosadmin 

default_user_name=nagiosadmin

authorized_for_system_information=nagiosadmin

authorized_for_configuration_information=nagiosadmin

authorized_for_system_commands=nagiosadmin

authorized_for_all_services=nagiosadmin

authorized_for_all_hosts=nagiosadmin

authorized_for_all_service_commands=nagiosadmin

authorized_for_all_host_commands=nagiosadmin

 

Editez le fichier  /etc/httpd/conf.d/thruk.conf et remplacer cette ligne : (Pour que vous puissiez vous authentifier avec l’utilisateur nagiosadmin sur thruk)

AuthUserFile /etc/thruk/htpasswd

par

AuthUserFile /etc/nagios/htpasswd.users

 

Configurer la communication entre nagios et thruk :

Installer xinetd

yum install xined

Créer le fichier /etc/xinetd.d/livestatus et mettre à l’intérieur :

service livestatus

{

type = UNLISTED

port = 6557

socket_type = stream

protocol = tcp

wait = no

# limit to 100 connections per second. Disable 3 secs if above.

cps = 100 3

# Disable TCP delay, makes connection more responsive

flags = NODELAY

user = root

server = /usr/bin/unixcat

server_args = /var/log/nagios/rw/live

# configure the IP address(es) of your Nagios server here:

# only_from = localhost 192.168.0.254

disable = no

}

Démarrer le service xinetd :

service xinetd start

Redémarrer Nagios et apache :

/etc/init.d/nagios stop

/etc/init.d/httpd restart

/etc/init.d/nagios start

 

Configurer le plugin Business process :

Creer le fichier /etc/nagios/thruk_bp_templates.cfg et y placer :

define host {

name thruk-bp-template

address none

use generic-host

active_checks_enabled 0

check_command check_thruk_bp

register 0

}

define service {

name thruk-bp-node-template

use generic-service

active_checks_enabled 0

check_command check_thruk_bp

register 0

}

define command {

command_name check_thruk_bp

command_line thruk -a bp $_HOSTTHRUK_BP_ID$

}

Attention au template utilisé (generic-host et generic-service). Il faut absolument qu’il soit complet. Ceci permet de créer des services liés aux Business process. Si le template n’est pas bien configuré, nagios ne voudra plus démarrer après avoir créé et sauvegardé un BP.

Pour que nagios prenne en compte les hosts et services créé par thruk, il faut ajouté les deux fichiers cfg au fichier de configuration de nagios. Pour cela, il faut ajouter les lignes suivantes au fichier /etc/nagios/nagios.cfg :

cfg_file=/etc/nagios/thruk_bp_templates.cfg
cfg_file=/etc/nagios/thruk_bp_generated.cfg

Cela ne suffira pas si vous utilisez centreon ou autre pour la configuration de nagios car pour cette exemple, centreon écrase à chaque nouvelle conf le fichier nagios.cfg.

Pour remédier à ce problème, j’ai créé un petit script à ajouter dans le fichier init de nagios (/etc/init.d/nagios)

grep ‘thruk’ $NagiosCfgFile > /dev/null
retval=$?
if [ "$retval" != 0 ]
then
     printf "cfg_file=/etc/nagios/thruk_bp_templates.cfg" >> $NagiosCfgFile
     printf "\ncfg_file=/etc/nagios/thruk_bp_generated.cfg" >> $NagiosCfgFile
fi

Redémarrer Nagios et apache :

/etc/init.d/nagios stop

/etc/init.d/httpd restart

/etc/init.d/nagios start

Connectez vous sur http://@_IP_FAN_SERVER/thruk/ et utilisez votre compte nagiosadmin:

clip_image003

Note : Pour info, une fois créé un business process se situe dans : /etc/thruk/bp/ et les rapports dans : /var/lib/thruk/reports/

 

Liens :

http://www.thruk.org/

http://www.fullyautomatednagios.org/

http://www.fullyautomatednagios.org/wordpress/documentation/how-to-install-nagios-business-process-addon/

 

Bon courage,

Articles similaires

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

1 Comment + Add Comment

  • Bonjour,

    Merci pour ce tuto.
    J’ai actuellement une configuration de Thruk avec Shinken qui est fonctionnel.

    J’ai configuré Centreon avec Thruk sur 2 serveur distict. mais ça ne marche pas.

    Pour la conf ‘/etc/thruk/thruk_local.conf’ est-il nécessaire de renseigner le fichier ‘resource_file = /etc/nagios/resource.cfg’ ?
    Comment faudrait-il le faire étant donné que la conf est sur un server distant ?

    Merci pour votre reponse

Laissez un commentaire