我在 Amazon EC2 上运行几个服务器集群。最近,我们遇到了操作系统未清理 TIME_WAIT 状态下的连接的问题,因此我想创建一个警报,以便在服务器达到 TIME_WAIT 中的特定连接阈值时通知我。我可以创建一个简单的批处理文件来执行此操作 (netstat -an |find/c "TIME_WAIT"> count.txt),但问题是我的监控软件存在于我的公司网络中,所以我没有办法远程调用该命令。
我在每个集群中都运行了一个网络服务器。我想创建一个 Web 服务,它将接受我要检查的服务器的名称作为参数,然后调用每个服务器,返回处于 TIME_WAIT 状态的连接数。所有这些机器都运行 Windows Server 2008。
换句话说,我公司 LAN 上的服务器将向 EC2 中的 Web 服务器发出 GET http 请求。然后,该 Web 服务器将远程计算 EC2 中另一台服务器上 TIME_WAIT 中的连接数。 EC2 机器不在域中。这是可能的还是有更简单的方法可以省去我的麻烦?
一个绝对的要求是所有的调用和监控必须由我的公司 LAN 上的监控应用程序集中管理。
最佳答案
您应该在 .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。
关于.net - 如何使用 .NET 计算 EC2 服务器上的 TIME_WAIT 连接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5444631/