0

J'ai implémenté une application de service Windows qui sera déployée sur plusieurs machines et exécutée simultanément pour traiter des tâches dans une file d'attente centrale. J'ai un fichier journal pour chaque instance de service en cours d'exécution. Mais je veux être en mesure de surveiller toutes les instances du service et de récupérer des informations spécifiques à l'application, telles que le nom et l'identifiant de la tâche traitée par chaque service, périodiquement. Je pense à ajouter un service web sur chaque machine pour exposer ces informations en lecture seule et écrire une autre application (peut-être une application web) pour récupérer ces informations sur le réseau et les afficher correctement. Mais est-ce la bonne approche? D'autres pensées? Et je préfère ne pas utiliser de produit disponible sur le marché. S'il vous plaît fournir vos conseils.Surveillance de plusieurs instances de service Windows dans un cluster de machine

Merci d'avance!

[J'essaie de fournir mon implémentation ci-dessous comme réponse. Lisez si vous êtes intéressé. Merci.]

Répondre

0

J'ai fini par implémenter quelque chose de très similaire à ce que Reed Copsey a suggéré. Puisque l'application est déjà un service Windows, je définis un contrat de service/données pour les informations que je veux exposer et héberger le WCF sur le même service. Cette solution permet à mon client, qu'il s'agisse d'un planificateur ou d'une application d'interface utilisateur, de récupérer les informations de toutes les instances de service exécutées dans le cluster.

0

Il peut être trop cher, mais vérifiez System Center Operations Manager. Si vous voulez donner des informations de type "tableau de bord" au statut non seulement de vos applications, mais aussi des machines et des bases de données sur plusieurs machines (ou à travers un centre de données), SCOM est un bon point de départ.

1

Si votre service avait une API pour récupérer ces informations via le réseau, il serait assez facile de faire un client qui a vérifié l'état de tous les serveurs en cours d'exécution.

Voici le nombre de services de cluster computing qui fonctionnent: ils s'exécutent et un client peut planifier des tâches et les interroger. Toute technologie peut être utilisée ici, bien que pour .NET, WCF rendrait probablement cela assez facile et robuste.