Contexte

Il est intéressant d'avoir un démon Poller disponible directement sous Windows afin d'avoir à disposition l'environnement de lancement soumis aux droits Windows.

Par exemple, une requête lancée en WMI ( via la sonde check_wmic.exe ) pourra utiliser les droits de l'utilisateur avec lequel a été démarré le service et ainsi ne pas avoir besoin d'un login/password pour sa requête.

  • Donc sur un environnement AD, si vous démarrez votre service en tant que compte de service administrateur sur le domaine, vous pourrez envoyer une requête sur vos hôtes depuis ce Poller, sans utiliser d'identifiant utilisateur ou de mot de passe dans la commande.
  • Votre nouveau Poller pourra donc être tagué de manière à récupérer du Scheduler uniquement des checks spécifiques exécutables depuis le serveur Windows.

Cette procédure vous permettra d'installer ou de mettre à jour ce Poller Windows.

Mise à jour

Pour les versions V02.08.01.08 et supérieurs, le Poller Shinken utilise désormais Python 3.11.
Il existe donc deux versions du protocole de mise à jour, en fonction de la version Python du Poller installée sur votre machine. 
Pour connaitre la version de Python de votre Poller vous pouvez lancer la commande suivante ( en tant qu'administrateur ) :
 


reg query HKLM\SYSTEM\CurrentControlSet\Services\Shinken-Poller\Parameters /v Application


Exemple : 

PS C:\Windows\system32> reg query HKLM\SYSTEM\CurrentControlSet\Services\Shinken-Poller\Parameters /v Application

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Shinken-Poller\Parameters
    Application    REG_SZ    c:\Python311\python.exe


En fonction de la version de Python de votre Poller des étapes diffèrent. Il sera précisé lorsque des manipulations spécifiques seront nécessaires avec le tag : [Maj Python 3] 



La mise à jour d'un démon Poller Windows est manuelle.

Sur votre serveur Windows, réalisez l'extraction du fichier compressé que vous avez téléchargé ( utilisez 7-zip par exemple ), et suivez les différentes étapes.

Arrêt démon Poller

Depuis le gestionnaire des services Windows, arrêtez le service "Shinken-Poller" ou depuis une commande DOS en administrateur :

net stop Shinken-Poller


Depuis le gestionnaire de tâche Windows, bien vérifier que les processus "python.exe" ( liés au service Shinken ) ne soient plus présents.

Si après l'arrêt du service Shinken-Poller, des processus "python.exe" sont toujours ouverts, vous pouvez les terminer.

Backup

Les manipulations de remplacement de fichiers pouvant être délicates, nous vous conseillons de faire une copie complète de c:\shinken dans un dossier de backup de votre choix ( exemple c:\temp\backup\ ).

[Maj Python 3] Mise à jour de python

Installation de python

  • Ouvrir une invite de commande en administrateur → Touche Windows, tapez "cmd" puis lancez cmd.exe en administrateur ( clic droit "Exécuter en tant qu'administrateur" ).
  • Se rendre dans le dossier issu de l'extraction de l'archive avec la commande cd ( le dossier contient, entre autres, 3 dossiers : shinken, shinkensolutions, Tools ).
  • Exécuter la commande suivante :
python-3.11.8-amd64.exe /quiet /passive  InstallAllUsers=1 Include_tcltk=0 DefaultAllUsersTargetDir=c:\\Python311  SimpleInstall=1

Mise à jour des clés de registre

Depuis l'explorateur Windows :

  • Importer le fichier  poller.reg  dans votre registre en double cliquant dessus

Remplacement des fichiers et mise à jour des dépendances

Mise à jour des dépendances

  • Pour installer les dépendances python du Poller Shinken exécuter, dans le dossier issu de l'extraction de l'archive, la commande suivante :
c://Python311//Scripts//pip.exe install -r requirements.txt --no-warn-script-location

Remplacement des fichiers

À APPLIQUER QUE SI ÇA N'EST PAS UN PATCH


Se placer à la racine de votre fichier décompressé :

xcopy /y .\context.json C:\shinken\var\context.json



  • Ouvrir une invite de commande en administrateur → Touche Windows, tapez "cmd" puis lancez cmd.exe en administrateur ( clic droit "Exécuter en tant qu'administrateur" ).
  • Se rendre dans le dossier issu de l'extraction de l'archive avec la commande cd. ( le dossier contient, entre autres, quatre autres dossiers : CherryPy-X.Y.Z, shinken, shinkensolutions, Tools )
  • Exécuter la suite de commandes suivante :


rmdir /s/q C:\shinken\shinken
rmdir /s/q C:\shinken\bin
xcopy /e/i/y .\shinken\shinken C:\shinken\shinken
xcopy /e/i/y .\shinken\bin C:\shinken\bin
xcopy /e/i/y .\shinken\modules C:\shinken\modules
xcopy /y .\openssl.cnf C:\shinken\etc\openssl.cnf

Si le python de votre Poller était en 3.11

rmdir /s/q C:\Python311\Lib\site-packages\shinkensolutions
xcopy /e/i/y .\shinkensolutions C:\Python311\Lib\site-packages\shinkensolutions

[Maj Python 3] Si le python de votre Poller était en 2.7

xcopy /e/i/y .\shinkensolutions C:\Python311\Lib\site-packages\shinkensolutions

Si l'extraction du dossier TAR.GZ n'a pas été faite à la racine du disque, la longueur des chemins d’accès peut dépasser les limites de xcopy et entrainer des dysfonctionnements de la commande.

Redémarrage du démon Poller

Depuis le gestionnaire des services Windows, démarrez le service "Shinken-Poller" ou depuis une commande DOS en administrateur :

net start Shinken-Poller


Troubleshooting

Configuration SSL

Pour paramétrer le daemon en SSL, il faut modifier le fichier c:\shinken\etc\daemons\pollerd-windows.ini et modifier le bloc suivant : 

#-- HTTPS  configuration --

Vous pourrez alors activer le SSL et paramétrer vos certificats.

Démarrage manuel du Poller - pour test

 

 Si le service Windows ne démarre pas, pour débugger, vous pouvez lancer le démarrage du Poller et tester le démarrage en exécutant les commandes suivantes :


set OPENSSL_CONF=C:\shinken\etc\openssl.cnf 
C:\Python311\python.exe -X utf8 c:\shinken\bin\shinken-poller -c c:\shinken\etc\daemons\pollerd-windows.ini
Set-Item -Path env:OPENSSL_CONF -Value "C:\shinken\etc\openssl.cnf" 
C:\Python311\python.exe -X utf8 c:\shinken\bin\shinken-poller -c c:\shinken\etc\daemons\pollerd-windows.ini 

Réseau

Bien vérifier que la communication réseau entre votre architecture Shinken et ce nouveau Poller Windows est opérationnelle.

  • En effet, un firewall pourrait bloquer des communications importantes, ce qui pourrait provoquer des problèmes entre les différents démons.
  • Le port d'écoute 7771 doit être également ouvert sur le Poller Windows.

Si besoin, suivant les définitions des démons de votre configuration, la résolution de nom doit également permettre au Poller Windows de communiquer avec les autres démons et inversement.

Droits

Lors de vos installations, bien penser à être connecté en administrateur local de la machine, ou administrateur du domaine si le serveur est sur un domaine.

Limitation du Poller

Il n'est pas possible de limiter le CPU pour un Poller Windows. Par conséquent, la propriété "max_cpu_queue_per_cpu" dans la définition du Poller, n'aura aucun effet.

En revanche, la limitation sur la mémoire est effective.