web-dev-qa-db-fra.com

Comment surveiller les services Windows

Je cherche un moyen de surveiller certains services Windows (sur Windows Server 2003) et redémarrer si nécessaire y. Les services sont sur différents serveurs et comprennent principalement des services SQL Server (par exemple SQL Server Agent), mais aussi certains services propriétaires.

Des alertes par e-mail envoyées si un service s'est arrêté seraient également très utiles.

39
Craig HB

Une version "peut-être assez" de cela est intégrée à Windows. Regardez dans l'onglet "Récupération" des propriétés du service, disponible via services.msc.

Vous pouvez agir sur un échec de service avec:

  • "Redémarrez le service"
  • "Exécutez un programme"
  • "Redémarrer le PC"

"Exécuter un programme" pourrait être un petit script qui envoie un mail, par exemple.

Si vous voulez une solution plus grande avec un tableau de bord de présentation et tout, il existe de nombreuses solutions de surveillance du système disponibles. Par exemple, SolarWinds IPMonitor vient à l'esprit, ou Nagios, ou Cacti.

43
Tomalak

Si vous êtes intéressé par la programmation .NET , l'espace de noms System.ServiceProcess fournit des classes qui vous permettent d'implémenter, d'installer, et contrôler les applications de service Windows.

Exemple simple, vérification et démarrage d'un service en C #:

var srv = new ServiceController("MyService");
Console.WriteLine("MyService Status {0}", srv.Status);
if (srv.Status != ServiceControllerStatus.Running)
    srv.Start();
15
gimel

Ils peuvent être des outils dédiés, mais je veux juste souligner l'outil wmic.

wmic /node:[hostname] service list

est capable de lister les services de n'importe quel ordinateur

WMIC SERVICE where caption='TELNET' CALL STARTSERVICE

redémarrerait le service telnet.

Si vous encapsulez wmic dans un langage de script (capable d'envoyer des e-mails), vous pouvez avoir l'outil de surveillance que vous recherchez.

6
VonC

Cela dépend exactement de ce que vous souhaitez surveiller:

  • Un service s'est en fait arrêté en ce qui concerne le Gestionnaire de contrôle des services (SCM).
  • Un service est tombé en panne sans que le SCM en soit conscient - cela est très fréquent en raison du threading.
  • Un service s'est bloqué à l'insu du SCM - également très courant.

Pour le premier élément, vous pouvez configurer le service pour lancer un script qui envoie une alerte par e-mail. Notez que cela peut être vraiment ennuyeux si le service continue de redémarrer en raison de circonstances indépendantes de sa volonté (dépendance à une connexion réseau instable ou autre).

Pour les deux autres éléments, vous aurez besoin d'un certain type de service de pulsation, que vous pouvez soit créer, soit acheter. Faites attention à ce que le moniteur de pulsation fonctionne localement sur les services qu'il surveille, car comme je l'ai écrit il y a quelque temps, le réseau n'est pas fiable .

5
RoadWarrior

Vous pouvez utiliser le Moniteur de service Windows gratuit ManageEngine. En utilisant cela, vous pouvez démarrer/arrêter les services dans le système distant.

http://www.manageengine.com/free-windows-service-monitor/free-windows-service-monitor-index.html

3
Gopinathan

+1 pour vous assurer que les services sont surveillés sur la machine locale.

Quelque chose comme Service Hawk peut surveiller vos services et les redémarrer s'ils doivent s'arrêter et vous envoie une alerte par e-mail. Vous pouvez également envisager de planifier des redémarrages périodiques car, comme mentionné par une autre affiche, le service ne s'affiche pas toujours comme "arrêté" en ce qui concerne le SCM. Dans ces cas, le service est bloqué, gelé ou autrement gâché et le redémarrage du service de temps en temps selon un calendrier le maintient fonctionner correctement. Il efface simplement la mémoire, etc. et lui donne un nouveau départ.

1
user188162

Vous pouvez essayer un VBScript simple comme celui-ci http://themonitoringguy.com/scripts-code/monitoring-windows-services-vbscript/

0
Cheyne

Eh bien, serez-vous intéressé par un produit Blade Logic appelé Blade Logic Configuration Manager? Ce n'est pas gratuit, mais il peut faire beaucoup plus que surveiller les services Windows. Regarder par-dessus. Il fera tout ce que vous avez demandé dans votre question et plus encore

0
Colwin