在多數的運維工做中,咱們除了要關注系統資源的使用率也要關注應用服務的健康情況,從而確保系統能夠持續的對外提供服務。那麼咱們如何使用Azure Monitor來監控服務的健康情況呢。監視Windows和Linux服務的最佳選擇之一是利用Azure自動化中的變動跟蹤解決方案。
使用變動跟蹤解決方案,能夠跟蹤Windows/Linux系統上的更改。在Windows它支持跟蹤文件、註冊表、服務和已安裝軟件的更改;在linux中它支持跟蹤文件,軟件和守護進程的更改。
默認狀況下,變動跟蹤解決方案會每隔30分鐘收集一次服務的更改,蛋能夠將其配置爲每10秒收集一次。可是有一點須要注意,此中方式指跟蹤更改,而不跟蹤當前狀態。也就是說,若是沒有更改,則沒有數據會發送到log analytics中。
在接下來的文章中,咱們會重點關注Windows服務的監視,可是該概念對於Linux守護程序的工做原理相同。linux
啓用變動跟蹤
若使用GUI的話,咱們有兩種方式能夠啓用變動跟蹤:運維
從Log Analytics工做區啓用
在log analytics中點擊「workspace summary」--「+Add」--「Change Tracking」:
點擊「Change Tracking」後會打開其描述選項卡,而後點擊建立,根據提示輸入自動化帳戶信息便可:ide
ps:我的以爲在自動化帳戶中啓用變動跟蹤更方便寫測試
查詢收集到的數據spa
咱們能夠經過以下查詢語句來列出最新收集到的數據。可是請你們注意,如咱們以前所說,咱們只能收集到變動的數據,對於其餘沒有變動的狀態咱們是收集不到的。並且若是虛擬機忽然崩潰,咱們也可能不會收集到相應的變動實踐。可是你們無需擔憂,咱們可使用其餘的查詢語句來監控vm的存活性。3d
let utcoffset = 8h; ConfigurationData | where ConfigDataType == "WindowsServices" | where SvcName == "W3SVC" | extend localTimestamp = TimeGenerated + utcoffset | project localTimestamp, Computer, SvcDisplayName, SvcState | order by localTimestamp desc | summarize arg_max(localTimestamp, *) by SvcDisplayName
配置服務變動警報:
在通常的運維場景中,咱們確定是但願當檢測到服務出現問題之後能夠經過郵件等方式通知相應的運維人員進行處理。因此在此咱們能夠根據服務變動來配置相應的警報規則。在此示例中咱們用來查詢、警告IIS(W3SVC)服務是否中止:code
ConfigurationChange | where ConfigChangeType == "WindowsServices" and SvcName == "W3SVC" and SvcState == "Stopped"
設置完警報後,咱們能夠手動的將測試環境的iis服務中止,服務中止後,咱們的郵箱會收到以下警報:
blog