用Application Insights監控IIS的Application

Application Insights用來監控Application是非常好用的工具,不過,如果今天你已經有存在的系統,或是可能比較老舊的系統,可能無法透過Application Insights SDK做監控,但是,不做監控又怪怪,這時候可以用比較偷懶方式,就是下載Application Insights的ApplicationInsightsStatusMonitor,安裝到你想要監控的IIS上面。基本上不需要改任何程式碼就可以自動幫你做監控Application的動作

安裝ApplicationInsightsStatusMonitor


首先,到http://go.microsoft.com/fwlink/?LinkId=506648下載套件進行安裝

安套件相當簡單,只需要不斷的下一步就可以,目前這個套件還在Preview版本,所以,設定介面相當陽春,這邊需要等待額外下載Agent。

都上面畫面跑完,就會自動安裝了,因為,啟動Monitor時候,它會自動去掃你這台Server的IIS,所以必須要等一下時間

設定ApplicationInsightsStatusMonitor


安裝完畢套件後,再來就是設定相關要監控的Application,這時候必須先登入你的Azure,就會自動抓取Azure上面已經存在的Application Insights服務或是要即時開啟服務,當你要開始監控IIS時,建議網站最好一定要設定監控,下面其他次網站是否要監控就看需求決定

當你設定站啟動Application Insights後,在網站下面會看到自動被新增ApplicationInsights.config檔案

此外,當設定完Application Insights Monitor後,必須重新啟動IIS

這時候就可以開始做遙測了

開始遙測的狀態


當你開始進行遙測,就可以透過Azure看到Server的一些狀態,下面是Live Stream的狀態圖,可以即時遙測Server和Application現狀

不過,當你的IIS的Application沒有任何活動,也是沒有人訪問時候,這時候Live Stream就會停止不會有數據產生和收集

下面則是Server端環境數據分析

另外,也推薦可以看Application Map可以分析系統關係圖,如果早期有用過AVI Code的人,也因該會想要用這樣方式瞭解系統串接性

可能無資料


有可能裝好沒有產生資料,可以檢查防火牆是否有開啟,要開啟防火牆的位置,可以參考下面的列表

https://azure.microsoft.com/zh-tw/documentation/articles/app-insights-ip-addresses/

基本上只要開啟目的是遙測LiveStream就可以,如果要想要在Server上看Azure Portal的Application Insights資料就還必須開啟資料存取 API

如果,不能開防火牆,要透過Proxy這條路時候,目前測試上需要做兩個動作,才有辦法把資料拋出去

  • 如果網站有Web.Config,要設定Proxy

    1
    2
    3
    4
    5
    <system.net>
    <defaultProxy>
    <proxy proxyaddress="http://XXXX:80" bypassonlocal="True" usesystemdefault="True"/>
    </defaultProxy>
    </system.net>
  • 在Applicationinsights.config加入EndpointAddress

    1
    2
    3
    <TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel" >
    <EndpointAddress>http://XXXX</EndpointAddress>
    </TelemetryChannel>

一般來說因該只需要設定Web.config就可以