Perfmon数据导入到SQL中

对不起,下面的文字墙。

在我的工作场所,我们有不lessExchange服务器和支持域控制器,目前全部由SCOM监控。 我已经在ASP.net网站上设置了某些监视元素,并由SQL DB支持。

我热衷于更密切地监视服务器,以便我们能够:

Baseline the servers better for historical comparison If a problem occurs we can pull out more raw data. 

为此,我想从Perfmon计数器中获取更多的数据。 我知道SCOM可以提取一些Perfmon的数据,但是我们的SCOM的实现是相当大的,pipe理它的人不希望我增加计数器的频率,经常足以使其有用。

同时查询SCOM数据库意味着我不能真正改变索引,控制我需要的数据的截断时间,或者真正控制我可能需要的数据。

我的问题实际上是我应该如何处理这个事情的另一个问题,而不是我如何实际拉取数据并插入数据,因为我已经有可以将数据提取并插入到SQL中的脚本。

松散地我们有服务器拆分如下:

 Exchange 2007 in Domain1.com Exchange 2010 in Domain2.com 

对于Exchange 2007/2010,服务器按照以下逻辑分割:

 Mailbox Servers Client Access Servers Hub Transport Servers Domain Controllers 

我想从上面的所有服务器中获取计数器的基本信息,然后深入了解特定的服务器types,例如,从邮箱服务器中提取RPC平均延迟,来自CAS服务器的连接数,提交的消息数/秒HT服务器等

所以我想要做的是创build4个脚本types,每个类的服务器,然后运行它们从每个服务器按计划logging一些数据,连接到我的SQL DB,然后将logging插入表。

对于我的SQL表,我应该为每个服务器类创build一个,还是只将所有logging放入一个表中?

在每个在SQL表中抛出所有数据的服务器上运行本地脚本是一个糟糕的主意? 我考虑远程收集数据,但是如果我只想每隔几分钟捕获一些数据,就会发现由networking延迟或其他因素引起的时间差异很大。

我也很想听听任何潜在的存档解决scheme,比如最近几天如何保持更频繁的logging(也许每隔5分钟为所有柜台5天),但保持较less的logging回溯到时间。

最后,我刚刚运行了一个远程集合,但是对于一组有限的数据,并且将间隔设置为每5分钟一次,这一点目前为止还不错。 我需要考虑数据保留,查询效率等问题,但同时我回答了自己的问题,没有人提出任何build议。