重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
各位好,今天繼續來討論關于Azure平臺的技術問題,這次我們來討論關于監控的話題,各個云平臺都會為用戶預留獲取監控數據的接口,Azure也不例外,拿最基礎用法來說,用戶可以從Azure Portal中獲取所需要的監控信息,比如Azure虛擬機的磁盤IO,CPU百分比,內存等,除此之外,還可以通過定義各種action,針對監控到的數據進行一系列的操作,比如發送email,調用
網站建設哪家好,找創新互聯!專注于網頁設計、網站建設、微信開發、重慶小程序開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了尉犁免費建站歡迎大家使用!
首先來簡單介紹Azure中用來做監控的功能叫做Azure monitor, Monitor的功能非常非常強大,不光可以收集各種log,同時還可以將log對接到包括powerbi, eventhub等多個平臺,之后利用平臺的功能,對log進行一些展示和分析的工作。
總體來說,可以通過這張架構圖來了解Azure monitor的整體架構
可以看到,monitor支持以下幾種source,涵蓋到包括應用程序、應用程序依賴的任何操作系統和服務,直到平臺本身
· 應用程序監視數據:有關編寫的代碼的性能和功能的數據,不管平臺是什么。
· 來賓 OS監視數據:有關運行應用程序的操作系統的數據。 此應用程序可以在 Azure 中運行,也可以在其他云中或本地運行。
· Azure資源監視數據:有關 Azure 資源的操作的數據。
· Azure訂閱監視數據:有關 Azure 訂閱操作和管理的數據,以及有關 Azure 本身運行狀況和操作的數據。
· Azure租戶監視數據:有關租戶級 Azure 服務(例如 Azure Active Directory)操作的數據。
而Azure Monitor收集的數據主要可以分為兩種類型,Metric以及Log,Metric主要指的是各種指標數據,類似于磁盤IO,CPU,network等,Log則包含各種事務日志,包括.NET, SQL,IIS等多種不同類型。
信息收集完畢后,根據對接平臺的不同,則可以實現不同的功能,舉例來說,如果將monitor對接到Azure Dashboard,則可以在Portal中根據需求定制不同的圖表來對monitor得來的數據進行展現
如果對接到Power BI,則可以有更豐富的圖表展現方式,可以更靈活地根據需要展示分析結果
這里就不詳細說明了,下邊首先來舉例說明,如何查看VM的監控數據,查看VM監控數據非常簡單,選擇好VM后,可以看到右下角會出現一些圖表,Azure默認就會監控一些基本的數據,比如network,CPU等,需要注意的是,這些數據屬于是host level的,也就是通過宿主機獲取到的監控數據,和在VM內部獲取的數據實際上并不是完全一致的,比如network數據,在host和在VM內部得到的監控數據,很有可能就不一致,這是因為Azure對于host level以及VM Level network的監控數據計算方式是不一樣的,具體可以后續再談
Host level監控有一個很大的弊端就是,如果我們想看內存數據,host level的監控是看不到的,需要我們手動開啟guest level 監控,開啟方法很簡單,首先點擊VM,然年選擇diagnostics settings,可以看到如果沒有開啟guest level monitoring的話,這里會看到enable guest level monitoring的選項,直接點擊即可開啟
開啟之后如果想要查看內存數據,首先點擊metrics,然后metric namespace這里選擇virtualmachines
然后在metric里選擇Commit byte in use,即可看到內存數據
在此基礎上,如果想實現監控報警功能,則可以點擊左側alerts(classic),之后選擇add metric alert
輸入基本信息后,可以選擇想要針對哪個metric設置報警,比如可以針對CPU的使用情況進行報警,可以選擇processor time
之后再設置報警的條件,比如可以設置5分鐘內,CPU使用率超過80%,則發郵件通過用戶abc@abc.com,設置完成后alert即會生效
這是標準創建alert的流程,但是在東二和北二區,目前Portal的這個功能還未支持,通過portal創建alert會收到以下提示
但是這并不代表這個功能無法使用,我們可以通過powershell創建alert,比如內存5分鐘內超過80%即報警,并發送郵件給abc@abc.com,則可以通過以下命令實現
$actionEmail = New-AzureRmAlertRuleEmail -CustomEmail "abc@abc.com"
Add-AzureRmMetricAlertRule -Name MemoryAlert -Location "ChinaNorth" -ResourceGroup "abc" -TargetResourceId "/subscriptions/5d666915-fc5f-4ee8-b26a-d98jkjkl22134/resourceGroups/mmm/providers/Microsoft.Compute/virtualMachines/vm01" -MetricName "\Memory\% Committed Bytes In Use" -Operator GreaterThan -Threshold 80 -WindowSize 00:05:00 -TimeAggregationOperator Average -Action $actionEmail
需要注意的是,我的VM是在北二區,但是這個powershell里的location寫的卻是北一,這并不是一個typo,而是之前提到的東二北二無法創建alert的workaround,所以這里的location是不能被修復的
創建完成后,當條件被觸發時即可收到類似的報警