我在尋找一些靈感來了解如何訪問SCOM收集的指標?本質上,我想提取CPU,內存和磁盤利用率度量標準,通過API對外部SaaS解決方案進行標準化和POST。如何訪問原始Microsoft SCOM度量標準?
由於SCOM已經收集這些指標似乎愚蠢安裝其他代理收集,儘管在這種情況下,第二劑是不是一個選項:/
我希望得到任何幫助。
感謝,
Ĵ
我在尋找一些靈感來了解如何訪問SCOM收集的指標?本質上,我想提取CPU,內存和磁盤利用率度量標準,通過API對外部SaaS解決方案進行標準化和POST。如何訪問原始Microsoft SCOM度量標準?
由於SCOM已經收集這些指標似乎愚蠢安裝其他代理收集,儘管在這種情況下,第二劑是不是一個選項:/
我希望得到任何幫助。
感謝,
Ĵ
只要我們正在談論的靈感 - 我將提供一些沒有技術細節的高層次的答案。我希望它的罰款,傑米:) 所以我在這裏可以看到三個選項來做到這一點: 1.獲得通過MOM API(又名SCOM SDK),這些指標。明顯的問題 - 管理服務器上的性能低下和負載過重 2.直接從SCOM數據庫獲取指標。我們正在談論的指標,所以你可能會決定不與運營DB但隨着數據倉庫DW,因爲所有指標被寫入各自的DB(一些議員不這樣做,但主要的議員一律傳送數據到兩個數據塊)的工作。我也投票支持DW DB,因爲它具有更透明的模式。 3.將您的自定義WRITE ACTION注入要將數據發送到SaaS的MP中。當然,這意味着最大的定製,並且不會對密封的國會議員的工作......讓我們離開這個選項只是爲了擾亂你的想象力:)
這就是我可以給辦公桌的時候了。我希望它有幫助。
羅馬。
所以,作爲羅馬建議,SCOM有兩個數據塊。操作和數據倉庫。收集性能數據的MP應明確地將收集的數據保存到數據庫或兩者。通常情況下,您會希望將數據保存到精心設計的MP中的兩個數據庫中。 DB之間的主要區別在於Operational DB存儲幾乎「實時」數據(間隔10-20分鐘),但DW DB具有每小時和每日彙總數據。
從這裏,我可以給你一對夫婦的兩個數據塊的例子。
操作DB:
此查詢列出所有可用的對象名,它們的實例和相應的計數器爲特定的Windows計算機,但是,您可以修改其他類查詢:
select pc.* from PerformanceCounterView pc join TypedManagedEntity tme on tme.TypedManagedEntityId = pc.ManagedEntityId join BaseManagedEntity bme on tme.BaseManagedEntityId = bme.BaseManagedEntityId where (bme.TopLevelHostEntityId = (select BaseManagedEntityId from BaseManagedEntity where FullName = 'Microsoft.Windows.Computer:'[email protected])) order by ObjectName, CounterName, InstanceName
然後,當您得到PerformanceSourceInternalId
時,可以通過運行以下查詢來提取實際數據:
declare @TZOffset as int = DATEDIFF(MINUTE,GETUTCDATE(),GETDATE())
SELECT SampleValue, DATEADD(MINUTE,@TZOffset,TimeSampled) as TS
FROM PerformanceDataAllView
where (PerformanceSourceInternalId = @SrcID)
and (TimeSampled > DATEADD(MINUTE,[email protected],@Start))
and (TimeSampled < DATEADD(MINUTE,[email protected],@End))
注意:兩個數據庫中的所有時間戳均爲UTC,因此最後一個查詢將其轉換回當地時間。
數據倉庫DB:
DECLARE @StartDateSubParam as datetime DECLARE @CurrentServerSubParam as int SET @StartDateSubParam = '2016-01-01' SET @CurrentServerSubParam =(select mecn.ManagedEntityRowId from vManagedEntity mecn where (mecn.Path is null) and (mecn.FullName like 'Microsoft.Windows.Computer:yourServer.Domain.com')) select me.[Path] as ServerName, me.ManagedEntityRowId as ManagedEntityID, AverageValue, MaxValue, MinValue, perfdata.StandardDeviation, perfdata.[DateTime] as SampleDay from Perf.vPerfHourly perfdata join vPerformanceRuleInstance pri on perfdata.PerformanceRuleInstanceRowId = pri.PerformanceRuleInstanceRowId join vPerformanceRule pr on pr.RuleRowId = pri.RuleRowId left join vManagedEntity me on me.ManagedEntityRowId = perfdata.ManagedEntityRowId where (pr.ObjectName = 'Processor Information') and (pr.CounterName = '% Processor Time') and (perfdata.[DateTime] > @StartDateSubParam) and (me.TopLevelHostManagedEntityRowId = @CurrentServerSubParam)
爲Windows計算機與Windows 2008 R2 +(其他城市處理器信息 - 早期的Windows版本>處理器),查詢選擇處理器的性能。 您可以將名稱更改爲其他可用計數器,也可以使用vPerfHourly
或vPerfDaily
進行每小時或每日彙總。
此致敬禮。