Как отслеживать состояние приложений с помощью .NET? - PullRequest
2 голосов
/ 14 января 2009

Мне нужно разработать систему, которая контролирует приложения, работающие в сети. Он должен собирать информацию о состоянии приложений, а также отправлять оповещения в случае возникновения проблем. Я решил разработать это приложение на .NET. Пожалуйста, укажите мне, есть ли API для этой цели или какие-либо идеи, которые могут помочь мне начать. Если вы предложите какие-либо другие рамки для разработки такого проекта, могу я узнать причины!

Спасибо

Ответы [ 6 ]

5 голосов
/ 14 января 2009

WMI (пространство имен System.Management) или подключение к мониторам производительности Windows даст вам хороший старт. Вы также можете настроить свою собственную инфраструктуру мониторинга «клиент-сервер», где программа запускается в качестве службы Windows на каждой из целевых машин. Затем указанная программа сможет запускать любой код мониторинга, например, проверяя, запущен ли процесс с определенным именем. Эта программа будет отправлять отчеты на центральный сервер (через удаленное взаимодействие, сокеты, веб-сервис или все, что вам удобно), содержащие отчет о состоянии данного компьютера. Центральный сервер может затем объединить статусы и отправить предупреждение или отключить клаксон или что-либо еще, что соответствует потребностям вашего бизнеса.

1 голос
/ 14 января 2009

Это зависит от того, имеете ли вы в виду любое произвольное приложение, без каких-либо изменений кодировки или поддержки внутри самих приложений? Или вы имеете в виду набор приложений, которые специально настроены для взаимодействия с системой мониторинга, которую вы создаете.

В последнем случае я бы добавил к приложениям канал удаленного взаимодействия, к которому система мониторинга могла бы подключаться на регулярной основе (функционально, как пинг), и с помощью общего метода GetStatus (), который сообщал бы о соответствующих показателях работоспособности. система мониторинга ... Я бы добавил эту функцию как отдельную зависимую сборку для каждого приложения, которое я хотел бы отслеживать ...

В первом случае, я полагаю, вам необходимо подключиться к API-интерфейсам ОС, особенно для связи с ОС, работающими на других компьютерах в сети (если это также является требованием). Как вы упомянули .Net, я предполагаю, что вы говорите о WIn32 Только машины. Я не знаю, какая функциональность раскрывается API WIn32 в этой области.

0 голосов
/ 14 января 2009

Чтобы быть более понятным, в моей сети у меня есть разные машины и серверы, на которых работают некоторые приложения, такие как базы данных, веб-приложения и многие другие.

Менеджеру этой сети необходимо приложение для мониторинга, которое предупреждает его, если какое-либо приложение не работает. Но у меня нет спецификаций о том, какие проблемы могут возникнуть !!

Могу ли я получить больше объяснений о WMI.

Спасибо.

0 голосов
/ 14 января 2009

Ну, мониторинг приложений не так прост, так как вам нужно посмотреть на другие компьютеры и что на них происходит.

Распространенными способами мониторинга сети являются использование пакета SNM-Protocol или переход в мир Windows по WMI-Path.

WMI упакован в .NET, но не в дыру, поэтому вам нужно знать, как обрабатывать WMI и создавать для этого свои собственные оболочки.

Бьюсь об заклад, SNMP не очень полезен, поскольку не все приложения поддерживают это.

0 голосов
/ 14 января 2009

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

Единственное, что я делал в прошлом, было подключить к самому планировщику (в Windows CE), чтобы отслеживать количество квантовых потоков, которые искали что-то слишком много процессора, но были предупреждены что подобные вещи имеют огромный потенциал для ошибок, они используют много самого процессора (и я понятия не имею, можете ли вы сделать это даже на рабочем столе).

0 голосов
/ 14 января 2009

Вам необходимо определить мониторинг. Как вы планируете контролировать приложения и какую информацию вы планируете записывать?

...