Как использовать .NET для подсчета количества соединений TIME_WAIT на сервере EC2 - PullRequest
1 голос
/ 26 марта 2011

Я использую несколько кластеров серверов на Amazon EC2. В последнее время мы столкнулись с проблемой, когда ОС не очищает соединение в состоянии TIME_WAIT, поэтому я хочу создать сигнал тревоги, чтобы уведомить меня, когда сервер достигнет определенного порога соединений в TIME_WAIT. Я могу создать простой командный файл для этого (netstat -an | find / c "TIME_WAIT"> count.txt), но проблема в том, что мое программное обеспечение для мониторинга существует в моей корпоративной сети, поэтому у меня нет возможности вызвать эту команду удаленно.

У меня есть веб-сервер, работающий в каждом из этих кластеров. Я хотел бы создать веб-службу, которая будет принимать имя сервера, который я хочу проверить в качестве параметра, а затем сделать вызов каждому из этих серверов, возвращая количество соединений в состоянии TIME_WAIT. Все эти машины работают под управлением Windows Server 2008.

Другими словами, сервер в моей корпоративной локальной сети отправит запрос GET http на веб-сервер в EC2. Затем этот веб-сервер будет удаленно считать количество подключений в TIME_WAIT на другом сервере в EC2. Машины EC2 НЕ находятся в домене. Возможно ли это или есть более простой способ избавить меня от неприятностей?

Абсолютным требованием является то, что все вызовы и мониторинг должны управляться централизованно моим приложением мониторинга в моей корпоративной локальной сети.

1 Ответ

0 голосов
/ 26 марта 2011

Вы должны посмотреть счетчики WMI в .NET, см. Второй ответ на этот вопрос:

Как получить доступ к статистике Ethernet, подобной netstat, из программы Windows

и эта ссылка:

http://msdn.microsoft.com/en-us/library/ms257340(v=vs.80).aspx

WMI может вызываться удаленно, если имеются необходимые учетные данные.

...