Installation du broker MK Livestatus et de l'interface Web Thruk sur Rapsberry
![Stacks Image 1426](files/stacks-image-6723a0e-152x122.png)
- Installation de Centreon-Clib
- Installation de Centreon-Connector
- Installation de Centreon-engine
- Installation des plugins
- Installation du broker MK livestatus et de l'interface Web Thruk
- Installation de l'interface Web et finalisation de la configuration de Thruk
- Installation de PNP4nagios et intégration avec Thruk
Installation du broker MK Livestatus
cd /home/pi wget http://mathias-kettner.de/download/mk-livestatus-1.2.2p3.tar.gz tar -xvzf mk-livestatus-1.2.2p3.tar.gz cd mk-livestatus-1.2.2p3 ./configure make
Une fois la compilation terminée, vous devrez placer le binaire du broker dans le dossier du moteur de supervision.
sudo cp src/livestatus.o /usr/local/centreon-engine/bin
Configuration du moteur Centreon-Engine
Il faut modifier les fichiers de configuration du moteur. Rajoutez ces deux lignes dans le fichier /usr/local/centreon-engine/etc/centengine.cfg. N'oubliez pas d'utiliser sudo pour modifier les fichiers.
sudo vi /usr/local/centreon-engine/etc/centengine.cfg
broker_module=/usr/local/centreon-engine/lib/centreon-engine/externalcmd.so broker_module=/usr/local/centreon-engine/bin/livestatus.o /var/lib/centreon-engine/rw/live
Modifiez le chemin des plugins pour centreon-engine dans le fichier /usr/local/centreon-engine/etc/resource.cfg
sudo vi /usr/local/centreon-engine/etc/resource.cfg
$USER1$=/usr/local/plugins/libexec
Modifiez le chemin du paramètre lock_file dans le fichier de démarrage /etc/init.d/centengine
sudo vi /etc/init.d/centengine
lock_file=/var/lock/centengine.lock
Démarrez Centren-Engine
sudo service centengine start
Vérifier le bon fonctionnement
sudo /usr/local/centreon-engine/bin/centenginestats | grep Active
Vous devriez avoir un résultat comme ci-dessous
Services Actively Checked: 8 Active Service Latency: 0.009 / 0.206 / 0.111 sec Active Service Execution Time: 0.096 / 4.026 / 0.679 sec Active Service State Change: 0.000 / 0.000 / 0.000 % Active Services Last 1/5/15/60 min: 4 / 8 / 8 / 8 Hosts Actively Checked: 1 Active Host Latency: 0.193 / 0.193 / 0.193 sec Active Host Execution Time: 4.224 / 4.224 / 4.224 sec Active Host State Change: 0.000 / 0.000 / 0.000 % Active Hosts Last 1/5/15/60 min: 0 / 1 / 1 / 1 Active Host Checks Last 1/5/15 min: 1 / 3 / 3 Active Service Checks Last 1/5/15 min: 4 / 9 / 9
Installation de Thruk
Pré requis
Tout d'abord, installons les paquets nécessaires au fonctionnement de Thruk
Normalement git est déjà installé sinon installez le package git pour pouvoir récupérer les librairies perl nécessaires au fonctionnement de Thruk.
sudo apt-get install yui-compressor libgd2-xpm-dev libgd-gd2-perl libcairo-perl liblocal-lib-perl libmodule-install-perl libtest-base-perl libconfig-yaml-perl
Normalement git est déjà installé sinon installez le package git pour pouvoir récupérer les librairies perl nécessaires au fonctionnement de Thruk.
sudo apt-get install git-core
Installation de Thruk Library
Récupérez les paquets nécessaires au fonctionnement de Thruk du dépôt GIT de Sven Nierlein.
cd /tmp git clone git://github.com/sni/thruk_libs.git
Attention, le programme de compilation n'est pas adapté au Raspberry. Du fait de sa lenteur en compilation, les valeurs de Timeout doit être augmentées, sinon vous aurez droit à ce type de message d'erreur.
![Stacks Image 6613](files/stacks-image-3beaa32-800x418.png)
Message d'erreur Timeout
Modifiez le fichier suivant :
cd /tmp/thruk_libs/lib sudo vi BuildHelper.pm
Modifier la valeur alarm à 1800
Il y a
alarm(120); # single module should not take longer than 1 minute if( -f "Build.PL" ) { `$PERL Build.PL >> $LOG 2>&1 && ./Build >> $LOG 2>&1 && ./Build install >> $LOG 2>&1`;Il faut
alarm(1800); # single module should not take longer than 1 minute if( -f "Build.PL" ) { `$PERL Build.PL >> $LOG 2>&1 && ./Build >> $LOG 2>&1 && ./Build install >> $LOG 2>&1`;
Modifier la valeur $duration à 1800
Il y a
if($duration > 60) { chomp(my $pwd = `pwd`); print "installation took too long, see $pwd/$dir/$LOG for details\n";Il faut
if($duration > 1800) { chomp(my $pwd = `pwd`); print "installation took too long, see $pwd/$dir/$LOG for details\n";
Vous pouvez compiler la librairie pour thruk. Prenez votre deuxième café :-) et prenez votre mal en patience, il vous faudra plusieurs heures de compilation. Cela me rappelle le temps ou je réalisais des images raytracing avec un 486 !
cd /tmp/thruk_libs make
![Stacks Image 6659](files/stacks-image-3a23dd6.png)
La préparation des librairies est terminée après quelques heures de compilation...
Installation de Thruk
Créez un utilisateur thruk
sudo groupadd -g 6002 thruk sudo useradd -u 6002 -g thruk -m -r -d /home/thruk -c "thruk Admin" thruk -s /bin/bash
![Stacks Image 6692](files/stacks-image-2782cd4-40x38.png)
Pour vous simplifier les manipulations de configuration, vous pouvez octroyer les droits d'administration à l'utilisateur thruk. Pour cela, vous devez l"ajouter au groupe sudo de votre Raspberry et lui affectez un mot de passe.
sudo usermod -aG sudo thruk
sudo passwd thruk
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès
Lancez une session en utilisateur thruk pour récupérer le binaire thruk.
sudo su - thruk thruk@raspberrypi$ git clone https://github.com/sni/Thruk.git
Revenez en utilisateur pi et copiez la ligne suivante dans le fichier .profile de l'utilisateur thruk. Si vous avez ajouté le groupe sudo à l'utilisateur thuk, vous pouvez réaliser cette manipulation sans quitter la session thruk. Par contre, il faudra tout de même se ré-authentifier pour appliquer les variables d'environnement Perl nécessaire à la compilation de Thruk.
sudo vi /home/thruk/.profilela ligne à rajouter à la fin du fichier
eval $(perl -I$HOME/Thruk/local-lib/lib/perl5 -Mlocal::lib=$HOME/Thruk/local-lib)
Revenez de nouveau en utilisateur thruk. Le dossier spécial pour les librairies Perl va se créer dans le dossier Thruk.
sudo su - thruk
Revenez de nouveau en utilisateur pi (ou pas si thruk est dans le groupe sudo). Copiez les librairies Perl précédemment compilées dans le dossier /home/thruk/Thruk/local-lib/lib/perl5.
pi@raspberrypi $ sudo cp -R /tmp/thruk_libs/local-lib/dest/* /home/thruk/Thruk/local-lib/
Il est temps enfin de compiler Thruk.
sudo su - thruk cd Thruk perl Makefile.PL && make
Si tout ce passe bien :-) vous devriez avoir à peu près ce résultat :
include /home/thruk/Thruk/inc/Module/Install.pm include inc/Module/Install/Metadata.pm include inc/Module/Install/Base.pm include inc/Module/Install/Makefile.pm include inc/Module/Install/Catalyst.pm include inc/Module/Install/Include.pm include inc/File/Copy/Recursive.pm *** Module::Install::Catalyst *** Module::Install::Catalyst finished. include inc/Module/Install/Scripts.pm include inc/Module/Install/AutoInstall.pm include inc/Module/AutoInstall.pm *** Module::AutoInstall version 1.06 *** Checking for Perl dependencies... *** Since we're running under CPAN, I'll just let it take care of the dependency's installation later. [Core Features] - parent ...loaded. (0.226) - JSON::XS ...loaded. (2.34) - Config::General ...loaded. (2.52) - Config::Any ...loaded. (0.23) - Class::Data::Inheritable ...loaded. (0.08) - MRO::Compat ...loaded. (0.12) - LWP::UserAgent ...loaded. (6.05) - Net::HTTP ...loaded. (6.06 >= 6.02) - Class::C3::Adopt::NEXT ...loaded. (0.13) - Class::C3::XS ...loaded. (0.13) - URI::Escape ...loaded. (3.31) - Moose ...loaded. (2.1005) - Socket ...loaded. (2.011) - GD ...loaded. (2.50 >= 2.44) - Template ...loaded. (2.25) - Template::Plugin::Date ...loaded. (2.78) - Date::Calc ...loaded. (6.3 >= 6.3) - Date::Calc::XS ...loaded. (6.3) - Data::Page ...loaded. (2.02) - File::Slurp ...loaded. (9999.19) - Date::Manip ...loaded. (6.40) - Excel::Template::Plus ...loaded. (0.05) - Class::Accessor::Fast ...loaded. (0.34) - Catalyst ...loaded. (5.90042 >= 5.9001) - Catalyst::Runtime ...loaded. (5.90042) - Catalyst::Utils ...loaded. (undef) - Catalyst::Controller ...loaded. (undef) - Catalyst::Exception ...loaded. (undef) - Catalyst::ScriptRunner ...loaded. (undef) - Catalyst::Authentication::User::Hash ...loaded. (undef) - Catalyst::View ...loaded. (undef) - Catalyst::View::TT ...loaded. (0.41) - Catalyst::View::GD ...loaded. (0.01) - Catalyst::View::JSON ...loaded. (0.33) - Catalyst::View::Excel::Template::Plus ...loaded. (0.03) - Catalyst::Plugin::ConfigLoader ...loaded. (0.32) - Catalyst::Plugin::Static::Simple ...loaded. (0.30 >= 0.3) - Catalyst::Plugin::Authorization::Roles ...loaded. (0.09) - Catalyst::Plugin::CustomErrorMessage ...loaded. (0.06) - Catalyst::Plugin::Redirect ...loaded. (0.02) - Catalyst::Plugin::Compress ...loaded. (0.005) - Log::Log4perl ...loaded. (1.42 >= 1.34) - Log::Dispatch::File ...loaded. (2.41) - FCGI ...loaded. (0.74) - FCGI::ProcManager ...loaded. (0.24) - FCGI::ProcManager::MaxRequests ...loaded. (0.02) - namespace::autoclean ...loaded. (0.13) - Plack::Handler::CGI ...loaded. (undef) - Storable ...loaded. (2.45) - threads ...loaded. (1.87) - Thread::Queue ...loaded. (3.02) - Thread::Semaphore ...loaded. (2.12) [plugin_shinken] - MongoDB ...loaded. (0.45) - Tie::IxHash ...loaded. (1.23) [plugin_dashboard] - List::Compare ...loaded. (0.37) - List::MoreUtils ...loaded. (0.33) [plugin_reports2] - MIME::Lite ...loaded. (3.029) - Class::Inspector ...loaded. (1.28) [https_backends_support] - LWP::Protocol::https ...loaded. (6.04) - LWP::Protocol::connect ...loaded. (6.06) [mysql_support] - DBI ...loaded. (1.628) - DBD::mysql ...loaded. (4.023) [author_test] - Catalyst::Devel ...loaded. (1.39) - Catalyst::Plugin::StackTrace ...loaded. (0.12) - CatalystX::LeakChecker ...loaded. (0.06) - HTML::Lint ...loaded. (2.20) - File::BOM ...loaded. (0.14) - Test::Simple ...loaded. (0.98) - Test::Cmd ...loaded. (1.05) - Test::Pod ...loaded. (1.48 >= 1.4) - Test::Perl::Critic ...loaded. (1.02) - Test::Pod::Coverage ...loaded. (1.08) - Perl::Critic::Policy::Dynamic::NoIndirect ...loaded. (0.06) - Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseSubs ...loaded. (1.108) - Perl::Critic::Policy::ValuesAndExpressions::ProhibitAccessOfPrivateData ...loaded. (v1.0.0) - WWW::Mechanize::Firefox ...missing. - Test::JavaScript ...missing. ==> Auto-install the 2 optional module(s) from CPAN? [n] *** Module::AutoInstall configuration finished. include inc/Module/Install/WriteAll.pm include inc/Module/Install/Win32.pm include inc/Module/Install/Can.pm include inc/Module/Install/Fetch.pm Writing Makefile for Thruk Writing MYMETA.yml and MYMETA.json Writing META.yml patched Makefile created cached js/css files finished
Première vérification de Thruk
On peut maintenant faire une première vérification de Thruk. La commande suivante doit nous retourner un message d'attente de connection sur le port 3000 du raspberry.
./script/thruk_server.pl HTTP::Server::PSGI: Accepting connections at http://0:3000/
Utilisez un navigateur et saisissez l'adresse suivante http://[IP Serveur Raspberry]:3000. Vous devriez avoir la vue suivante. Cette solution ne doit pas être utilisée en permanence, nous devons installer un serveur Web.
![Stacks Image 6654](files/stacks-image-d3c0cd7-800x704.png)
Essai de connexion avec le port 3000
Ne touchez pas aux paramètres pour l'instant. Il nous reste à finir la configuration de Thruk et l'installation d"un serveur Web.
![Stacks Image 6695](files/stacks-image-2782cd4-40x38.png)
Lors du premier lancement avec le script thruk_server.pl, un dossier var va être créé dans le dossier /home/thruk/Thruk avec les droits de l'utilisateur thruk. Ce dossier contient le fichier secret.key nécessaire au fonctionnement de thruk. Il contiendra plus tard tous les profiles de chaque utilisateur. Il faudra modifier les droits de ce dossier lorsque nous utiliserons un serveur Web.
Nous verrons qu'il est possible et même conseillé de modifier le chemin de ce dossier.
Références
Site en allemand expliquant le problème du timeout pour la compilation de la librairie : http://kenntwas.de/2012/linux/monitoring/omd-0-56-ist-da-jetzt-auch-fuer-raspberry-pi/