我在Amazon EC2上运行了几个服务器集群。最近,我们遇到了操作系统没有在TIME_WAIT状态下清理连接的问题,因此我想创建一个警报,以便在服务器达到TIME_WAIT中的某个连接阈值时通知我。我可以创建一个简单的批处理文件来执行此操作(netstat -an | find / c“TIME_WAIT”> count.txt),但问题是我的监控软件存在于我的公司网络上,所以我没办法远程调用该命令。
我在每个群集中都运行了一个Web服务器。我想创建一个Web服务,它接受我想要检查的服务器的名称作为参数,然后调用每个服务器,返回TIME_WAIT状态的连接数。所有这些计算机都运行Windows Server 2008。
换句话说,公司LAN上的服务器将向EC2中的Web服务器发出GET http请求。然后,该Web服务器将远程计算EC2中另一台服务器上TIME_WAIT中的连接数。 EC2机器不在域中。这有可能还是有一种更方便的方法可以省去我的麻烦?
绝对要求所有呼叫和监控必须由我公司LAN上的监控应用程序集中管理。
答案 0 :(得分:0)
您应该在.NET中查找WMI计数器,请参阅此问题的第二个答案:
How can I access netstat-like Ethernet statistics from a Windows program
和这个参考:
http://msdn.microsoft.com/en-us/library/ms257340(v=vs.80).aspx
如果有必要的凭据,可以远程调用WMI。