Windows et plus si affinités ?

Le blog des PFE sur Windows, MDT, WSUS, App-V, MDOP, Office, etc.

Le service de Monitoring de MDT 2012 - 2

  • Comments 3
  • Likes

Maintenant que nous avons installé ce service de monitoring, voyons un peu plus comment il fonctionne.

 

Nous avons donc un service .net qui est installé sur le poste/server MDT.

image

Ce service est un service Web qui utilise par défaut les ports 9800 (pour recevoir des évènements) et 9801 (pour être consulté).

Pour information, il est possible de déporter ce service sur une ou plusieurs autres machine via la ligne de commande :

InstallUtil.exe c:\Program Files\Microsoft Deployment Toolkit\Monitor\Microsoft.BDD.MonitorService.exe

(InstallUtil.exe est un outil présent dans le répertoire C:\Windows\Microsoft.Net\vX.X)

 

Afin de valider la bonne installation du service, vous pouvez ouvrir un navigateur à l’adresse http://monServer:9801/MDTMonitorData/

Voici l’information que vous devriez avoir :

image

 

Attention, l’installation manuelle du service n’ouvrira pas les ports de votre firewall, il faudra le faire manuellement (remarque également valable si vous utiliser un firewall tier). Si vous installez le service de monitoring via la console, les ports seront automatiquement ouvert dans le firewall Windows.

Pour pouvoir utiliser le service il vous faudra rajouter la ligne

EventService=http://monNouveauServer:9800 dans votre fichier CustomSettings.ini ou dans votre base de données.

 

1 – Comment sont remontées les évènements durant le déploiement ?

Dans les différents scripts la publication d’évènements se fait via la fonction CreateEvent(iEventID, iType, sMessage, arrParms) de la classe Logging (ZTIUtility.vbs)

Voici un example d’appel :

      oLogging.CreateEvent 41021, LogTypeInfo, "Setup completed successfully.", Array()

iEventID = ce paramètre contient l’identifiant (entier) du message (à vous de créer vos identifiants)

iType = le type d’évènement (entier)

    ' //     Public Const LogTypeInfo     = 1   ' Informational Message
    ' //     Public Const LogTypeWarning  = 2   ' Warning Message     
    ' //     Public Const LogTypeError    = 3   ' Error Message
    ' //     Public Const LogTypeVerbose  = 4   ' Verbose Messages only logged when Debug has been set.

sMessage = Message à envoyer (string)

arrParams = un tableau contenant des données supplémentaire à envoyer (n’est pas utilisé par le service de monitoring)

Cette fonction enregistre l’évènement sur le serveur via un appel HTTP du type :

      http://monServer:9800/MDTMonitorEvent/PostEvent?uniqueID=XXX&computerName=XXX&messageID=XXX&severity=XXX&stepName=XXX&currentStep=XXX&
totalSteps=XXX&id=XXX&dartIP=XXX&dartPort=XXX&dartTicket=XXX&vmHost=XXX&vmName=XXX

Notez que l’évènement est enregistré dans le service de monitoring uniquement si la variable EventService est paramétrée à http://monServer:9800

Il semble également possible de logger les évènements de monitoring dans un fichier texte sur un serveur en paramétrant la variable EventShare à quelque chose du type \\monServer\monShare

 

2 – Comment consommer ces informations à l’exterieur de la console ?

 

Les informations de monitoring étant stockée dans une base de données de type SQL Compact, seul un processus peut requêter cette base à la fois. Pour consomer les informations en dehors de la console, il vous faudra donc requeter le service via une requete de type http://monServer:9801/MDTMonitorData/Computers (attention IE le voit comme un feed, mais ne peut pas lire son contenu, il faut donc l’ouvrir avec un éditeur de texte).

image

Vous pouvez à partir de cela développer un outil pour lire ces informations sur une autre machine que celle de la console. Pour cela, vous pouvez par exemple importer le service en tant que référence dans Visual Studio afin qu’il vous génère les classes correpondantes aux différents object et ainsi développer votre application simplement :

image

Et ainsi faire une application comme celle que j’ai faite qui permet de suivre vos déploiements provenant de différents services de monitoring :

imageimage

  • très interressant.

    avec quoi as tu développe ton application qui parait super

  • Bonjour Nico,

    Désolé pour le temps de réponse. L'application a été développée en C#/XAML avec Visual Studio 2012 (une version Express existe normalement si tu le souhaites). Je n'ai malheureusement pas eu le temps de la finir, mais si je trouve le temps de le faire j'essayerais de la faire publier dans le store ou bien d'en rendre disponible le code sur codeplex :).

    Si tu souhaites plus d'information, n'hésites pas à envoyer un mail directement sur le blog via le lien "Email Blog Author".

  • Bonjour Nico,

    Je n'ai pas pu te répondre directement par mail, mais voici le site sur lequel l'application sera publiée:

    mdtmetromonitoring.codeplex.com

    Elle devrait l'être dans quelques jours, le temps d'un petit travail administratif de mon coté.

    Tu y trouveras le code ainsi qu'un package de test. L'application n'est pas finale, il faudra que je trouve un peu de temps pour le faire (si tu souhaites le faire et en faire profiter d'autres personnes, tu peux venir me rejoindre dans le projet sur CodePlex ;)).

    Antoine