Supervision Microsoft Skype for Business

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 

Si vous avez un serveur MSSQL :

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 :

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 :

Skype Frontend Services Monitoring

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 :

Skype Edge Service Monitoring

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.

Reboot NSClient 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.

Reboot NSClient 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.

  1. Création de commande unique NRPE
  2. Création d’hôtes (Skype Edge & Frontend)
  3. Création de modèle de service
  4. Création de services nécessaires
    1. Check-CPU (pour les deux serveurs)
    2. Check-Disk (pour les deux serveurs)
    3. Check-Memory (pour les deux serveurs)
    4. Check-Traffic  (pour les deux serveurs)
    5. Check-Edge-Services (pour le serveur Edge)
    6. Check-Frondend-Services (Pour le serveur Frondend)
  5. Export de la configuration
  6. 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

Monitoring Frontend Skype for Business

  • 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

Monitoring Edge Skype for Business

  • 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

Exporter Collecteur Central

Résultat

Voilà, c’est terminé pour la supervision de Skype for Business :

Skype for Business Monitoring Centreon

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 :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *