SCOM2012R2 APM


大家好,今天我來爲大家介紹SCOM中的APM監控。

很多人都知道,SCOM可以針對於企業的IT基礎架構做一個自下向上360度的監控,其實SCOM除了可以針對於企業IT基礎架構做出這種完整的監控

它還可以針對於我們企業的應用程序進行監控,也就是今天我要講的APM

那麼,到底什麼是APM呢?APM,全稱是Application Performance Monitoring,翻譯過來就是應用程序性能監控,許多初學者或者不瞭解的人,可能會問,你這個應用程序性能監控,到底是什麼意思?企業有必要做這種監控嗎?    其實,這種應用程序監控,我想絕大部分公司都會去做,尤其是互聯網公司。我舉個例子,比如說,一家XX電商公司,這個月上線了一個新的web應用程序,包括Web前端,中間層,數據庫層,構建出來的一套完整應用程序,這套程序現在代碼已經寫好了,馬上準備上線,上線前我們會對這個應用程序,進行很多的監控,測試,修復,調試,最終確認,這個應用程序可以推上線了,再進行正式的上線,APM就是負責,應用程序上線前,以及上線初期的監控,APM可以幫助我們進行端到端的監控,監控一個應用程序從web層到中間層到數據庫層的整體的應用程序性能以及應用程序故障,甚至可以深入到代碼級別,數據庫查詢語句級別,這就爲企業的IT運維帶來了很大的便利。

設想一下,原來企業中,應用開發組與服務器運維組是分開的,服務器運維人員只負責服務器以及機房的監控,應用開發的人,只負責代碼,需要服務器,服務器運維人員給他開一臺就是了,兩者之間根本沒有什麼過多的交集,應用程序出現性能故障了,服務器運維人員也不知道,也不懂,可能等過一段時間應用程序確實出現了很嚴重的性能問題,開發人員纔會知道,我打的這比方,我想也許就是傳統的IT企業現狀,那麼有了微軟的私有云,有了微軟的SCOM之後,你再也不需要這樣做了,我們可以SCOM去監控我們企業所有的IT基礎架構,以及應用程序,所有的這些監控數據,都在SCOM的統一界面進行展示,管理員只需要在一個SCOM界面下,就可以總覽全局。

假設,XX應用程序出現性能故障問題,SCOM就會第一時間產生警報,企業的IT管理員發現之後,就可以第一時間在SCOM中,將這個警報分配給應用程序的管理員,然後應用程序管理員通過不同的警告方式查看到這個警報,登錄到SCOM專門爲應用程序開發人員準備的APM網站,去查看具體是那個應用程序,那個模塊,那個組件,那個代碼,數據庫的那個查詢出現的問題,然後開發人員根據網站上的提示,去修復自己的程序,程序好了後,SCOM中的警報自動解除,應用程序重新上線,同時將這個錯誤記錄在SCOM應用程序的數據倉庫內以供日後分析,這就是有了APM監控之後的一套流程。

其實這種APM很多軟件公司,都在做,一套完整的APM,一般具備以下特徵:深入診斷應用程序、服務端可用性監控,客戶端最終體驗監控,基於異構Web應用程序監控,分佈式應用程序監控,業務事務監控,應用程序SQL與web前端的關聯性監控,如下圖所示。

wKioL1R4K7OAoeXAAAOFHqmOyzk120.jpg

套完整的APM監控系統,監控的流程如下:首先最終用戶,打開網頁,與應用程序發生交互,APM程序以一種鉤子的形式,將監控程序掛在.NET運行時,當用戶與網頁發生交互的時候,APM就會捕捉到用戶的體驗,比如用戶訪問網站的最終時間,DNS解析的時間,從這個web頁面查詢數據到數據庫花了多少時間,Ajax加載用了多久,每一個請求所花費的時間,以及請求中詳細的代碼,APM都會監控到,監控到了客戶端的體驗後,APM就會再深入一層,去深入診斷應用的性能,比如說按照性能計數器,查看Web應用程序的每秒請求,去診斷整體web應用程序之間的關鍵組件的關聯性,然後最後,是通過ASP.NET探測, JMX,JDBC,腳本,事務,可用性探測等方式,幫助我們準確的服務器端定位到問題所在,最終把問題呈現在警報,性能,分佈式應用程序,APM界面,供管理員分析,應用程序人員調試。

在上面,我簡單的爲大家介紹了一下,我所理解的APM,說的可能也會有不對的地方,也歡迎大家給我指正,多謝。

那麼,說完了APM的大概,接下來我們再來說說微軟SCOM中針對於應用程序監視的解決方案。

在最新的SCOM中,針對於應用程序監視監控,有以下幾個模塊

l  服務端

Web應用程序事務監控:通過Web應用程序事務監控,可以在服務端,針對於指定的URL,Web服務器,進行HTTP,DNS相應,應用程序整體相應時間的探測,我們還可以在服務器端配置基於瀏覽器的捕獲,捕獲指定URL的狀態代碼,響應時間,DNS解析時間,內容哈希,還可以根據自己的需求,定義,如果訪問出現指定代碼,或者響應時間,大於指定時間,則生成警報。針對於Web應用程序事務監視的數據,可以在警報,報表,AppAdvisor進行查看

Web應用程序可用性監控:通過Web應用可用性監控,我們可以去監視指定URL的可用性,同時也可以選擇URL的所在地,也就是URL是由那幾臺Web服務器構成,然後通過指定的觀察點,每隔60秒,去探測應用程序的可用性,可以自定義測試間隔,以及探測過程中,滿足那些其它規則進行產生警報,Web應用程序可用性也可以針對於HTTP代碼,內容匹配,重定向,HTTP相應,DNS解析,內容匹配,進行詳細的監視設置,針對於Web應用程序可用性的監視,可以在Web應用程序可用性的儀表板中,查看到詳細到關於Web應用程序的詳細性能圖表,也可以在可用性報表,AppAdvisor中查看。

TCP/IP監控:通過TCP/IP監控,我們可以以最簡單的方式去探測一個IP地址端口的可用性,比如說,我們輸入一個Web服務器的地址,端口爲80,然後指定一臺觀察點,比如說觀察點是一臺普通機器,通過這臺觀察點,就會每隔60秒去telnet這個IP地址的端口,如果能通,就是正常的,如果不通,則產生警報,在我日常做項目中,一般TCP/IP監控,都是用一臺機器作爲觀察點,去探測一個Web應用程序的NLB IP地址,注意,TCP/IP監控中的IP地址,可以是一個NLB地址,通過觀察點去探測一個應用程序前端NLB的IP地址,一般來說,NLB都至少是由兩臺組成的,一般來說,如果一臺當掉,那麼這個NLB IP地址,仍然是可以可以正常telnet到的,如果是NLB地址都探測不到,不通了,那麼就說明前端的Web服務器徹底當掉,所以這也是警報級別較高的一個警報,再有就是,以後端的Web服務器作爲觀察點,定時去探測後端SQL服務器的端口可用性。

APM應用程序監控:通過SCOM中的APM,可以進行深入的應用程序故障診斷,通過WCF,MVC, .NET Windows services的方式爲應用程序提供深入代碼級別的監視,從服務器到客戶端,端到端級別的監視, APM的服務器端監視會在後臺自動幫助我們關聯應用程序的web層,中間層,數據庫層以一個整體來進行監視,通過定義應用程序監視參數,以滿足企業針對於應用程序SLA的要求,APM的監視信息一共分爲兩種,一種是應用程序性能,一種是應用程序故障,那麼應用程序性能裏面存放了些什麼數據呢?比如說,用戶訪問一個網站,正常來說我的這個應用程序構建出來的網站,訪問只需要10秒,但是實際上,訪問這個網站用戶竟然用了30秒,這就明顯的出現了性能問題,這種情況下,在應用程序性能視圖裏面,就會將APM捕捉到用戶訪問從客戶端到服務器,整體的過程重現出來,並且會告訴應用管理員,在每一個步驟,用戶所花費的時間,比如用戶在web services調用那裏,花了10秒,在數據庫查詢某某某字段的時候,花了10秒,實現了耗時體驗的功能,這樣的話,對於企業的開發人員應用程序管理員來說,就更加容易去進行分析。另外一個應用程序故障,則是存儲着應用程序錯誤的一些信息,比如說,用戶查詢一個網站的內容,沒有查找到,用戶沒辦法提交內容,等等,這些錯誤信息,就會被記錄到應用程序錯誤裏面,然後應用管理員登錄到APM網站之後,就會看見這個錯誤,點開之後,APM就會告訴你,是哪個模塊,哪個查詢,哪個語句,導致出現的問題。在SCOM的APM網站中,應用管理員既可以針對單個錯誤或者性能數據進行監控,也可以針對於某個時間段所產生的錯誤和性能信息進行統一的監控。還可以針對於某個特定的錯誤事件,發現歷史上與它關聯的事件,還可以在APM網站,直接去查看應用程序後臺服務器的運行情況。

全球服務監控:通過SCOM中的GSM全球服務監控,我們可以實現,針對於應用程序分佈在全球各地的站點,進行集中的監控,通過SCOM中的GSM,可以幫助我們在地圖上,定位出不同站點的座標,然後在一個類似於地圖的摘要儀表板中,爲用戶展示分佈在不同城市的應用程序可用性狀態,最新的GSM更新了多級聯合網絡測試的功能,這項功能可以幫助我們測試,不同城市,不同站點,訪問網站時網站的性能。

SLA儀表板:在SCOM中,我們可以基於應用程序,或者基於服務器的運行情況來進行SLA的配置,所謂SLA,其實就是讓某些IT服務,滿足一個你與IT服務商一起共同制定的服務級別協議,來校驗實現高效的IT服務,比如說,我定義了一個SLA值,我的應用程序可用性,停機率低於百分之10就是正常,高於百分之10就是不正常,那麼你就可以在SCOM中進行這樣的定義,定義好了後就會在SCOM中的SLA儀表板進行顯示,如果滿足服務級別協議,就是綠色,不滿足就是紅色。

l  客戶端

APM應用程序監控:在SCOM中,APM同樣支持針對於客戶端的監視,如果要配置客戶端監視,要求必須已經配置了服務端監視,通過APM監視收集最終用戶使用瀏覽器訪問網站所產生的性能信息和異常信息,一旦我們爲APM監視嚮導啓用了客戶端監視後,那麼APM就會爲你的應用程序動態網站,在前端注入一小段js程序,當最終用戶通過瀏覽器與應用發生交互的時候,這一小段js程序,就會去捕捉用戶訪問的過程,然後把這個過程,傳回到SCOM中,這個過程就包括了,用戶訪問網站所耗費的時間,DNS解析的時間,Ajax加載的時間, 用戶訪問網站的方法調用,訪問過程與應用程序一些腳本,asp.net控件的交互,都會包括在這個過程中。一旦SCOM的GSM接收到了最終瀏覽器傳入過來的數據後,就會把數據存放在SCOM的數據倉庫,然後調用到APM網站。

Web應用程序事務監控:啓用了Web應用程序事務監控後,同樣也可以在客戶端進行基於瀏覽器的事務監視。

l  應用程序關聯

分佈式應用程序監控:通過SCOM中的分佈式應用程序監控,可以自己設計,服務企業內部的分佈式應用程序監控模板,比如說,可以在分佈式應用程序模板中設計,XX應用程序,具備Web層,中間層,數據庫層。然後,就是分佈式應用程序監控發揮作用的時候了,通過分佈式應用程序監控,可以幫我們定義業務之間的關聯關係,我們可以在數據庫層,添加進來應用程序所需要的數據庫,數據庫日誌,在中間層添加進來中間件,比如說sharepoint的運行狀況,在前端添加,Web應用程序,一個IIS網站,或者是java的網站。然後,配置他們之間的依賴關係,通過關聯線的方式,比如說,指定,前端依賴於中間層,中間層依賴於數據庫層,然後將設計好了的模板創建,就會出現這樣一個整體的分佈式應用程序的視圖,SCOM中的分佈式應用程序設計,是非常簡單的,只需要通過拖拽,選擇的方式,就可以幫助我們快速的定義出應用程序之間的關聯性,有了這樣的一個自定義的分佈式應用程序視圖,就可以幫助業務人員,更好的瞭解的業務系統整體的組件,運行情況。

應用程序系統級別監控:在SCOM中,有一個很重要的概念,叫做組,其實也是屬於class類,我們可以在創作視圖裏面,通過創建組的方式,將不同的對象,加進來,然後在監控視圖中,創建針對於組的視圖,視圖創建出來,顯示的視圖就是針對於整個組的數據,舉個例子來說,有一個人力資源管理系統,下面有Web層,中間層,數據庫層,現在我想要了解整個人力資源系統的可用性,我們應該怎麼做?一種方式是通過web應用程序可用性監視,另外一種,就是針對於組進行監視,我們在Web層,添加Web層的服務器,在中間層,添加中間層的服務器,在數據庫層,添加數據庫層的服務器。然後,我們將web層,數據庫層,中間層,這三個組作爲“子組”的形式,統一加入到人力資源管理系統這個大組,這時候,這個人力資源管理系統大組,就包括了這個系統所有的的服務器。然後我們去創建一個圖示視圖,在對象中,選擇人力資源系統這個組來作爲監控,這樣做出來的效果就是,在一個圖示視圖中,最上層,是人力資源系統這個大組,整體的可用性狀態,點開加號,在下面,分別是web層,中間層,數據庫層的可用性,然後點開web層,下面就是web層中每一個服務器的可用性狀態。這樣,我們就實現了應用程序系統級別監控,這也是SCOM中很重要的一個概念,我接觸很多國外的公司,在應用SCOM的時候,都會採取這種方案來做,或者你可以再將所有系統的web可用性,加入到一個大組中,然後通過統一的一個大組,來展示所有系統的整體可用性。

 

以上,就是我根據自己理解所總結的微軟SCOM中針對於應用程序監視的一整套解決方案,其實微軟SCOM中,不僅可以監視針對於sharepoint,exchange,Dynamics CRM,ERP等原生產品進行APM監控,也可以對基於.NET開發的應用程序進行APM監視,還可以監視WebSphere、WebbLogic、JBOSS和Tomcat上運行的Java程序,同時,支持針對於Java應用程序的深入監控,最新的SCOM2012R2,也可以針對於Java應用程序配置APM。

下面,我通過一個demo,來爲大家演示,SCOM中如何配置APM。

首先,我們先來看一下SCOM中配置APM的思路

wKiom1R4KzuQQlJCAAFAzkpNrYY612.jpg

配置步驟如下

u爲需要進行APM監視的計算機添加SCOM代理

u確保已經導入對應Windows OS系統管理包

u導入APM對應IIS平臺的管理包

u導入CRM系統的管理包

u導入APM管理包

u新建.NET APM監視

u根據提示重新啓動IIS

u服務器自動啓動APM監視服務

u等待Web應用程序數據收集

 

首先,我們先來配置一下,SCOM針對於Dynamics.CRM的APM監視,添加客戶端代理的步驟,我就不寫了,如果需要進行APM監視,需要導入如下這些的管理包,你是什麼平臺,就導入什麼樣子的管理包,一定要是對應的。

 

Microsoft.Dynamics.CRM.2011.mp

Microsoft.Windows.InternetInformationServices.2008.CHS.mp

Microsoft.Windows.InternetInformationServices.CommonLibrary.CHS.mp

Microsoft.Windows.InternetInformationServices.CommonLibrary.MP

Microsoft.SystemCenter.Apm.Web.IIS7.mp

Microsoft.SystemCenter.Apm.Web.IIS8.mp

Microsoft.SystemCenter.Apm.Web.mpb

Microsoft.Windows.Server.2008.Discovery.mp

Microsoft.Windows.Server.2008.Monitoring.mp

  • 打開SCOM管理控制檯,選擇‘創作’新建.NET應用程序性能監視

wKioL1R4K8nDKLjfAALBpPHrmFI366.jpg

  • 輸入友好名稱及創建目標管理包,這個目標管理包,建議手動新建,不要使用默認的,而且建議不同的創作,使用不同的管理包。

wKioL1R4K-iQaZX2AAGtPF0_dn4038.jpg

  • 選擇要監視的CRM Web內容,默認對服務器推送了SCOM代理,並且導入了相應的管理包後,就會自動發現出環境裏面所有的Web 應用程序和服務,這裏就是根據需要進行APM監視的應用程序,去選擇添加對應的Web應用程序。

wKiom1R4K27CTd38AALoG2Bb9qY080.jpg

  • 添加應用程序組件

wKiom1R4K3_SHfa4AAK8w4Wqxw8225.jpg

  • 配置服務端性能監視警報及性能閥值,注意,下面那個,啓用用於服務器端和客戶端監視的其他配置選項,如果你希望啓用客戶端監視,那麼你就把它勾選上。

wKiom1R4K6GyrWDwAAIGeIdRr_Q881.jpg

  • 進行服務器配置,在這裏我們就可以定義,需要監視那些性能,那些異常,以及應用程序監視的閥值。

wKioL1R4LDSgmQ0yAAJGnrdO_H8781.jpg

  • 分別創建Web應用程序的ASP.NET事務頁面設置

wKioL1R4LJODO4EGAAHRmG5jmko191.jpg


  • 確認服務器端自定義設置

wKioL1R4LK-yQKkwAAJiRPDO9TY104.jpg

  • 進行客戶端配置,選擇監視性能事件警報和異常事件警報,選擇高級設置,可以進一步配置客戶端監視的詳細規則。

wKiom1R4LD-jDDqxAAKmwyHGAq0448.jpg

  • 選擇需要啓用客戶端監視的Web應用程序

wKioL1R4LO6i7ZjVAAM75v-piSk054.jpg

  • 確認一遍摘要,查看自己的設置是否有問題,如果配置沒問題的話,根據提示重啓目標服務器IIS,注意,這裏如果你希望進行APM監視,是必須要重啓一次Web應用程序服務器IIS的,但是你不必立刻重啓,可以等到一個方便重啓的時間再進行重啓,總之,等到重啓之後,纔會在服務器上啓動APM監視服務,APM監視纔會生效。

wKiom1R4LH2hhc3QAAL80D7RIIw592.jpg

  • .NET APM監視創建完成

wKioL1R4LRbDxr9SAAN7ItCdEMc416.jpg

  • 打開Windows計算機,選擇CRM計算機,查看警報

wKioL1R4LSWAeOb8AAZ2S-qM9I4175.jpg

  • 在警報視圖中,遠程重啓目標服務器IIS

wKiom1R4LLGg9jKLAATriEKLuSk966.jpg

  • 查看輸出,重啓成功

wKioL1R4LUCCgF1RAAVWL8vFo20381.jpg

  • 目標服務器 APM服務自動啓動

wKiom1R4LMizIoqQAAanJR_6jOM236.jpg

  • 等待收集幾分鐘後SCOM控制檯就可以收集到APM基本信息,此過程視服務器性能,以及應用程序多少,來決定

wKioL1R4LXTwa-vvAATJxNa1jao665.jpg

  • 打開Application  Diagnostic網站 查看CRM網站APM性能及應用程序錯誤,這個也就是我之前一直說過的APM監視網站,這個網站就是專門用來給應用程序人員來做應用程序監視的。

wKiom1R4LQbTIrINAAQWKhzcLFE164.jpg

  • 我們隨便點開一個請求,就可以查看到,該請求的耗時體驗,

wKioL1R4LZWjMS6LAANfTPeRWlY852.jpg

  • 以及詳細的,代碼級別的APM數據

wKiom1R4LRyTD8HRAAVgdoCtdZU793.jpg

  • 還有一個AppAdvisor,這個是用於SCOM本地私有云環境的,Web方式SCOM應用程序報表展示,該網站存放了許多關於應用程序,客戶端監視,服務器監視,網站訪問請求,問題統計等關於應用程序報表,供應用程序人員分析。

wKiom1R4LSzSm7WeAAXH0rJlsOI795.jpg

wKioL1R4LbHAGCDBAAYaF4qXvK4765.jpg

  • 以上就是SCOM中APM的配置步驟,以及效果展示,希望可以爲您帶來幫助。

 

其實關於應用程序監視,並不只是可以用在應用程序測試上線的時候會用到,有的比較關鍵的業務系統,也可以通過微軟的APM進行長期的監視,出現問題,第一時間知道,第一時間修復,如果不想針對指定的服務器進行監控了,把APM服務停止掉就可以了,很多人可能會擔心,一旦我針對我的業務系統上了微軟的APM,那麼會不會對我的業務系統產生性能的影響,根據微軟內部的專家人士說法,SCOM中的APM是基於.NET運行時進行監視,並不會降低服務器的性能,只會佔用幾兆的使用,所以說,大家可以放心的去使用,只要配置正確,絕對不會對應用程序產生影響,APM監視對於企業應用程序,絕對是有必要的,也是私有云幫助企業優化IT管理必要的一環。

------------------------------------------------------------------------------------------------------- 

擴展知識:還有一個比較有趣的概念,想要和大家分享一下,那就是Devops,什麼是Devops呢?Devops簡稱研發運維一體化,舉個例子,一個應用程序從編碼到上線,大概是這樣一個生命週期的過程:代碼編寫—代碼發佈—代碼測試——應用部署—應用測試——應用上線,而我們要討論的就是就是關於後兩個過程,應用測試,應用上線,傳統來講,企業開發了一個業務系統,部署好了後,是要經過一段時間的監視測試過程,才能正式上線的,而這個監視過程,一般就是由服務器運維人員來做,極少數情況是應用程序開發人員來做,那麼這個時候,就會由於知識交集問題,導致應用程序測試出現性能問題後,服務器維護人員不能及時的告知應用運維人員,而通過SCOM的APM,就可以第一時間幫助監控應用程序的性能以及故障,發現問題,第一時間在SCOM中產生警報,服務器運維人員,發現了這個警報後,快速把這個警報指派給應用管理員,應用管理員收到警報後,查看APM網站,發現問題後,快速修復,然後快速重新上線,這樣就是一套Devops研發運維一體化,通過Devops就可以幫助應用程序實現聯合監視,快速修復,快速上線。從而最大的提高應用系統監視、運維、上線的效率,在SCOM2012R2中針對於Devops,其實還有另外一個更好的體現,那就是SCOM2012R2和TFS2013的集成,一旦配置了SCOM2012R2和TFS2013的集成後,如果發現VS中的程序出現故障後,就可以在SCOM中,把這個警報,分配給TFS工作賬戶,同時傳入到TFS的WorkItem或者Bug中,然後應用人員發現之後,去VS中修復代碼,重新發布,代碼修復好了後,TFS工作項自動解除,SCOM警報也自動解除。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章