教學課程:使用 Azure 監視器記錄來監視 Service Fabric 上的 Windows 容器
此為教學課程的第三部分,將逐步引導您設定 Azure 監視器記錄來監視 Service Fabric 上協調的 Windows 容器。
在本教學課程中,您會了解如何:
- 針對您的 Service Fabric 叢集設定 Azure 監視器記錄
- 使用 Log Analytics 工作區,檢視和查詢來自您容器和節點的記錄
- 設定 Log Analytics 代理程式以挑選容器和節點計量
必要條件
開始進行本教學課程之前,您必須:
- 具有 Azure 上的叢集,或使用本教學課程建立一個
- 將容器化應用程式部署至該叢集
在 Resource Manager 範本中使用您的叢集設定 Azure 監視器記錄
如果您使用本教學課程第一部分中提供的範本,它應該會包含下列已新增至一般 Service Fabric Azure Resource Manager 範本的內容。 假如您有自己的叢集,而您想要設定該叢集以便使用 Azure 監視器記錄來監視容器:
- 對您的 Resource Manager 範本進行下列變更。
- 藉由部署範本,使用 PowerShell 部署它以升級您的叢集。 Azure Resource Manager 會解析該資源存在,因此將推出它作為升級。
將 Azure 監視器記錄新增到您的叢集範本
在您的 template.json 中進行下列變更:
將 Log Analytics 工作區位置和名稱新增至您的 parameters 區段:
"omsWorkspacename": { "type": "string", "defaultValue": "[toLower(concat('sf',uniqueString(resourceGroup().id)))]", "metadata": { "description": "Name of your Log Analytics Workspace" } }, "omsRegion": { "type": "string", "defaultValue": "East US", "allowedValues": [ "West Europe", "East US", "Southeast Asia" ], "metadata": { "description": "Specify the Azure Region for your Log Analytics workspace" } }
變更用來將相同參數新增至 template.parameters.json 的值,以及變更該處所使用的值。
將解決方案名稱和解決方案新增至您的 variables:
"omsSolutionName": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]", "omsSolution": "ServiceFabric"
新增 Microsoft Monitoring Agent 作為虛擬機器擴充功能。 尋找虛擬機器擴展集資源:resources>"apiVersion": "[variables('vmssApiVersion')]"。 在 properties>virtualMachineProfile>extensionProfile>extension 下方,於 ServiceFabricNode 擴充功能下方新增下列擴充功能描述:
{ "name": "[concat(variables('vmNodeType0Name'),'OMS')]", "properties": { "publisher": "Microsoft.EnterpriseCloud.Monitoring", "type": "MicrosoftMonitoringAgent", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": true, "settings": { "workspaceId": "[reference(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')), '2015-11-01-preview').customerId]" }, "protectedSettings": { "workspaceKey": "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')),'2015-11-01-preview').primarySharedKey]" } } },
新增 Log Analytics 工作區作為個別資源。 在 resources 中的虛擬機器擴展集資源之後,新增下列內容:
{ "apiVersion": "2015-11-01-preview", "location": "[parameters('omsRegion')]", "name": "[parameters('omsWorkspacename')]", "type": "Microsoft.OperationalInsights/workspaces", "properties": { "sku": { "name": "Free" } }, "resources": [ { "apiVersion": "2015-11-01-preview", "name": "[concat(variables('applicationDiagnosticsStorageAccountName'),parameters('omsWorkspacename'))]", "type": "storageinsightconfigs", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]", "[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]" ], "properties": { "containers": [ ], "tables": [ "WADServiceFabric*EventTable", "WADWindowsEventLogsTable", "WADETWEventTable" ], "storageAccount": { "id": "[resourceId('Microsoft.Storage/storageaccounts/', variables('applicationDiagnosticsStorageAccountName'))]", "key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-06-15').key1]" } } }, { "apiVersion": "2015-11-01-preview", "name": "System", "type": "datasources", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]" ], "kind": "WindowsEvent", "properties": { "eventLogName": "System", "eventTypes": [ { "eventType": "Error" }, { "eventType": "Warning" }, { "eventType": "Information" } ] } } ] }, { "apiVersion": "2015-11-01-preview", "location": "[parameters('omsRegion')]", "name": "[variables('omsSolutionName')]", "type": "Microsoft.OperationsManagement/solutions", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('OMSWorkspacename'))]" ], "properties": { "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]" }, "plan": { "name": "[variables('omsSolutionName')]", "publisher": "Microsoft", "product": "[Concat('OMSGallery/', variables('omsSolution'))]", "promotionCode": "" } },
這裡是一個範例範本 (用於本教學課程的第一部分),其中包含所有您可視需要參考的變更。 這些變更會將 Log Analytics 工作區新增至您的資源群組。 工作區會設定為從使用 Windows Azure 診斷代理程式設定的儲存體資料表挑選 Service Fabric 平台事件。 Log Analytics 代理程式 (Microsoft Monitoring Agent) 也已新增至您叢集中的每個節點作為虛擬機器擴充功能;這表示當您調整叢集時,會在每部機器上自動設定此代理程式,並連接相同的工作區。
使用您的新變更來部署範本,以升級目前的叢集。 一旦完成此作業後,您應該會在資源群組中看到記錄分析資源。 當叢集已就緒時,將您的容器化應用程式部署到其中。 在下一個步驟中,我們會設定監視容器。
將容器監視解決方案新增至您的 Log Analytics 工作區
若要在您的工作區中設定容器解決方案,請搜尋「容器監視解決方案」並建立容器資源 (在 [監視 + 管理] 類別下方)。
當系統提示您提供 Log Analytics 工作區時,選取已在您資源群組中建立的工作區,然後選取 [建立]。 這樣即會在您的工作區中新增一個「容器監視解決方案」,將起始範本所部署的 Log Analytics 代理程式開始收集 Docker 記錄和統計資料。
瀏覽回到您的「資源群組」,您現在應該會在其中看到剛新增的監視解決方案。 如果您選取該解決方案,登陸頁面應該會顯示已在執行中的容器映像數目。
請注意,我們已在教學課程的第二部分中,針對 fabrikam 容器執行了五個執行個體
選取 [容器監視解決方案] 會帶您前往更詳細的儀表板,讓您能夠在多個面板中捲動,以及在 Azure 監視器記錄中執行查詢。
由於代理程式會挑選 Docker 記錄,因此預設會顯示 stdout 和 stderr。 如果您水平捲動,您會看到容器映像詳細目錄、狀態、計量,以及您可執行來取得更有用資料的範例查詢。
選取這其中任一個面板,會帶您前往 Kusto 查詢,此查詢會產生顯示的值。 將查詢變更為 *,以查看所挑選記錄的所有不同種類。 您可以從這裡查詢或篩選容器效能、記錄,或是查看 Service Fabric 平台事件。 您的代理程式也會經常從每個節點發出活動訊號,如果您的叢集設定變更,您可以查看以確定仍會從您的所有機器收集資料。
設定 Log Analytics 代理程式以挑選效能計數器
使用 Log Analytics 代理程式的另一個優點是能夠變更您想要透過記錄分析 UI 體驗挑選的效能計數器,而不必每次設定 Azure 診斷代理程式並執行以 Resource Manager 範本為基礎的升級。 若要這樣做,在您容器監視 (或 Service Fabric) 解決方案的登陸頁面上選取 [OMS 工作區]。
這會帶您前往 Log Analytics 工作區,您可以在其中檢視解決方案、建立自訂儀表板,以及設定 Log Analytics 代理程式。
- 若要 [開啟進階設定] 功能表,請選取 [進階設定] 連結。
- 選取 [連接的來源]>[Windows 伺服器],以確認您擁有「5 部已連接的 Windows 電腦」。
- 選取 [資料]>[Windows 效能計數器],以搜尋並新增效能計數器。 您會在這裡看到可收集的效能計數器建議清單 (來自 Azure 監視器記錄),以及用於搜尋其他計數器的選項。 請確認您已收集 Processor(_Total)% Processor Time 和 Memory(*)\Available MBytes 計數器。
請在數分鐘後重新整理您的容器監視解決方案,而您應該開始查看傳入的「電腦效能」資料。 這可協助您了解資源的使用方式。 您也可以使用這些計量作出調整叢集的適當決策,或確認叢集是否正如預期般平衡您的負載。
注意:請確定已正確設定時間篩選,讓您能夠取用這些計量。
下一步
在本教學課程中,您已了解如何:
- 針對您的 Service Fabric 叢集設定 Azure 監視器記錄
- 使用 Log Analytics 工作區,檢視和查詢來自您容器和節點的記錄
- 設定 Log Analytics 代理程式以挑選容器和節點計量
現在您已為容器化應用程式設定監視功能,接著請嘗試: