Share via


教學課程:使用 Azure 監視器記錄來監視 Service Fabric 上的 Windows 容器

此為教學課程的第三部分,將逐步引導您設定 Azure 監視器記錄來監視 Service Fabric 上協調的 Windows 容器。

在本教學課程中,您會了解如何:

  • 針對您的 Service Fabric 叢集設定 Azure 監視器記錄
  • 使用 Log Analytics 工作區,檢視和查詢來自您容器和節點的記錄
  • 設定 Log Analytics 代理程式以挑選容器和節點計量

注意

本文最近有所更新,改為使用「Azure 監視器記錄」一詞,而非 Log Analytics。 記錄資料仍儲存在 Log Analytics 工作區中,並仍由相同的 Log Analytics 服務收集和分析。 我們會持續更新術語,以更精確地反映 Azure 監視器記錄的角色。 如需詳細資料,請參閱 Azure 監視器遙測變更

必要條件

開始進行本教學課程之前,您必須:

在 Resource Manager 範本中使用您的叢集設定 Azure 監視器記錄

如果您使用本教學課程第一部分中提供的範本,它應該會包含下列已新增至一般 Service Fabric Azure Resource Manager 範本的內容。 假如您有自己的叢集,而您想要設定該叢集以便使用 Azure 監視器記錄來監視容器:

  • 對您的 Resource Manager 範本進行下列變更。
  • 藉由部署範本,使用 PowerShell 部署它以升級您的叢集。 Azure Resource Manager 會解析該資源存在,因此將推出它作為升級。

將 Azure 監視器記錄新增到您的叢集範本

在您的 template.json 中進行下列變更:

  1. 將 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 的值,以及變更該處所使用的值。

  2. 將解決方案名稱和解決方案新增至您的 variables

    "omsSolutionName": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]",
    "omsSolution": "ServiceFabric"
    
  3. 新增 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]"
            }
        }
    },
    
  4. 新增 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 工作區

若要在您的工作區中設定容器解決方案,請搜尋「容器監視解決方案」並建立容器資源 (在 [監視 + 管理] 類別下方)。

Adding Containers solution

當系統提示您提供 Log Analytics 工作區時,選取已在您資源群組中建立的工作區,然後選取 [建立]。 這樣即會在您的工作區中新增一個「容器監視解決方案」,將起始範本所部署的 Log Analytics 代理程式開始收集 Docker 記錄和統計資料。

瀏覽回到您的「資源群組」,您現在應該會在其中看到剛新增的監視解決方案。 如果您選取該解決方案,登陸頁面應該會顯示已在執行中的容器映像數目。

請注意,我們已在教學課程的第二部分中,針對 fabrikam 容器執行了五個執行個體

Container solution landing page

選取 [容器監視解決方案] 將帶您前往更詳細的儀表板,讓您能夠在多個面板中捲動,以及在 Azure 監視器記錄中執行查詢。

由於代理程式會挑選 Docker 記錄,因此預設會顯示 stdoutstderr。 如果您水平捲動,您將看到容器映像詳細目錄、狀態、計量,以及您可執行來取得更有用資料的範例查詢。

Container solution dashboard

按一下這其中任一個面板,將帶您前往 Kusto 查詢,此查詢會產生顯示的值。 將查詢變更為 *,以查看所挑選記錄的所有不同種類。 您可以從這裡查詢或篩選容器效能、記錄,或是查看 Service Fabric 平台事件。 您的代理程式也會經常從每個節點發出活動訊號,如果您的叢集設定變更,您可以查看以確定仍會從您的所有機器收集資料。

Container query

設定 Log Analytics 代理程式以挑選效能計數器

使用 Log Analytics 代理程式的另一個優點是能夠變更您想要透過記錄分析 UI 體驗挑選的效能計數器,而不必每次設定 Azure 診斷代理程式並執行以 Resource Manager 範本為基礎的升級。 若要這樣做,在您容器監視 (或 Service Fabric) 解決方案的登陸頁面上選取 [OMS 工作區]

這將帶您前往 Log Analytics 工作區,您可以在其中檢視解決方案、建立自訂儀表板,以及設定 Log Analytics 代理程式。

  • 若要 [開啟進階設定] 功能表,請選取 [進階設定] 連結。
  • 選取 [連接的來源]>[Windows 伺服器],以確認您擁有「5 部已連接的 Windows 電腦」
  • 選取 [資料]>[Windows 效能計數器],以搜尋並新增效能計數器。 您將在這裡看到可收集的效能計數器建議清單 (來自 Azure 監視器記錄),以及用於搜尋其他計數器的選項。 請確認您已收集 Processor(_Total)% Processor TimeMemory(*)\Available MBytes 計數器。

請在數分鐘後重新整理您的容器監視解決方案,而您應該開始查看傳入的「電腦效能」資料。 這將有助於您了解資源的使用方式。 您也可以使用這些計量作出調整叢集的適當決策,或確認叢集是否正如預期般平衡您的負載。

注意:請確定已正確設定時間篩選,讓您能夠取用這些計量。

Perf counters 2

下一步

在本教學課程中,您已了解如何:

  • 針對您的 Service Fabric 叢集設定 Azure 監視器記錄
  • 使用 Log Analytics 工作區,檢視和查詢來自您容器和節點的記錄
  • 設定 Log Analytics 代理程式以挑選容器和節點計量

現在您已為容器化應用程式設定監視功能,接著請嘗試:

  • 設定適用於 Linux 叢集的 Azure 監視器記錄,並遵循類似此教學課程的步驟。 參考此範本 \(英文\),在 Resource Manager 範本中進行變更。
  • 設定 Azure 監視器記錄以設定自動化警示,協助偵測與診斷。
  • 瀏覽 Service Fabric 建議的效能計數器清單,以針對您的叢集進行設定。
  • 熟悉 Azure 監視器記錄中提供的記錄搜尋和查詢功能。