Installation 18.10 : quand la création du partionnement bloque l'installation
Voici la problématique : l'étape du partitionnement des tables qui ne s'arrête pas, les logs du fichier /var/log/httpd/error.log indiquant un time out du proxy_fcgi.
Pas de panique, ne fermez pas la fenêtre d'installation mais saisissez l'url
Adaptez php-fpm à votre configuration
Lors de l'installation de Centreon avec les sources avec Debian, la configuration de php-fpm se fait avec les paramètres par défaut. Malheureusement, cette configuration s'avère vite insuffisante pour une utilisation intensive de Centreon.
Le fichier de log /var/log/php7.1-fpm.log nous indique assez rapidement, ce genre de message
[07-Nov-2018 14:56:02] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
Ce message indique que vous n'avez pas assez de processus pour php-fpm. Nous devrons donc augmenter cette valeur dans des proportions cohérentes par rapport à votre configuration.
Dans un premier temps, déterminez la mémoire vive utilisée par les différents processus (centengine, mysql, apache, etc) de votre serveur et estimez la valeur totale que vous pouvez allouer à php-rpm. Dans notre cas, nous prendrons comme valeur 1024 Mo de RAM.
Ensuite, déterminons la consommation par processus php-rpm avec cette commande (attention valable pour une distribution Debian pour le nom du processus) :
ps -ylC php-fpm7.1 --sort:rss
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
S 33 15825 15807 0 80 0 29556 109221 - ? 00:00:00 php-fpm7.1
S 33 15826 15807 0 80 0 30756 109281 - ? 00:00:00 php-fpm7.1
S 0 15807 1 0 80 0 47032 107672 - ? 00:00:00 php-fpm7.1
Les valeurs qui nous intéresse sont celles-qui correspondent à la colonne RSS. C'est la consommation en Ko de chaque processus. Pour obtenir la moyenne, vous pouvez lancer cette commande.
ps --no-headers -o "rss,cmd" -C php-fpm7.1 | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
29M
Nous pouvons calculer le nombre de processus maximum que vous pourrez allouer à votre service php-fpm :
Mémoire allouée en ko / moyenne en ko d'un processus php-fpm
soit
1024/29=35,31 soit 35 processus maximum
Nous éditons le fichier de configuration php-fpm
vi /etc/php/7.1/fpm/pool.d/www.conf
La configuration par défaut est la suivante
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
Nous allons configurer les différentes valeurs :
pm.max_children : la valeur maximum sera celle trouvée précédemment soit 35
Pour les autres valeurs, il n'y a pas de règle bien définie, je n'en ai pas trouvé. Nous dirons que pm.max_spare_servers ne peut être inférieur à pm.start_servers et ni supérieur à pm.max_children. Voici donc une proposition :
pm.max_children = 35
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
Pour optimiser la durée des processus et les fuites de mémoires, on peut configurer les valeurs suivantes :
pm.process_idle_timeout = 10s;
pm.max_requests = 500
Et je n'ai pas parlé du CPU qui a une importance évidente pour le traitement des processus…
Centreon 18.10, c'est parti avec Debian !
Actuellement, plusieurs travaux sont en cours :
- l'installation de Centreon 18.10.0 avec les sources sur Debian Jessie,
- la migration d'une version 2.8.26 vers 18.10.0 sur Debian Jessie,
- l'installation de Centreon 18.10.0 avec les sources sur Debian Stretch.
Sur mon GitHub, je travaille aussi sur l'installation automatisée par script d'une version Jessie de Centreon 18.10 avec pour objectif de finaliser la version Stretch. Je commence aussi à travailler sur les paquets Debian mais le délai sera beaucoup plus long car il faut effectuer de nombreux tests. De plus la version Stretch sera plus délicate à réaliser à cause de l'incompatibilité du paquet officiel rrdtool (version 1.6.0).
Mes prochains projets seront :
- l'installation de Centreon sur Rapsberry,
- l'installation de Centreon sur Ubuntu
- la compatibilité de Nagvis avec Centreon 18.10
Ce n'est plus qu'une question de jour...
Mise à jour des scripts d'installation automatisée pour Debian
Après l'installation, vous obtenez cette configuration toute prête avec un minimum d'effort.
Un nouveau bandeau à tester !
l'ancien bandeau de statuts
le nouveau bandeau
Mise à jour des articles sur NRPE
Le premier article décrit l'installation du client NRPE avec une configuration Centreon avec les plugins Centreon. Le deuxième article décrit l'installation d'un service Nrpe sur un serveur CentOS 6.
Les articles NRPE avec Debian ont été mis à jour avec l'installation du client et du démon avec les sources.
Bonne lecture.
Rappel sur les versions de Centreon
En 2014, Centreon, alias Méréthis à l'époque, met à la disposition de la communauté une ISO comprenant tous les packages Centreon en version CES standard 3.0. Pour ceux, utilisant les plugins Centreon en version communautaires, l'aventure a commencé le 5/12/2013 avec une version bétà.
Depuis, les versions de Centreon toutes confondues ont évolué avec leurs propres numérotations. J'ai remarqué que certaines personnes étaient perturbées de ce versionning propre à Centreon. Donc, pour éclairer les centreonistes débutants, je vous propose ce résumé des dernières versions à jours :
- L'ISO Centreon est en version 3.4.6. Elle est basée sur CentOS 6 ou 7. Après un yum update fortement recommandé, elle comprendra la version centreon-web 2.8.22, la version centreon-broker 3.0.14 et la version centreon-engine 1.8.1. Les centreon-plugins version communautaire ne sont pas installés par défaut au profit de Centreon Imp.
- Centreon-Web est en version 2.8.22. C'est l'intelligence de Centreon. Elle comprend l'IHM Web, les services centcore, centreontrapd. Ce package est nécessaire en globalité pour un serveur Central et en partie pour un serveur Poller.
- Centreon-Boker est en version 3.0.14. C'est le lien entre l'intelligence de Centreon et les moteurs des pollers. Ce multiplexeur de flux de données est utile pour alimenter des applications externes à Centreon. Ce package est nécessaire en globalité pour un serveur Central et en partie pour un serveur Poller.
- Centreon-Engine est en version 1.8.1. C'est le moteur de supervision de Centreon. Il assume le rôle d'ordonnanceur pour les contrôles de vérification en exécutant les sondes (centreon-plugins par exemple). C'est lui qui envoie aussi les notifications. Ce package est nécessaire pour chaque poller.
- Les Centreon-Plugins sont en version 20180427 sur le GitHub. C'est une bibliothèque de plus de 250 plugins développés par Centreon. Ils sont librement téléchargeables mains contrairement aux plugins IMP, il n'y a aucune configuration pour les intégrer à votre Supervision. Vous devrez créer vous-même vos commandes et vos templates dans la configuration de Centreon. Ce dépôt est nécessaire pour chaque poller si vous n'utilisez pas Centreon IMP. Il peut être utilisé pour superviser des serveurs via nrpe.
Pour finir, voici les derniers articles à jour sur mon site :
Centreon 3.4.6 is out !
Pour une fois, vous ne trouverez pas de procédure d'installation sur mon site car j'ai trouvé la documentation de Centreon très bien faite Je vous propose seulement quelques astuces et préconisations pour cette nouvelle installation Centreon : Intégration de Centreon 3.4.6 avec CentOS 7
My poller is not Running ! Why ?
En fait, cette information qui semble simple et anodine au premier abord, est le résultat d’un mécanisme complexe pour un néophyte en supervision Centreon.
Lire plus…
Créez vos propres connecteurs avec LUA
Cet article va certainement s'enrichir au fil de mes découvertes avec la connexion TCP et la connexion à d'autres outils tiers. Bonne lecture.
Importer votre configuration avec un fichier CSV
Création du fichier CSV
En premier lieu, remplir le CSV sous cette forme
<nom d'hôte>;<désignation de l'hôte>;<IP hôte>;<Templates d'hôte séparés par |>;<Instance>;<hostgroup>;<macro1>;<valeur1>;<macro2>;<valeur2>;<macro3>;<valeur3>
Certaines valeurs sont optionnelles comme le hostgroup et les macros. Voici un exemple de fichier CSV
test1;server test1;172.16.209.5;generic-active-host-custom|OS-Linux-SNMP-custom;Central;linux
test2;server test2;172.16.209.6;generic-active-host-custom|OS-Linux-SNMP-custom|App-DB-MySQL-custom;Central;linux;MYSQLPASSWORD;centreon;MYSQLPORT;3306;MYSQLUSERNAME;centreon
test3;server test3;172.16.209.7;generic-active-host-custom;poller1;linux
Vous remarquerez que nous ne sommes pas obligés de remplir tous les champs macros si nous ne les utilisons pas.
Script d'importation
Voici un script très simple pour importer vos hôtes avec l'API Clapi.
#!/bin/bash
CLAPI=/usr/share/centreon/bin/centreon
INPUT=/root/import.csv
USER=admin
PASS=password
OLDIFS=$IFS
IFS=$';'
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read host lblhost ip template instance hostgroup macro1 valeur1 macro2 valeur2 macro3 valeur3
do
#echo $host
$CLAPI -u $USER -p $PASS -o HOST -a ADD -v "$host;$lblhost;$ip;$template;$instance;$hostgroup"
if [[ ! -z "$macro1" ]]
then
$CLAPI -u $USER -p $PASS -o HOST -a SETMACRO -v "$host;$macro1;$valeur1"
fi
if [[ ! -z "$macro2" ]]
then
$CLAPI -u $USER -p $PASS -o HOST -a SETMACRO -v "$host;$macro2;$valeur2"
fi
if [[ ! -z "$macro3" ]]
then
$CLAPI -u $USER -p $PASS -o HOST -a SETMACRO -v "$host;$macro3;$valeur3"
fi
$CLAPI -u $USER -p $PASS -o HOST -a APPLYTPL -v "$host"
done < $INPUT
IFS=$OLDIFS
On vérifie la validité des valeurs de macro pour éviter des erreurs de commande. Je me suis limité à trois macros mais on peut facilement en rajouter. La dernière commande CLAPI (APPLYTPL) permet d'ajouter les services associés aux templates d'hôtes.
Vérification de la configuration
Après l'importation, nous constaterons l'ajout de nos hôtes dans la configuration.
Les macros personnalisées sont aussi ajoutées
Variantes avec l'utilisation des macros SNMP host_snmp_community et host_snmp_version
Un lecteur m'a fait la remarque qu'il serait judicieux d'ajouter les paramètres SNMP pour chaque hôte nouvellement créé. Ces deux macros se gèrent avec la commande clapi SETPARAM. Il faut donc trouver une autre solution pour le fichier CSV. Voici donc ma solution, il y en a certainement d'autres, je rajoute les valeurs community et valeur avant l'ajout des macros supplémentaires. Ces deux paramètres sont optionnels s'il n'y a pas de macros additionnelles sinon il ne faudra pas oublier de les insérer même si les valeurs sont nulles (ajout de points-virgules seul).
Création du nouveau fichier CSV
Remplir le CSV sous cette forme
<nom d'hôte>;<désignation de l'hôte>;<IP hôte>;<Templates d'hôte séparés par |>;<Instance>;<hostgroup>;<SNMP Community>;<SNMP Version>;<macro1>;<valeur1>;<macro2>;<valeur2>;<macro3>;<valeur3>
Certaines valeurs sont optionnelles comme le hostgroup et les macros. Voici un exemple de fichier CSV
test1;server test1;172.16.209.5;generic-active-host-custom|OS-Linux-SNMP-custom;Central;linux;
test2;server test2;172.16.209.6;generic-active-host-custom|OS-Linux-SNMP-custom|App-DB-MySQL-custom;Central;linux;public;2c;MYSQLPASSWORD;centreon;MYSQLPORT;3306;MYSQLUSERNAME;centreon
test3;server test3;172.16.209.7;generic-active-host-custom;poller1;linux;public;1
Nouveau script d'importation
Voici la modification du script.
#!/bin/bash
CLAPI=/usr/share/centreon/bin/centreon
INPUT=/root/import.csv
OLDIFS=$IFS
IFS=$';'
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read host lblhost ip template instance hostgroup community version macro1 valeur1 macro2 valeur2 macro3 valeur3
do
# add host
$CLAPI -u admin -p password -o HOST -a ADD -v "$host;$lblhost;$ip;$template;$instance;$hostgroup"
# add community and version SNMP if not empty
if [[ ! -z "$community" ]]
then
$CLAPI -u admin -p password -o HOST -a SETPARAM -v "$host;host_snmp_community;$community"
fi
if [[ ! -z "$version" ]]
then
$CLAPI -u admin -p password -o HOST -a SETPARAM -v "$host;host_snmp_version;$version"
fi
# add macro if not empty
if [[ ! -z "$macro1" ]]
then
$CLAPI -u admin -p password -o HOST -a SETMACRO -v "$host;$macro1;$valeur1"
fi
if [[ ! -z "$macro2" ]]
then
$CLAPI -u admin -p password -o HOST -a SETMACRO -v "$host;$macro2;$valeur2"
fi
if [[ ! -z "$macro3" ]]
then
$CLAPI -u admin -p password -o HOST -a SETMACRO -v "$host;$macro3;$valeur3"
fi
#apply template
$CLAPI -u admin -p password -o HOST -a APPLYTPL -v "$host"
done < $INPUT
IFS=$OLDIFS
Deux nouveaux tests ont été rajoutés pour ajouter ou nom les macros host_snmp_community et host_snmp_version.
Il ne restera plus qu'a appliquer la configuration pour ajouter vos nouvelles machines.
Le watchdog cbwd, le meilleur ami du broker
LiveCode et l'API Rest de Centreon
Gérer le certificat NSClient pour l'API Rest
Pour la première connexion, vous aurez droit à un message d'avertissement. Normal, me direz-vous, car celui-ci ne peut pas authentifier ce certificat. Il suffira d'ajouter une exception pour régler le problème. Mais le souci viendra lors d'une deuxième connexion à un autre agent, votre navigateur va reconnaître le même certificat mais pour un serveur différent. Votre butineur préféré conclura à une usurpation d'identité et donc à un site malveillant en vous empêchant de vous connecter comme le montre cette copie d'écran.
Pour remédier à ce souci, je vous propose deux solutions.
NSClient et l'API Rest avec les plugins Centreon
Nous commencerons par l'installation de l'agent sur CentOS et Windows.
Ensuite nous aborderons l'installation du mode web de l'agent NSClient et du plugin Rest API Centreon.
D'autres articles seront prévus plus tard pour l'intégration dans l'IHM Centreon et l'utilisation des divers modules de NSClient. Le dépôt Centreon-deb a été mis à jour pour pouvoir utiliser ce nouveau plugin. Pour une mise à jour :
apt-get update
apt-get install centreon-plugins
Mise à jour 2.8.17 pour Centreon-deb
Vous trouverez toutes les explications sur cette page http://mirror.sugarbug.fr/jessie/
Pour réaliser la mise jour à partir de la version 2.8.16, lancez ces commandes :
apt-get update
apt-get install centreon-central centreon-clapi centreon-widget-*
Si vous ne retrouvez pas vos widget après une mise à jour, lancez simplement cette commande :
apt-get install centreon-widget-*
Vous trouverez les sources des paquets Debian sur mon GitHub.