Menu
1. CENTREON
2. CREATION COMMANDE
3. CREATION TEMPLATE
4. SCRIPT CENTOS ET CRON
5. SCRIPT CLAPI
6. SONDE
A. WEBINJECT
B. CHECK_DOCKER
Après avoir crée notre première ferme Rancher en version 1.6.25 (Lien article) et après avoir commencer à y mettre des services (Lien article), nous allons mettre en place un monitoring afin de contrôler qu’il n’y aura pas de rupture de production d’un point de vue de l’infrastructure.
Pour cela, nous allons utiliser un produit dédié au monitoring Centreon, il est en version 18.10.2 en mode de la réalisation de l’article.
Afin d’automatiser et industrialiser au mieux l’ajout de nouveau hôte (espaces disques, utilisation mémoire, taux d’utilisation CPU, etc…), nous allons créer plusieurs Template, et à l’aide du code CLAPI nous allons les rajouter facilement et rapidement ces nouveaux hôtes avec les service qui se trouve dessus.
Pour ce qui est des noms d’hôtes et des adresses IP, nous allons continuer avec le schéma de mon article précédent, et nous reprennonss après l’installation et la configuration du service SNMP.
Lien des composants :
– Centreon (Lien https://www.centreon.com)
– Plugin Centreon (Lien https://github.com/centreon/centreon-plugins)
– Webinject (Lien http://www.webinject.org)
– cowcheck (Lien https://github.com/cloudnautique/cowcheck)
– check_docker (Lien https://github.com/sysC0D/nagios-plugin)
![]() Il existe déjà plein d’autres articles et sites qui pourront vous informer pour cela.Exemple : – http://www.sugarbug.fr/blog/ <<< je recommande celui-ci – https://www.monitoring-fr.org – https://www.it-connect.fr/centreon-integrer-une-sonde-de-temperature-hwg-ste/ – https://www.supinfo.com/articles/single/2361-supervision-via-centreon-configuration |
1. CENTREON
Si pour vos tests vous désirez avoir Centreon dans VMWARE, voici le lien https://download.centreon.com/.
Sur celui-ci, vous pourrez télécharger une OVF créé par Centreon parfaitement fonctionnelle.
Une fois importé dans VMWARE, vous devrez lui rajouter une carte réseau.
Une fois votre VM démarrer, vous devez vous identifier sur le shell.
login: root
password : centreon
Celle-ci vous demande de réaliser les commandes suivante :
timedatectl set-timezone Europe/Paris
nano /etc/opt/rh/rh-php71/php.d/php-timezone.ini
echo date.timezone = Europe/Paris > /etc/opt/rh/rh-php71/php.d/php-timezone.ini
systemctl restart rh-php71-php-fpm
systemctl restart httpd
hostnamectl set-hostname centreon-central
su – centreon
php /usr/share/centreon/cron/centreon-partitioning.php >> /var/log/centreon/centreon-partitioning.log 2>&1
exit
systemctl restart cbd
rm /etc/profile.d/centreon.sh
Par contre, ils ont oublié de supprimer le proxy de leur image avant de la réaliser.
vi /etc/yum.conf
Vous devez commenter la ligne ou la supprimer.
#proxy=http://proxy.int.centreon.com:3128
Nous pouvons donc faire les mises à jour.
yum upgrade -y
Puis nous faisons un reboot de la machine pour une prise en compte global.
reboot
Vous devrez aussi vous identifier sur l’interface web.
login: admin
password : centreon
2. CREATION COMMANDE
Nous allons commencer par nous authentifier à Centreon avec un compte Administrateur
A l’aide du menu situé à gauche, nous nous rendons dans Configuration > Commandes > Contrôles
![]() ![]() ![]() |
Nous pouvons donc cliquer sur le bouton Ajouter
Nous arrivons sur la page de création des commandes
Nous allons remplir l’ensemble des champs comme ci-dessous pour la première commande
– Nom de commande : Centos7_Users
– Type de commande : Vérification
– Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c users -t 60
– Activer le shell : False (non coché)
– Exemple d’arguments : vide
– Description des arguments : vide
– Description des macros : vide
Nous pouvons ensuite sauvegarder la commande .
Nous recherchons la commande que nous venons de créer.
Nous cochons la case devant celle-ci, puis nous allons la dupliquer
Nous éditons la commande dupliqué avec « _1 »
Nous modifions les informations en fonction du tableau ci-dessous
load | Nom de commande : Centos7_Load Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c load -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
check_load | Nom de commande : Centos7_Check_Load Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c check_load -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
swap | Nom de commande : Centos7_Swap Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c swap -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
root_disk | Nom de commande : Centos7_Root_Disk Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c root_disk -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
usr_disk | Nom de commande : Centos7_Usr_Disk Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c usr_disk -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
var_disk | Nom de commande : Centos7_Var_Disk Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c var_disk -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
zombie_procs | Nom de commande : Centos7_Zombie_Procs Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c zombie_procs -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
total_procs | Nom de commande : Centos7_Total_Procs Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c total_procs -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
proc_named | Nom de commande : Centos7_Proc_Named Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c proc_named -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
proc_crond | Nom de commande : Centos7_Proc_Crond Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c proc_crond -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
proc_syslogd | Nom de commande : Centos7_Proc_Syslogd Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c proc_syslogd -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
proc_rsyslogd | Nom de commande : Centos7_Proc_Rsyslogd Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c proc_rsyslogd -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
proc_docker | Nom de commande : Centos7_Proc_Docker Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c proc_docker -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
check_yum | Nom de commande : Centos7_Check_Yum Type de commande : Vérification Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c check_yum -t 60 Activer le shell : False (non coché) Exemple d’arguments : vide Description des arguments : vide Description des macros : vide |
Nous devons nous retrouver avec ceci dans la liste des commandes
3. CREATION TEMPLATE
Nous allons commencer par nous authentifier à Centreon avec un compte Administrateur
A l’aide du menu situé à gauche, nous nous rendons dans Configuration >Services > Modèles
![]() ![]() ![]() |
Nous pouvons donc cliquer sur le bouton Ajouter
Nous arrivons sur la page de création des Templates
Nous allons remplir l’ensemble des champs comme ci-dessous pour la Template dans la partie « Informations génèrales »
– Alias : Centos7_Users
– Nom : Centos7_Users
– Modèle : vide
– Commande de vérification : Centos7_Users
– Macro personnalisées : vide
– Arguments : vide
– Période de contrôle : 24×7
– Nombre de contrôles avant validation de l’état : 2
– Intervalle normal de contrôle : 2
– Intervalle non-régulier de contrôle : 2
– Contrôle actif activé : Défaut
– Contrôle passif activé : Défaut
– Est volatile : Défaut
Nous allons remplir l’ensemble des champs comme ci-dessous pour la Template dans la partie « Notifications »
– Notification activée : Défaut
– Contacts liés : vide
– Groupes de contacts liés : vide
– Intervalle de notification : 2
– Période de notification : 24×7
– Type de notification : Alerte / Inconnu / Critique
– Délai de première notification : 2
– Délai de première notification de recouvrement : 2
Nous pouvons ensuite sauvegarder la Template.
Nous recherchons la Template que nous venons de créer.
Nous cochons la case devant celle-ci, puis nous allons la dupliquer
Nous éditons la Template dupliqué avec « _1 »
Nous modifions les informations en fonction du tableau ci-dessous
load | Alias : Centos7_Load Nom : Centos7_Load Commande de vérification : Centos7_Load |
check_load | Alias : Centos7_Check_Load Nom : Centos7_Check_Load Commande de vérification : Centos7_Check_Load |
swap | Alias : Centos7_Swap Nom : Centos7_Swap Commande de vérification : Centos7_Swap |
root_disk | Alias : Centos7_Root_Disk Nom : Centos7_Root_Disk Commande de vérification : Centos7_Root_Disk |
usr_disk | Alias : Centos7_Usr_Disk Nom : Centos7_Usr_Disk Commande de vérification : Centos7_Usr_Disk |
var_disk | Nom de commande : Centos7_Var_Disk Nom : Centos7_Var_Disk Commande de vérification : Centos7_Var_Disk |
zombie_procs | Nom de commande : Centos7_Zombie_Procs Nom : Centos7_Zombie_Procs Commande de vérification : Centos7_Zombie_Procs |
total_procs | Nom de commande : Centos7_Total_Procs Nom : Centos7_Total_Procs Commande de vérification : Centos7_Total_Procs |
proc_named | Nom de commande : Centos7_Proc_Named Nom : Centos7_Proc_Named Commande de vérification : Centos7_Proc_Named |
proc_crond | Nom de commande : Centos7_Proc_Crond Nom : Centos7_Proc_Crond Commande de vérification : Centos7_Proc_Crond |
proc_syslogd | Nom de commande : Centos7_Proc_Syslogd Nom : Centos7_Proc_Syslogd Commande de vérification : Centos7_Proc_Syslogd |
proc_rsyslogd | Nom de commande : Centos7_Proc_Rsyslogd Nom : Centos7_Proc_Rsyslogd Commande de vérification : Centos7_Proc_Rsyslogd |
proc_docker | Nom de commande : Centos7_Proc_Docker Nom : Centos7_Proc_Docker Commande de vérification : Centos7_Proc_Docker |
check_yum | Nom de commande : Centos7_Check_Yum Nom : Centos7_Check_Yum Commande de vérification : Centos7_Check_Yum |
Nous devons nous retrouver avec ceci dans la liste des Templates
Nous pouvons dupliquer d’autre Templates déjà existant afin de les regrouper plus facilement.
![]() |
4. SCRIPT CENTOS ET CRON
Nous allons maintenant mettre en place l’automatisation.
Pour cela, nous allons créer le dossier imports sur le serveur Centreon
mkdir /usr/share/centreon/imports
Nous allons créer le script
nano /usr/share/centreon/cron-import-clapi.sh
Voici le contenu du script
#!/bin/bash
#repertoire source
rep=/usr/share/centreon/imports/*.sh#loop dans le rep a la recherche de fichier sh
for each in $rep
do
{
echo $each
#conversion du fichier
tr -d ‘\015’ < $each > « $each ».tmp
cat « $each ».tmp > $each
#ajout droit execute et renomme en .OK
chmod +x $each
$each
mv $each « $each ».OK
rm -f « $each ».tmp
}
done
Nous pouvons le sauvegarder
Nous éditons le crontab
crontab -e
Noous rajoutons la ligne de commande suivante
*/5 * * * * /usr/share/centreon/cron-import-clapi.sh >> /usr/share/centreon/cron-import-clapi.log
Nous rendons le script exécutable
chmod +x /usr/share/centreon/cron-import-clapi.sh
En patientant 5 à 10 minutes, nous devons voir apparaitre le fichier cron-import-clapi.log à l’emplacement /usr/share/centreon/
5. SCRIPT CLAPI
Nous devons donc créer un fichier CLAPI qui va nous permettre de créer automatiquement chaque nouvel hôte et l’ensemble des services associés.
Voici le contenu du fichier clapi-Template-Rancher.txt que nous devrons envoyer dans le dossier /usr/share/centreon/imports
#!/bin/bash
cd /
cd /usr/share/centreon/bin./centreon -u admin -p centreon -o HOST -a ADD -v "Rancher01;Rancher01;10.59.1.151;generic-active-host;centreon-central;Linux"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;Check_load;Centos7_check_load"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;Check_yum;Centos7_check_yum"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;CPU;Centos7_Cpu-Detailed-SNMP-custom"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;load;Centos7_load"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;proc_crond;Centos7_proc_crond"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;proc_docker;Centos7_proc_docker"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;proc_named;Centos7_proc_named"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;proc_rsyslogd;Centos7_proc_rsyslogd"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;proc_syslogd;Centos7_proc_syslogd"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;root_disk;Centos7_root_disk"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;swap;Centos7_swap"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;total_procs;Centos7_total_procs"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;Users;Centos7_Users"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;usr_disk;Centos7_usr_disk"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;var_disk;Centos7_var_disk"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;zombie_procs;Centos7_zombie_procs"Personnellement, j'ai un script Powershell qui permet de créer automatiquement de nouvelle VM Centos 7, et lorsqu'il les a crée envoi les fichiers CLAPI dans Centreon.
Je n'ai pas a me sousiher trop des détails, tout est automatisé sur la création.Voici le contenu de mon fichier CREATION-VM.ps1
Function EnvoieMailVM {[CmdletBinding()]
PARAM (
[Parameter(Mandatory=$true)][String] $VM-NOM-SALLE-A,
[Parameter(Mandatory=$true)][String] $VM-IP-SALLE-A,
[Parameter(Mandatory=$true)][String] $VM-NOM-SALLE-B,
[Parameter(Mandatory=$true)][String] $VM-IP-SALLE-B,
[Parameter()][String] $Description = $null
)$emailSmtpServer = #Serveur-SMTP
$emailSmtpServerPort = #Port-Serveur-SMTP$emailFrom = "Creation-VM@exemple.local"
$emailTo = @("hcornet@tips-of-mine.fr", "admin@exemple.local")$body = ""
$body += ""
$body += "Bonjour,"
$body += "Une VM est crée dans chaque salle."
$body += "- $VM-NOM-SALLE-A
"
$body += "- $VM-IP-SALLE-A
"
$body += "- $VM-NOM-SALLE-B
"
$body += "- $VM-IP-SALLE-B
"
$body += "Penser à controle Centreon pour la supervision."
$encoding = [System.Text.Encoding]::UTF8
Send-MailMessage -SmtpServer "$emailSmtpServer" -To $emailTo -From "Creation-VM@exemple.local" -Subject "Creation nouvelle VM" -BodyAsHtml $body -Encoding $encoding -Priority High
}Set-ExecutionPolicy RemoteSigned
Find-Module VMware.PowerCli | install-module
#Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false
#Set-PowerCLIConfiguration -ProxyPolicy NoProxy -Confirm:$False
#Set-PowerCLIConfiguration -InvalidCertificateAction ignore -Confirm:$FalseImport-Module VMware.PowerCLI
Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false
$i = 152
While ($i -lt 200) {
If (Test-Connection "Rancher$i" -count 1 -Quiet) {
$ipV4 = Test-Connection "Rancher$i" -count 1 | select Ipv4Address
}
Else {
$j = $i -1
$k = $i +1
$ValueVM = [System.Net.Dns]::gethostentry("Rancher$j") | select Hostname
$ValueVM = $ValueVM.HostName.Split(".")[0]$ipV4 = Test-Connection "$ValueVM" -count 1 | select Ipv4Address
$Value-VM-Nom-Salle-A = [int]($ipV4.IPV4Address.IPAddressToString).Split(".")[2]
$Value-VM-Nom-Salle-B = [int]($ipV4.IPV4Address.IPAddressToString).Split(".")[2] + 1
$Value-VM-XX = [int]($ipV4.IPV4Address.IPAddressToString).Split(".")[3] + 1$Value-VM-IP_Nom-Salle-A = ($ipV4.IPV4Address.IPAddressToString).Split(".")[0]+"."+($ipV4.IPV4Address.IPAddressToString).Split(".")[1]+"."+$Value-VM-Nom-Salle-A+"."+$Value-VM-XX
$Value-VM-IP-Nom-Salle-B = ($ipV4.IPV4Address.IPAddressToString).Split(".")[0]+"."+($ipV4.IPV4Address.IPAddressToString).Split(".")[1]+"."+$Value-VM-Nom-Salle-B+"."+$Value-VM-XXWrite-Host "Nous créons le host Rancher$i avec l'adresse IP $Value-VM-IP_Nom-Salle-A pour la salle A"
Write-Host "Nous créons le host Rancher$k avec l'adresse IP $Value-VM-IP_Nom-Salle-B pour la salle B"break
}
$i +=1
}$lm49 = ConvertTo-SecureString "Password" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential("Admin@exemple.local", $lm49)connect-viserver –server 'vcenter.exemple.local' -Credential $creds -Verbose
New-vm -vmhost 10.59.90.2 -Name Rancher$i -Template Centos7_Template -Datastore 'datastore'
Start-VM -VM Rancher$i -Confirm:$falseNew-vm -vmhost 10.59.91.2 -Name Rancher$k -Template Centos7_Template -Datastore 'datastore (1)'
Start-VM -VM Rancher$k -Confirm:$falseStart-Sleep -s 60
#Centreon
$FichierCentreon-Salle-A = "D:\PowerShell\script\Creation VM\Supervision\usr\share\centreon\imports\clapi-Rancher$i.sh"
$FichierCentreon-Salle-B = "D:\PowerShell\script\Creation VM\Supervision\usr\share\centreon\imports\clapi-Rancher$k.sh"# Mise en place des hostname
(Get-Content "D:\PowerShell\script\Creation VM\Supervision\clapi-Template-Rancher.txt") -replace "Rancher01","Rancher$i" | Set-Content $FichierCentreon-Salle-A
(Get-Content "D:\PowerShell\script\Creation VM\Supervision\clapi-Template-Rancher.txt") -replace "Rancher01","Rancher$k" | Set-Content $FichierCentreon-Salle-B# Mise en place des IP
(Get-Content $FichierCentreon-Salle-A) -replace "10.59.YYYY.XXXX",$Value-VM-Nom-Salle-A | Set-Content $FichierCentreon-Salle-A
(Get-Content $FichierCentreon-Salle-B) -replace "10.59.YYYY.XXXX",$Value-VM-Nom-Salle-B | Set-Content $FichierCentreon-Salle-B# Transfert des fichiers
pscp -pw centreon $FichierCentreon-Salle-A root@10.59.1.11:/usr/share/centreon/imports/
pscp -pw centreon $FichierCentreon-Salle-B root@10.59.1.11:/usr/share/centreon/imports/# desydratation
Invoke-VMScript -VM Rancher$i -ScriptText "/root/vm-rehydrate.sh Rancher$i $Value-VM-Nom-Salle-A $Value-VM-XX" -GuestUser root -GuestPassword password
Invoke-VMScript -VM Rancher$k -ScriptText "/root/vm-rehydrate.sh Rancher$k $Value-VM-Nom-Salle-B $Value-VM-XX" -GuestUser root -GuestPassword passwordDisconnect-VIServer -Server $global:DefaultVIServers -Force
EnvoieMailVM -VM-NOM-SALLE-A Rancher$i -VM-IP-SALLE-A $Value-VM-IP_Nom-Salle-A -VM-NOM-SALLE-B Rancher$k -VM-IP-SALLE-B $Value-VM-IP_Nom-Salle-B
Pour rajouter d'autre hôte, nous devons simplement remplacer Rancher01 par le nom d'un autre hôte et 10.59.1.151 par l'adresse IP de celui-ci.
Dans le cas, où vous auriez plusieurs collecteur Centreon, vous pouvez aussi remplacer centreon-central par le collecteur que vous désirez utiliser.Une fois exécuté par le CRONTAB, nous pouvons voir apparaitre dans la liste des services l'ensemble des services qui sont rattachés à notre nouvel hôte.
Nous pouvons donc aussi prévoir la prise en compte global de l'ajout d'hôte dans Centreon avec le redémarrage du collecteur.
Voici le contenu du fichier clapi-Template-Collecteur.txt que nous devrons envoyer dans le dossier /usr/share/centreon/imports juste après la création du nouvel hôte et service.
#!/bin/bash
ECHO DATEcd /
cd /usr/share/centreon/bin./centreon -u admin -p centreon -a POLLERGENERATE -v 1
./centreon -u admin -p centreon -a POLLERTEST -v 1
./centreon -u admin -p centreon -a CFGMOVE -v 1
./centreon -u admin -p centreon -a POLLERRESTART -v 1./centreon -u admin -p centreon -a APPLYCFG -v 1
Pour cela, je modifie juste la fin de mon script CREATION-VM.ps1 en rajoutant 4 lignes édité pour le collecteur.
$Date-Creation = Get-Date -Format g
#Centreon
$FichierCentreon-Salle-A = "D:\PowerShell\script\Creation VM\Supervision\usr\share\centreon\imports\clapi-Rancher$i.sh"
$FichierCentreon-Salle-B = "D:\PowerShell\script\Creation VM\Supervision\usr\share\centreon\imports\clapi-Rancher$k.sh"
$FichierCentreon-Restart = "D:\PowerShell\script\Creation VM\Supervision\usr\share\centreon\imports\ZZZZZ-Collecteur-$Date-Creation.sh"# Mise en place des hostname
(Get-Content "D:\PowerShell\script\Creation VM\Supervision\clapi-Template-Rancher.txt") -replace "Rancher01","Rancher$i" | Set-Content $FichierCentreon-Salle-A
(Get-Content "D:\PowerShell\script\Creation VM\Supervision\clapi-Template-Rancher.txt") -replace "Rancher01","Rancher$k" | Set-Content $FichierCentreon-Salle-B
(Get-Content "D:\PowerShell\script\Creation VM\Supervision\clapi-Template-Collecteur.txt") -replace "DATE","$Date-Creation" | Set-Content $FichierCentreon-Restart# Mise en place des IP
(Get-Content $FichierCentreon-Salle-A) -replace "10.59.YYYY.XXXX",$Value-VM-Nom-Salle-A | Set-Content $FichierCentreon-Salle-A
(Get-Content $FichierCentreon-Salle-B) -replace "10.59.YYYY.XXXX",$Value-VM-Nom-Salle-B | Set-Content $FichierCentreon-Salle-B# Transfert des fichiers
pscp -pw centreon $FichierCentreon-Salle-A root@10.59.1.11:/usr/share/centreon/imports/
pscp -pw centreon $FichierCentreon-Salle-B root@10.59.1.11:/usr/share/centreon/imports/
pscp -pw centreon $FichierCentreon-Restart root@10.59.1.11:/usr/share/centreon/imports/Une fois le collecteur redémarré, nous commençons à avoir le monitoring de l'hôte nouvellement ajouté.
6. SONDE
Nous avons donc créer un système de monitoring que nous avons automatisé et industrialisé. Bien sur nous pouvons encore augmenter le nombre de sonde que nous désirons avoir toujours sur le même principe.
A. WEBINJECT
Comme par exemple à l'aide de Webinject que nous aurons installé au paravant sur le serveur Centreon et du service contenaire COWCHECK qui sera lui installé sur Rancher
COWCHECK est une simple page qui retoune le message Everything OK lorsque tout ce passe bien.
Sur le serveur Centreon, nous créons le répertoire /usr/lib/nagios/plugins/webinject
Dans celui, nous allons y mettre les fichiers réponse Webinject au format XML.mkdir /usr/lib/nagios/plugins/webinject
nano /usr/lib/nagios/plugins/webinject/Docker-Rancher01.xmlVoici le contenu du fichier Docker-Rancher01.xml
Nous retournons dans Centreon sur la page de création des commandes
Nous allons remplir l'ensemble des champs comme ci-dessous pour la première commande
- Nom de commande : Centreon
- Type de commande : Vérification
- Ligne de commande : $USER1$/webinject/webinject.pl -c config.xml Docker-$ARG1$.xml
- Activer le shell : False (non coché)
- Exemple d'arguments : vide
- Description des arguments : ARG1 : Nom de hôte à controler
- Description des macros : videNous retournons sur la page de création des Templates
Nous allons remplir l’ensemble des champs comme ci-dessous pour la Template dans la partie " Informations génèrales "
- Alias : Centos7_Webinject_Scenario
- Nom : Centos7_Webinject_Scenario
- Modèle : vide
- Commande de vérification : Centos7_Webinject_Scenario
- Macro personnalisées : vide
- Arguments : Rancher01
- Période de contrôle : 24x7
- Nombre de contrôles avant validation de l'état : 2
- Intervalle normal de contrôle : 2
- Intervalle non-régulier de contrôle : 2
- Contrôle actif activé : Défaut
- Contrôle passif activé : Défaut
- Est volatile : DéfautNous allons remplir l’ensemble des champs comme ci-dessous pour la Template dans la partie " Notifications "
- Notification activée : Défaut
- Contacts liés : vide
- Groupes de contacts liés : vide
- Intervalle de notification : 2
- Période de notification : 24x7
- Type de notification : Alerte / Inconnu / Critique
- Délai de première notification : 2
- Délai de première notification de recouvrement : 2Dans notre génèrateur de fichier CLAPI nous devons rajouter les lignes suivante
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;Scenario page;Centos7_Webinject_Scenario"
./centreon -u admin -p centreon -o SERVICE -a setparam -v "Rancher01;Scenario page;check_command_arguments;!Rancher01"Ainsi CLAPI nous rajout automatiquement la nouvelle sonde sur Rancher01.
Pour d'autre hote, nous devrons simplement remplacer le premier Rancher01 de chaque ligne par le nom du nouvel hôte, et le deuxieme Rancher01 de la deuxieme ligne par le nom d'un autre fichier XML à créer pour hôte.B. CHECK_DOCKER
Comme par exemple à l'aide de CHECK_DOCKER que nous aurons téléchargé et installé au paravant sur les serveurs Rancher dans le dossier /usr/lib64/nagios/plugins/.
Sur les serveur Rancher, nous éditons le fichier centreon.cfg
nano /etc/nrpe.d/centreon.cfg
Nous rajoutons la ligne
command[check_docker_run]=/usr/lib64/nagios/plugins/check_docker.sh -s -n $ARG1$
command[check_docker_cpu]=/usr/lib64/nagios/plugins/check_docker.sh -c 10,20 -n $ARG1$
command[check_docker_memory]=/usr/lib64/nagios/plugins/check_docker.sh -m 10,20 -n $ARG1$
command[check_docker_network]=/usr/lib64/nagios/plugins/check_docker.sh -N 10,10,20,20 -n $ARG1$nous éditons le fichier nrpe.cfg
nano /etc/nagios/nrpe.cfg
Nous modifions la ligne dont_blame_nrpe=0 par
dont_blame_nrpe=1
Puis nous faisons
usermod -aG docker nrpe
systemctl restart nrpeNous retournons dans Centreon sur la page de création des commandes
Nous allons remplir l'ensemble des champs comme ci-dessous pour la première commande
- Nom de commande : Centos7_Check_Docker_run
- Type de commande : Vérification
- Ligne de commande : $USER1$/check_centreon_nrpe3 -H $HOSTADDRESS$ -c check_docker -t 60 -a $ARG1$
- Activer le shell : False (non coché)
- Exemple d'arguments : vide
- Description des arguments : ARG1 : Nom du contenaire à surveiller
- Description des macros : videNous devons créer d'autre commande pour :
- Centos7_Check_Docker_cpu
- Centos7_Check_Docker_memory
- Centos7_Check_Docker_networkNous retournons sur la page de création des Templates
Nous allons remplir l’ensemble des champs comme ci-dessous pour la Template dans la partie " Informations génèrales "
- Alias : Centos7_Check_Docker_run
- Nom : Centos7_Check_Docker_run
- Modèle : vide
- Commande de vérification : Centos7_Check_Docker_run
- Macro personnalisées : vide
- Arguments : front-proxy_service1_1
- Période de contrôle : 24x7
- Nombre de contrôles avant validation de l'état : 2
- Intervalle normal de contrôle : 2
- Intervalle non-régulier de contrôle : 2
- Contrôle actif activé : Défaut
- Contrôle passif activé : Défaut
- Est volatile : DéfautNous allons remplir l’ensemble des champs comme ci-dessous pour la Template dans la partie " Notifications "
- Notification activée : Défaut
- Contacts liés : vide
- Groupes de contacts liés : vide
- Intervalle de notification : 2
- Période de notification : 24x7
- Type de notification : Alerte / Inconnu / Critique
- Délai de première notification : 2
- Délai de première notification de recouvrement : 2Nous devons créer d'autre Templates pour :
- Centos7_Check_Docker_cpu
- Centos7_Check_Docker_memory
- Centos7_Check_Docker_networkDans notre génèrateur de fichier CLAPI nous devons rajouter les lignes suivante
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;Etat Front-Proxy;Centos7_Check_Docker_run"
./centreon -u admin -p centreon -o SERVICE -a setparam -v "Rancher01;Etat Front-Proxy;check_command_arguments;!front-proxy_service1_1"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;CPU Front-Proxy;Centos7_Check_Docker_cpu"
./centreon -u admin -p centreon -o SERVICE -a setparam -v "Rancher01;CPU Front-Proxy;check_command_arguments;!front-proxy_service1_1"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;Memoire Front-Proxy;Centos7_Check_Docker_memory"
./centreon -u admin -p centreon -o SERVICE -a setparam -v "Rancher01;Memoire Front-Proxy;check_command_arguments;!front-proxy_service1_1"
./centreon -u admin -p centreon -o SERVICE -a add -v "Rancher01;NETWORK Front-Proxy;Centos7_Check_Docker_network"
./centreon -u admin -p centreon -o SERVICE -a setparam -v "Rancher01;NETWORK Front-Proxy;check_command_arguments;!front-proxy_service1_1"Ainsi CLAPI nous rajout automatiquement les nouvelles sondes sur Rancher01.
Pour d'autre hote, nous devrons simplement remplacer le premier Rancher01 de chaque ligne par le nom du nouvel hôte, Etat Front-Proxy par le nom que l'on désire donner à la sonde et le deuxieme front-proxy_service1_1 de la deuxieme ligne par le nom de l'un des contenaires que l'on désire surveiller.Dans notre ferme Rancher, nous nous retrouvons avec comme monitoring :
- Centreon qui contrôle l'état des hôtes
- l'état des services Rancher avec Webinject et Check_docker
- l'état des flux avec Weave ScopeDans un prochain article j'aborderai comment embarquer du monitoring dans un composant docker.