SCOM (司康m) 指的是在Microsoft System Center內的一個元件 Operations Manager,簡稱SCOM。主要就是用來監控資訊環境的健康狀態、效能、可用性等等...,並可以發出告警alert,透過匯入Management Packs到要監控的目標object來達成。
【The Operations Manager infrastructure】
SCOM的基礎設施架構,安裝Operations Manager會創建一個management group的概念,是此功能的基本單位,最基本包含三個部分:management server, operational database與reporting data warehouse database。
- Management server(MS): management group可以包含有多個MS變成資源池,有HA的功能,新加入的也能自動接手負載,但不會同時處理同一個object,使用operation console連線到management group內的MS,並作為management group與database中間的溝通。
- Operational database : (SQL Server),保存設定檔,與”近期、短期”的監控資料,預設為7天
- Reporting data warehouse database: (SQL Server),儲存”歷史”監控與告警的資料,當資料寫入時會同時寫入operational database與DW database,所以DW資料庫也同時保存著目前的資料。
如果安裝了Operations Manager reporting functionality,那就會有一個report server,而report server 的資料就是從DW database 來的。
Management servers(MS)
管理management group配置、管理agents並與agents進行通信,以及與management group中的Database進行通信,是資源池概念。有一種為gateway server 用來處理、監控位於untrusted domains的機器。
Agents
Agent安裝在computer上面來收集資料,與預設資料比對,建立告警,run responses,manager server 接收與發送資料到computer上面的agent,agent可以設定為proxy agent,可以用來監控無法安裝agent 的computer。
Service
Agent 以service的形式跑在受監控的computer,為"Microsoft Monitoring Agent service",用來收集效能資訊、執行任務等等。當service無法與MS溝同時,這個service也會持續執行並將這些收集來的資料與事件(event)queue住。等到連線恢復, Microsoft Monitoring Agent service就會再次發送這些資料到MS。
Microsoft Monitoring Agent service在同時也會跑在MS 上面,用來執行workflows與管理credentials,service使用特定的credential來發起MonitoringHost.exe這process,這些procrsses監控並收集event log ,統計效能資訊,Windows Management Instrumentation (WMI),與執行一些像是script的action。
MS 也會執行System Center Data Access service 與 System Center Management Configuration service。
- System Center Data Access service: 提供Operations console 存取operational database.
- System Center Management Configuration service: 管理management group,也可以配送management packs到欲管理的objects
Management packs(MP)
System Center MS所執行的workflows 就是由MP所定義,MP依照不同的應用程式與技術,定義了agent要收集與送往MS 的資訊。
Operations Manager 在計算機上安裝Agent後,它會向Agent發送初始配置。初始配置包括來自管理包的object discoveries。管理包定義了計算機上監視的目標是屬於哪種類型,例如是何種應用程序和什麼功能。Agent會再將這些數據發送到MS,以識別在計算機上發現的對象。然後MS再向Agent發送適用於每台計算機的已發現對象的管理包元素,例如rules 與 monitors。
一個rule定義了從電腦收集的事件和性能數據,與依據這些收集數據後要做什麼?簡單來說就是 If/Then的語句。例如,應用程序的管理包可能包含如下rule:
- 如果在事件日誌中發現應用程序正在關閉,就創建警報。
- 如果源文件上傳失敗,則收集此失敗的事件。
規則可以創建警報、收集事件或效能數據,在發送到MS。rule還可以運行腳本,例如嘗試重新啟動失敗的應用程序。
Discovered objects有不同的健康狀態,會在Operations console顯示為:
- 綠色(successful or healthy)
- 黃色(warning)
- 紅色(critical or unhealthy)
例如,磁盤容量監視器可能將綠色定義為小於 85%,黃色定義為超過 85%,紅色定義為超過 90%。監視器可以設定當發生狀態更改時生成警報。
How objects are discovered and monitored
- 設定 Operations Manager 去搜索要管理的計算機。
- 識別符合指定條件且尚未管理的計算機。
- 安裝Operations Manager Agent在發現的計算機上。
- Agent請求配置數據,然後MS從包含要發現的類別(classes)的MP發送給Agent配置數據。例如,如果安裝了 Windows Server 操作系統MP,MS將向Agent發送操作系統的類別。
- Agent將配置數據與計算機進行比較,識別它發現的任何對象,並將信息返回給管理服務器。例如,Agent將向MS發送出計算機上有 Windows Server 2016 操作系統的實例。
- MS將已安裝管理包的所有監控邏輯發送給Agent,這些邏輯適用於發現的對象。例如,代理將接收適用於 Windows Server 2016 的所有監視邏輯。
- Agent用監控邏輯,例如rules 與 monitors,運行workflows,並將數據返回到MS。
- 當發現的對象發生變化時,例如添加或卸載應用程序,Agent將更新的信息發送到MS,然後MS發送更新的監控邏輯。
Agents 與 Management servers 之間的通信
Operations Manager agent將警報和數據發送到主要的MS,再將數據寫入operational database。Agent還將事件、性能和狀態數據發送到該agent的MS,將數據同時寫入operational database與data warehouse databases。
代理根據每個rule和monitor的排程參數發送數據。對於收集規則的優化,當計樣本的數量與前一個樣本相差到達一定的值(例如 10%)時才傳輸數據。有助於減少網絡流量和存儲在操作數據庫中的數據量。
此外,所有agent都會定期向MS發送一個稱為“heartbeat”的packet,默認情況下每 60 秒發送一次。heartbeat的目的是驗證agent的可用性以及與MS之間的通信。
對於每個agent,Operations Manager 運行一個health service watcher,它從MS的角度監視遠程健康服務的狀態。