你们在web(或sql)服务器上监视什么“健康参数”(Windows 2008)?
内存,CPU,磁盘空间,事件日志,特定的网页,networking..更多?
如果达到了一些关键性的东西,比如在X%或者类似的东西上的内存使用率,你有没有这些报警?
我(或更准确的系统pipe理员)可以使用WhatsUp Gold作为监控工具。 但是现在我觉得几乎没有任何警报。
这取决于服务器在做什么。 例如,我知道我的Exchange 2007服务器将使用大量的内存,这就是Exchange所做的,它尽可能多地抓取,所以监视这个服务器的高RAM使用会让我整晚都清醒,但是我想知道我的磁盘空间越来越小,因为Exchange很容易停止使用低磁盘空间。 另一方面,我并不关心我的打印服务器上的磁盘使用情况。
真的,你需要看看你的服务器,并确定你需要知道什么,对他们正确运行的重要,什么是很好的知道历史或追踪的目的,什么是多余的。 当你确定什么是关键的,那么你真的应该有这些事件的警报或触发器设置,如果你不知道什么时候出错,监视什么点?
我刚刚花了几个月的时间来研究这个确切的问题。 我的研究集中在Nginx上,但是原理是一样的,可以应用于任何Web服务器(Windows或其他)。
首先,有一些理论:你想要监视整个系统堆栈中的指标 – 不只是Web服务器应用程序本身,还包括它运行的进程,运行的服务器以及服务器所在的主机提供商。 :
其次,要监视什么。 我煮了这14个项目。 YMMV取决于具体的安装/服务器软件,但我认为这些原则将适用于:
好奇的细节在这里:
[披露:我隶属于Scalyr公司,该公司负责链接指南,并为我撰写指南]
监测的想法是与基线进行比较。 如果你不知道这是否正常,那么知道你的磁盘使用率是90%,你的带宽是10GB /天是没有意义的。
基本上所有你可以便宜得到(所有的RAW数据应该相当便宜),logging一个基线,这将有助于你发现exception。 exception情况包括程序出错,占用磁盘空间,内存泄漏,内存使用增加,login用户数相同时进程数加倍等。
最重要的是你可以从原始数据中收集到什么,并经常logging这些数据的样本。 如果磁盘空间增长非常缓慢,则磁盘空间采样不需要每五分钟进行一次。
我监视CPU,磁盘空间,CPU队列,ping(检查机器是否运行),IIS服务正在运行,我调用一个ASPX页面来确保.NET很高兴和处理。 我login到应用程序传递用户名和密码为用户将确保页面加载并不会引发500或超时。
我通常不会监视使用的内存,因为通常是100%或接近100%。 IIS在保持内存正常方面做得不错,IIS每天都会重启应用程序池,默认情况下会清理任何残留的内容。
我倾向于不监视磁盘IO,因为它可以是所有其他地方。 在某些系统SQL,Exchange等上,我会跟踪每个驱动器的磁盘队列,但是具有非常高的阈值。 系统会飙升,所以我只想知道他们是否蝙蝠屎。