首先介绍一些背景知识 - 我们在 Windows 2008 上运行 IIS 7。每个服务器运行大约 250 个网站,每个站点都有自己的应用程序池。
我需要一种方法来监视每个应用程序池是否崩溃和挂起,并在应用程序池无响应超过 2 分钟时发送电子邮件警报。
我考虑将一个虚拟目录映射到每个站点,并使用 ASP.NET 页面,我们可以通过现有的监控系统进行轮询(主机监控)。
还有其他人有这方面的经验吗?
答案1
性能计数器可按应用程序池(在APP_POOL_WAS
)和ASP.NET Apps
(后者,按 .NET 版本)获得。
这些包括应用程序池正常运行时间、请求数/秒和许多其他信息。
答案2
在 IIS 7 中,您可以使用 appcmd 来监视应用程序池。例如,在 CMD 中输入以下命令:
appcmd 列表 apppool /state:已启动
然后您应该获得正在运行的应用程序池列表。
我建议你用 appcmd 写一个脚本,并将该脚本作为调度任务。这样当某些应用程序池崩溃时,你就可以收到电子邮件通知。