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 taggué 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.


Installation

Récupération et extraction des données

Shinken Entreprise vous a transmis un fichier TAR.GZ contenant des dossiers et exécutables qui vous permettront de procéder à l'installation d'un Poller sur Windows.

Se connecter en administrateur sur le serveur, et extraire ce TAR.GZ sur le serveur Windows. (7Zip par exemple peut vous permettre d'effectuer cette extraction sur Windows)

Installations des dépendances

Afin de mettre en place le Poller il faut installer les dépendances suivantes (contenues à la racine du dossier):

  • python-2.7.6.amd64.msi [à installer en premier ]
  • pywin32-217.win-amd64-py2.7.exe
  • pycurl-7.19.3.1.win-amd64-py2.7.exe
  • egenix-pyopenssl-0.13.3.1.0.1.6.win-amd64-py2.7.msi
  • psutil-5.2.1.win-amd64-py2.7.exe

Note : laisser les chemins d'installations par défaut
 

Installation manuelle

  • Installation de CherryPy-3.2.4:
    • Ouvrir une commande DOS en Administrateur
    • Se déplacer dans le répertoire CherryPy-3.2.4 
    • Exécuter la commande c:\python27\python.exe setup.py install
  • Depuis l'explorateur Windows :
    • Copier le répertoire "shinken" vers C:\shinken
    • Copier le répertoire "shinkensolutions" vers C:\Python27\Lib\site-packages
    • Copier tools\srvany.exe dans c:\shinken\srvany\ [remplacer le fichier]
    • Copier context.json dans c:\shinken\var [remplacer le fichier]

Installation du service Automatique Windows 

 Ouvrir une commande DOS en Administrateur puis exécuter la commande :

  • sc create "Shinken-Poller" binpath= "c:\shinken\srvany\srvany.exe" DisplayName= "Shinken-Poller"
    • (ATTENTION: les espaces après les = sont nécessaires)

Depuis l'explorateur Windows :

  • Importer le fichier poller.reg dans votre registre en double cliquant dessus
  • Depuis la console MMC des services Windows (depuis les Outils d'Administration ou par la commande services.msc), changer le service Shinken-Poller en "Automatique" depuis les propriétés du service et changer le compte qui va exécuter le service (sur un compte administrateur local ou de domaine)
  • Démarrer alors le service en cliquant sur "démarrer" sur la ligne du service Shinken-Poller de la console MMC ou par la commande : net start Shinken-Poller
  • Vérifier qu'il est lancé avec :
    • 1/ le log C:\shinken\var\pollerd.log.DATE
    • 2/ le port 7771 qui doit être ouvert, vous pouvez le vérifier à l'aide de la commande netstat -an
    • 3/ une fois le nouveau Poller déclaré en configuration, depuis votre installation centrale, exécuter la commande shinken-healthcheck : vos Pollers doivent être valides et accessibles.
      • Note : une à deux minutes sont parfois nécessaires afin que la configuration soit diffusée

Troubleshooting

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

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, ouvrir une commande DOS en Administrateur et tester le démarrage en exécutant la commande:

    • c:\Python27\python.exe c:\shinken\bin\shinken-poller.py -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.

Erreur à l'installation de pywin32-217.win-amd64-py2.7.exe

Si à la fin de l'installation vous avez ce message d'erreur :

close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

Il faut faire l'installation depuis une invite de commande Windows :

  • Allez dans le dossier ou se trouve l'exécutable
  • Lancer la commande suivante en modifiant si besoin le compte :

    • runas /user:administrateur pywin32-217.win32-py2.7.exe


    • Mettre le mot de passe du compte
  • L'écran d'installation se lance et l'erreur n'apparait plus