標籤:linux sql windows 作業系統 scom
核心:SCOM幾乎所有的資料都是存放在DB中;
痛點:DB表結構、欄位關聯、多表關聯;
方案:從DB中擷取;
一般情況下,如果僅僅是為了查看資料,由於管理組件內建了這些監視器,只需通過SCOM控制台直接查看相應的儀表板,樹狀圖節點路徑如下:“監視—MicrosoftWindows 伺服器—狀況監控—磁碟健全狀態“即可在展示台中看到邏輯磁碟容量大小。(當然也內建了作業系統、群集、網路的健全狀態等儀表板,本文只針對邏輯磁碟空間進行說明。)如
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/76/38/wKioL1ZNZETAEdvTAAEn9Nz3sHk732.png" title="SCOM控制台查看.png" alt="wKioL1ZNZETAEdvTAAEn9Nz3sHk732.png" />
如果第三方工具要即時從SCOM中擷取到資料,並進行處理時會發現第三方工具存在無法直接調用監視器的情況,這時也許會採取另外一個辦法:建立規則(而規則是利用WMI進行擷取資料的,第三方工具可以直接調用WMI工作)。
不過會存一些問題,比如SCOM是否重複監控:如果磁碟容量發生警報,內建的監視器會警示,另外自訂的規則是否存在同時警示。
SCOM警報規則需要手動關閉,這是警報監視器最大的區別,在實際環境中多數推崇能使用監視器的就儘可能使用監視器。採用監視器一來是可即時反饋對象的正異常情況,二來可減輕營運人員的工作負擔。
由於SCOM監控擷取到的資料均存放到OperationsManager這個資料庫中的,這時可以考慮讓第三方工具直接從資料庫擷取需要的資料。OperationsManager資料表結構不清楚,是否存在某些表和欄位存放邏輯磁碟大小的呢?
這時可通過SQL語句進行查詢和瞭解表結構和欄位間的關聯
擷取所有表名
SELECT Name FROM DatabaseName..SysObjects Where XType=‘U‘ ORDER BY Name
XType=‘U‘:表示所有使用者表;
XType=‘S‘:表示所有系統資料表;
擷取所有欄位名
SELECT Name FROM SysColumns WHERE id=Object_Id(‘TableName‘)
擷取主鍵欄位
SELECT name FROM SysColumns WHERE id=Object_Id(‘表名‘) and colid=(select top 1 keyno from sysindexkeys where id=Object_Id(‘表名‘))
通過分析發現SCOM的DB中存在以下列表:
總結通式:MT_Microsoft$作業系統類型$版本$LogicalDisk。
註:微軟和開源作業系統表存在差異
MT_Microsoft$AIX$5$3$LogicalDiskMT_Microsoft$AIX$6$1$LogicalDiskMT_Microsoft$AIX$7$LogicalDiskMT_Microsoft$Linux$RHEL$4$LogicalDiskMT_Microsoft$Linux$RHEL$5$LogicalDiskMT_Microsoft$Linux$RHEL$6$LogicalDiskMT_Microsoft$Linux$SLES$10$LogicalDiskMT_Microsoft$Linux$SLES$11$LogicalDiskMT_Microsoft$Linux$SLES$9$LogicalDiskMT_Microsoft$Linux$Universal$LogicalDiskMT_Microsoft$Windows$Server$2000$LogicalDiskMT_Microsoft$Windows$Server$2003$LogicalDiskMT_Microsoft$Windows$Server$2008$LogicalDiskMT_Microsoft$Windows$Server$6$2$LogicalDisk
涉及到表:
[OperationsManager].[dbo].[BaseManagedEntity][OperationsManager].[dbo].[MT_Microsoft$Windows$Server$2000$LogicalDisk]
SQL核心語句:
SELECT T1.Path ,T2000.[FileSystem_0D653B7C_3F9D_0EA1_6FF0_3CEF476DBED5] as ‘檔案系統‘ ,T2000.[DeviceID_DF2FF114_783D_E8EC_DC76_0FC98EF70DB4] as ‘邏輯分區‘ ,T2000.[Size_F703D24D_CD51_EAFE_9356_70A323192928] as ‘大小(位元組)‘ into #TempTB1 FROM [OperationsManager].[dbo].[MT_Microsoft$Windows$Server$2000$LogicalDisk] T2000,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = T2000.BaseManagedEntityId
:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/76/38/wKioL1ZNZGbQy4ebAAB5-TPqL3o015.png" title="SQL.png" alt="wKioL1ZNZGbQy4ebAAB5-TPqL3o015.png" />
附SQL語句:
USE OperationsManagerSELECT T1.Path ,T2000.[FileSystem_0D653B7C_3F9D_0EA1_6FF0_3CEF476DBED5] as ‘檔案系統‘ ,T2000.[DeviceID_DF2FF114_783D_E8EC_DC76_0FC98EF70DB4] as ‘邏輯分區‘ ,T2000.[Size_F703D24D_CD51_EAFE_9356_70A323192928] as ‘大小(位元組)‘ into #TempTB1 FROM [OperationsManager].[dbo].[MT_Microsoft$Windows$Server$2000$LogicalDisk] T2000,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = T2000.BaseManagedEntityIdinsert into #TempTB1 SELECT T1.Path ,T2003.[FileSystem_0D653B7C_3F9D_0EA1_6FF0_3CEF476DBED5] ,T2003.[DeviceID_DF2FF114_783D_E8EC_DC76_0FC98EF70DB4] ,T2003.[Size_F703D24D_CD51_EAFE_9356_70A323192928]FROM [OperationsManager].[dbo].[MT_Microsoft$Windows$Server$2003$LogicalDisk] T2003 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = T2003.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,T2008.[FileSystem_0D653B7C_3F9D_0EA1_6FF0_3CEF476DBED5] ,T2008.[DeviceID_DF2FF114_783D_E8EC_DC76_0FC98EF70DB4] ,T2008.[Size_F703D24D_CD51_EAFE_9356_70A323192928]FROM [OperationsManager].[dbo].[MT_Microsoft$Windows$Server$2008$LogicalDisk] T2008 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = T2008.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,T2012.[FileSystem_0D653B7C_3F9D_0EA1_6FF0_3CEF476DBED5] ,T2012.[DeviceID_DF2FF114_783D_E8EC_DC76_0FC98EF70DB4] ,T2012.[Size_F703D24D_CD51_EAFE_9356_70A323192928] FROM [OperationsManager].[dbo].[MT_Microsoft$Windows$Server$6$2$LogicalDisk] T2012 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = T2012.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TAIX53.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TAIX53.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TAIX53.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$AIX$5$3$LogicalDisk] TAIX53 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TAIX53.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TAIX61.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TAIX61.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TAIX61.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$AIX$6$1$LogicalDisk] TAIX61 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TAIX61.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TAIX7.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TAIX7.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TAIX7.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$AIX$7$LogicalDisk] TAIX7 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TAIX7.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TRHEL4.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TRHEL4.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TRHEL4.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$RHEL$4$LogicalDisk] TRHEL4 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TRHEL4.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TRHEL5.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TRHEL5.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TRHEL5.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$RHEL$5$LogicalDisk] TRHEL5 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TRHEL5.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TRHEL6.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TRHEL6.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TRHEL6.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$RHEL$6$LogicalDisk] TRHEL6 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TRHEL6.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TRHEL6.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TRHEL6.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TRHEL6.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$RHEL$6$LogicalDisk] TRHEL6 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TRHEL6.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TSLES9.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TSLES9.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TSLES9.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$SLES$9$LogicalDisk] TSLES9 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TSLES9.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TSLES10.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TSLES10.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TSLES10.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$SLES$10$LogicalDisk] TSLES10 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TSLES10.BaseManagedEntityIdinsert into #TempTB1 SELECT T1.Path ,TSLES11.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TSLES11.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TSLES11.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$SLES$11$LogicalDisk] TSLES11 ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TSLES11.BaseManagedEntityId insert into #TempTB1 SELECT T1.Path ,TUniversal.[FileSystem_33C79158_2D36_06FA_FAF1_27BB8F983A0C] ,TUniversal.[DeviceID_76FE57D8_F808_15E1_EDC0_E929FBA69DEF] ,TUniversal.[Size_57A31D54_6A9D_8AE2_087A_9563C8508A5D] FROM [OperationsManager].[dbo].[MT_Microsoft$Linux$Universal$LogicalDisk] TUniversal ,[OperationsManager].[dbo].[BaseManagedEntity] T1 WHERE T1.BaseManagedEntityId = TUniversal.BaseManagedEntityId ----輸出資料select * from #TempTB1 ORDER by ‘PATH‘----刪除暫存資料表drop table #TempTB1
本文出自 “隨心” 部落格,轉載請與作者聯絡!
[SCOM]另闢蹊徑擷取SCOM監控的磁碟空間資料