Supervision Microsoft Skype for Business

  • Auteur/autrice de la publication :
  • Dernière modification de la publication :22 novembre 2023
  • Post category:Supervision
  • Temps de lecture :15 min de lecture
  • Commentaires de la publication :0 commentaire

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