Мониторинг пользовательской службы Windows - PullRequest
2 голосов
/ 20 декабря 2010

Я создал приложение службы Windows, используя Visual Studio .NET и C #.Этот сервис будет развернут на нескольких сотнях машин, и я ищу надежный способ мониторинга приложения.Под монитором я имею в виду, что я просто хочу убедиться, что он работает, и проверить состояние нескольких настроек на каждом клиенте.

Есть ли распространенный способ сделать это?

Ответы [ 3 ]

7 голосов
/ 20 декабря 2010

Самое простое, что нужно сделать - это заставить каждое приложение «позвонить домой». Создайте одно центральное приложение, предпочтительно веб-приложение, и пусть удаленные приложения будут вызывать центральное приложение в любой необходимый вам интервал. Они могут включать дополнительную информацию, которую вы хотите отслеживать.

Ведите список того, где развернуто приложение, и если вы не получите ни одного звонка из списка в течение ожидаемого периода времени, то вы знаете, что он не в сети.

Если вы не можете изменить фактическое приложение, которое вы отслеживаете, то напишите небольшое приложение-компаньон, которое может запускаться как запланированные задачи, выполнять те же локальные проверки и перезванивать в центральное приложение.

Мы делаем это с тысячами клиентских машин по всему миру, и это хорошо работает.

5 голосов
/ 20 декабря 2010

Вы можете написать небольшую служебную программу для монитора, которая проверяет состояние службы через SCM и предоставляет простой HTTP-интерфейс, чтобы вы могли опрашивать состояние.В основном это будет просто большой цикл с некоторыми отчетами, если состояние службы изменится.

while (true)
{
    string serviceName = "NameOfYourService";
    ServiceController Svc = new ServiceController(serviceName);
    if (Svc.Status != ServiceControllerStatus.Running)
    {
        //Do reporting/set status here
    }
    Thread.Sleep(5000);
}
0 голосов
/ 03 июля 2019

Вы можете воспользоваться инструментом мониторинга, например Zabbix .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...