Hello, nous allons voir dans cet article comment superviser votre infrastructure Microsoft Skype for Business avec Centreon, Centreon plugin pack (NRPE) et NSClient.
Ce qu’il vous faut :
- Un accès à vos serveurs SFB (Skype for Business)
- Serveur EDGE = DMZ
- Serveur Frontend = LAN
- Télécharger NSClient++ et l’installer sur votre serveur Edge & Frontend
- Voir l’installation & la configuration ici (j’ai la même install) : /#Installation_NSClient_sous_Windows
- Télécharger les scripts PowerShell :Check_FrontendServicesCheck & Skype_EdgeServicesCheck
- Skype_FrontendServicesCheck : sur votre serveur Frontend
- Skype_EdgeServicesCheck : sur votre serveur Edge
- Voir plus de scripts pour la supervision SFB : Microsoft-Skype-for-Business
Si vous avez un serveur MSSQL :
- Supervision de Microsoft Server SQL (MSSQL) : supervision-microsoft-sql-server-avec-centreon/
Supervision Skype For Business
Voir le lien ci-dessus pour l’installation & la configuration NSClient++ sous Windows.
J’ai hébergé les deux scripts sur mon site au cas ou :
- Supervision Skype for Business Frontend : Check_Frontend_Server
- Supervision Skype for Business Edge : Check_Edge_Server
Envoyez les scripts sur vos serveur Skype. Par exemple dans : C:\Centreon
Modifier le script sur votre serveur Frontend. Il faut vérifier que tous les services sont bien présent dans le script : Skype_FrontendServicesCheck.ps1
Editer uniquement la ligne suivante :
# Microsoft Skype for Business - Frontend Server Services Check # # [...] # # Configuration: # ==================== # Create a subset of the previous array for services you want to monitor # Syntax: $ServicesToCheckArray = "Service1","Service2","Service3"; $ServicesToCheckArray="RTCASMCU","RTCAVMCU","RTCCLSAGT","RtcSrv","RTCIMMCU","REPLICA","RTCDATAMCU"; # Note: The RTCATS (Lync Server Audio Test Service) will auto start and stop on its own. So the best way is not to monitor it here. [...]
Remarque : les services possibles : $ServicesToCheckArray = « RTCASMCU », »RTCAVMCU », »RTCPDPAUTH », »RTCPDPCORE », »RTCCPS », »RTCCLSAGT », »RTCCAS », »RTCCAA », « RtcSrv », »RTCIMMCU », »REPLICA », »RTCRGS », »RTCDATAMCU », »RTCXMPPTGW »;
Pour vérifier que vous avez les bons services, allez simplement dans service Windows de votre serveur Frontend :
On fait la même chose sur votre serveur Edge. Il faut vérifier que tous les services sont bien présents dans le script. : Skype_EdgeServicesCheck.ps1
Editer uniquement la ligne suivante :
# Microsoft Skype for Business - Edge Server Services Check # # [...] # # Configuration: # ==================== # Create a subset of the previous array for services you want to monitor # Syntax: $ServicesToCheckArray = "Service1","Service2","Service3"; # $ServicesToCheckArray="RtcSrv","RTCMRAUTH","RTCMEDIARELAY","RTCCLSAGT","REPLICA","RTCDATAPROXY"; # # 6.) # restart the NSClient++ Service [...]
Remarque : les services possibles : $ServicesToCheckArray = « RTCSRV », »RTCMRAUTH », »RTCMEDIARELAY », »RTCCLSAGT », »REPLICA », »RTCDATAPROXY »;
Pour vérifier que vous avez les bons services, allez simplement dans service Windows de votre serveur Edge :
Configuration nsclient.ini
Avant de passer à la supervision, il faut configurer les commandes dans le fichier de conf NSClient qui se trouve ici (par défaut) : C:\Program Files\NSClient++\nsclient.ini
Sur le serveur Frontend :
[/settings/external scripts/scripts] allow arguments = true allow nasty characters = true Skype_FrontendServicesCheck=cmd /c echo C:\Centreon\Skype_FrontendServicesCheck.ps1 | powershell.exe -command -
Nom de la commande : Skype_FrontendServicesCheck
Redémarrer le service NSClient :
ATTENTION : Rebooter le service NSClient++
Remarque : après chaque modification dans le fichier de configuration NSClient, il faut relancer le service.
Sur le serveur Edge :
[/settings/external scripts/scripts] allow arguments = true allow nasty characters = true Skype_EdgeServicesCheck=cmd /c echo C:\Centreon\Skype_EdgeServicesCheck.ps1 | powershell.exe -command -
Nom de la commande : Skype_EdgeServicesCheck
Redémarrer le service NSClient :
ATTENTION : Rebooter le service NSClient++
Remarque : après chaque modification dans le fichier de configuration NSClient, il faut relancer le service.
Voici mon fichier de configuration :
# If you want to fill this file with all available options run the following command: # nscp settings --generate --add-defaults --load-all # If you want to activate a module and bring in all its options use: # nscp settings --activate-module <MODULE NAME> --add-defaults # For details run: nscp settings --help [/settings/default] password = piXelabs.fr allowed hosts = 127.0.0.1,192.168.1.5 [/settings/NRPE/server] insecure = true use ssl = ssl options = verify mode = false allow arguments = true allow nasty characters = true [/modules] CheckNSCP = enabled WEBServer = enabled CheckSystem = enabled NSClientServer = enabled NSCAClient = enabled NRPEServer = enabled CheckExternalScripts = enabled CheckHelpers = enabled CheckEventLog = enabled CheckDisk = enabled [/settings/external scripts] allow arguments = true allow nasty characters = true [/settings/external scripts/wrappings] allow arguments = true allow nasty characters = true bat = scripts\\%SCRIPT% %ARGS% vbs = cscript.exe //T:30 //NoLogo scripts\\lib\\wrapper.vbs %SCRIPT% %ARGS% ps1 = cmd /c echo If (-Not (Test-Path "scripts\%SCRIPT%") ) { Write-Host "UNKNOWN: Script `"%SCRIPT%`" not found."; exit(3) }; scripts\%SCRIPT% $ARGS$; exit($lastexitcode) | powershell.exe /noprofile -command - [/settings/external scripts/alias] allow arguments = true allow nasty characters = true alias_cpu=checkCPU warn=95 crit=90 time=5m time=1m time=30s alias_cpu_ex=checkCPU warn=$ARG1$ crit=$ARG2$ time=5m time=1m time=30s alias_mem=checkMem MaxWarn=80% MaxCrit=90% ShowAll=long type=physical type=virtual type=paged type=page alias_up=checkUpTime MinWarn=1d MinWarn=1h alias_disk=CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED alias_disk_loose=CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED ignore-unreadable alias_volumes=CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED alias_volumes_loose=CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED ignore-unreadable alias_service=checkServiceState CheckAll alias_service_ex=checkServiceState CheckAll "exclude=Net Driver HPZ12" "exclude=Pml Driver HPZ12" exclude=stisvc alias_process=checkProcState "$ARG1$=started" alias_process_stopped=checkProcState "$ARG1$=stopped" alias_process_count=checkProcState MaxWarnCount=$ARG2$ MaxCritCount=$ARG3$ "$ARG1$=started" alias_process_hung=checkProcState MaxWarnCount=1 MaxCritCount=1 "$ARG1$=hung" alias_event_log=CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -2d AND severity NOT IN ('success', 'informational') AND source != 'SideBySide'" truncate=800 unique descriptions "syntax=%severity%: %source%: %message% (%count%)" alias_file_size=CheckFiles "filter=size > $ARG2$" "path=$ARG1$" MaxWarn=1 MaxCrit=1 "syntax=%filename% %size%" max-dir-depth=10 alias_file_age=checkFile2 filter=out "file=$ARG1$" filter-written=>1d MaxWarn=1 MaxCrit=1 "syntax=%filename% %write%" alias_sched_all=CheckTaskSched "filter=exit_code ne 0" "syntax=%title%: %exit_code%" warn=>0 alias_sched_long=CheckTaskSched "filter=status = 'running' AND most_recent_run_time < -$ARG1$" "syntax=%title% (%most_recent_run_time%)" warn=>0 alias_sched_task=CheckTaskSched "filter=title eq '$ARG1$' AND exit_code ne 0" "syntax=%title% (%most_recent_run_time%)" warn=>0 alias_updates=check_updates -warning 0 -critical 0 check_ok=CheckOK Everything is fine! [/settings/external scripts/scripts] allow arguments = true allow nasty characters = true Skype_FrontendServicesCheck=cmd /c echo C:\Centreon\Skype_FrontendServicesCheck.ps1 | powershell.exe -command - Skype_EdgeServicesCheck=cmd /c echo C:\Centreon\Skype_EdgeServicesCheck.ps1 | powershell.exe -command - [/settings/external scripts/wrapped scripts] allow arguments = true allow nasty characters = true ; check_updates=check_updates.vbs $ARG1$ $ARG2$
Supervision via Centreon Server
Connectez-vous en SSH sur votre serveur afin de tester la supervision en ligne de commande.
cd /usr/lib/centreon/plugins
Check Frontend Services : 192.168.1.31
Rappel : Skype_FrontendServicesCheck=cmd /c echo C:\Centreon\Skype_FrontendServicesCheck.ps1 | powershell.exe -command –
[root@pixelabs plugins]# perl centreon_plugins.pl --plugin=apps::protocols::nrpe::plugin --mode=query --hostname=192.168.1.31 --custommode=nrpe --command='Skype_FrontendServicesCheck' --nrpe-timeout=30 --sanitize-message OK: All services are up and running [root@pixelabs plugins]#
Check Edge Services : 172.16.3.12
Rappel :
Skype_EdgeServicesCheck=cmd /c echo C:\Centreon\Skype_EdgeServicesCheck.ps1 | powershell.exe -command -
[root@pixelabs plugins]# perl centreon_plugins.pl --plugin=apps::protocols::nrpe::plugin --mode=query --hostname=172.16.2.80 --custommode=nrpe --command='Skype_EdgeServicesCheck' --nrpe-timeout=30 --sanitize-message OK: All services are up and running [root@pixelabs plugins]#
Supervision via Centreon Web
Passons maintenant à la supervision via Centreon web. Nous allons utiliser le protocole NRPE présent dans le plugin pack Centreon.
- Création de commande unique NRPE
- Création d’hôtes (Skype Edge & Frontend)
- Création de modèle de service
- Création de services nécessaires
- Check-CPU (pour les deux serveurs)
- Check-Disk (pour les deux serveurs)
- Check-Memory (pour les deux serveurs)
- Check-Traffic (pour les deux serveurs)
- Check-Edge-Services (pour le serveur Edge)
- Check-Frondend-Services (Pour le serveur Frondend)
- Export de la configuration
- Vérifier l’état des services.
Les macros nécessaires
- $_SERVICEMODE$
- $_SERVICESUBCOMMAND$
- $_SERVICECOMMAND$
- $_SERVICETIMEOUT$
Allez dans : Configuration > Collecteurs > Ressources
- Cliquez sur Ajouter
- Nom de la ressource : $_SERVICEMODE$
- Valeur de la ressource : 0
- Lié au collecteur : Central
- Statut : activé
- Cliquez sur Sauvegarder
- Répéter l’opération pour les autres macros ci-dessus.
Exemple ici : #Ajout_des_macros
Création de commande Web
Allez dans : Configuration > Commandes > Contrôles
- Cliquez sur Ajouter
- Nom de la commande : Check-Protocols-NRPE
- Type de commande : vérifier
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --custommode=$_SERVICESUBCOMMAND$ --command=$_SERVICECOMMAND$ --nrpe-timeout=$_SERVICETIMEOUT$ $_SERVICEOPTION$
Création d’hôte & Service
Pour la création d’hôte, vous avez un exemple ici : /#Creation_d’hôte
Pour la création d’un modèle de service, la même chose ici, changer simplement le nom : #Creation_de_modele_de_service
Nom de mon modèle : NRPE-Protocols
Création de Services Frontend
Allez dans : Configuration > Services > Services par hôte
- Cliquez sur Ajouter
- Description : Check-Frontend-Services
- Lié aux hôtes : Serveur Skype Frontend
- Modèle de service : NRPE-Protocols
- COMMAND : Skype_FrontendServicesCheck
- Cliquez sur Sauvegarder
Remarque : ne pas modifier les champs en orange. Ajouter simplement le nom de votre commande dans le champ vide (COMMAND).
Création de Services Edge
Allez dans : Configuration > Services > Services par hôte
- Cliquez sur Ajouter
- Description : Check-Frontend-Services
- Lié aux hôtes :Serveur Skype Edge
- Modèle de service : NRPE-Protocols
- COMMAND : Skype_EdgeServicesCheck
- Cliquez sur Sauvegarder
Remarque : ne pas modifier les champs en orange. Ajouter simplement le nom de votre commande dans le champ vide (COMMAND).
Exporter le collecteur Central : Allez dans Configuration > Collecteurs
- Cochez le collecteur Central
- Cliquez surExporter la configuration
Résultat
Voilà, c’est terminé pour la supervision de Skype for Business :
N’hésitez pas si vous avez besoin d’aide. Le forum d’entraide est à votre disposition.
Bonne journée à tous et à bientôt.
Supervision Systèmes & Réseaux
Voir mes autres articles sur la supervision :
- Supervision Certificat HTTPS/Windows : supervision-des-certificats-https-windows/
- Supervision Web HTTP(S) : supervision-https-response-expected-content-centreon/
- Supervision ORACLE BDD : oracle-database-monitoring-centreon-plugins/
- Supervision EMC VNX : vnx5300-vnx5200-monitoring-centreon/
- Supervision MSSQL : microsoft-sql-server-monitoring/
- Supervision Switch CISCO : switch-cisco-centreon-partie-1-2/
- Supervision VMWARE ESXi : vmware-esxi-6-7-monitoring/
- Supervision EXCHANGE Server : exchange-server-2016-monitoring-actif/
- Supervision Quotas Windows : supervision-des-quotas-windows-nrpe-nsclient/
- Supervision Skype for Business : supervision-microsoft-skype-for-business/
- Supervision HPE Proliant Gen10 : supervision-hpe-proliant-gen10-snmp-restapi/
- Supervision NETAPP SANTricity : supervision-netapp-santricity-storage-restapi/