你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用 Azure Monitor 日志监视 Service Fabric 上的 Windows 容器
这是教程的第三部分,将详细介绍如何配置 Azure Monitor 日志,以监视 Service Fabric 上安排的 Windows 容器。
在本教程中,你将了解如何执行以下操作:
- 为 Service Fabric 群集配置 Azure Monitor 日志
- 使用 Log Analytics 工作区查看和查询容器和节点中的日志
- 配置 Log Analytics 代理,以选取容器和节点指标
先决条件
开始学习本教程之前,应做好以下准备:
- 在 Azure 上拥有一个群集,或者使用此教程创建一个群集
- 将容器化的应用程序部署到该群集
在资源管理器模板中为群集设置 Azure Monitor 日志
如果使用了本教程第一部分中提供的模板,则它应包含常规 Service Fabric Azure 资源管理器模板的下列附加件。 如果拥有自己的群集,并且想要对它进行设置,以便使用 Azure Monitor 日志监视容器:
- 在资源管理器模板中进行以下更改。
- 使用 PowerShell 部署它,以通过部署模板升级群集。 Azure 资源管理器会确认此资源的存在,以将它作为升级内容推出。
向群集模板添加 Azure Monitor 日志
在 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 ,并更改该位置中使用的值。
将解决方案名称和解决方案添加到变量 中:
"omsSolutionName": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]", "omsSolution": "ServiceFabric"
将 Microsoft Monitoring Agent 添加为虚拟机扩展。 找到虚拟机规模集资源:resources>"apiVersion": "[variables('vmssApiVersion')]"。 在 properties >virtualMachineProfile >extensionProfile >extensions 中的 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 工作区添加为单个资源。 在“资源” 中的虚拟机规模集资源后面,添加以下内容:
{ "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 工作区的提示后,选择已在资源组中创建的工作区,然后选择“创建”。 此操作会将容器监视解决方案添加到工作区,并启动模板部署的 Log Analytics 代理开始收集 docker 日志和统计信息。
重新导航到资源组 ,现在你应该在该位置看到新添加的监视解决方案。 选择它后,登陆页应显示正在运行的容器映像数量。
请注意,我们运行了本教程第二部分中的 fabrikam 容器的五个实例
选择“容器监视解决方案”后,你会转到更加详细的仪表板,在其中可以滚动浏览多个面板并可在 Azure Monitor 日志中运行查询。
由于该代理正在收集 docker 日志,因此,默认情况下它会显示 stdout 和 stderr。 如果水平滚动,你将看到容器映像清单、状态、指标和示例查询,你可以运行这些查询以获取更多有用的数据。
选择这些面板中的任何一个,即可转到生成显示值的 Kusto 查询。 将此查询更改为 * ,可看到正在收集的所有不同类型的日志。 在此处,你可以查询或筛选容器性能、日志,或查看 Service Fabric 平台事件。 此外,代理也会不断从各个节点发出检测信号,你可以查看这些信号,以确保群集配置更改后是否仍在从所有计算机收集数据。
配置 Log Analytics 代理以收集性能计数器
使用 Log Analytics 代理的另一个好处是,可以通过 Log Analytics UI 体验更改想要收集的性能计数器,而不必配置 Azure 诊断代理并每次都基于资源管理器模板进行升级。 若要执行此操作,请选择容器监视(或 Service Fabric)解决方案登陆页上的“OMS 工作区”。
此操作会将你转到 Log Analytics 工作区,可以从中查看解决方案、创建自定义仪表板,以及配置 Log Analytics 代理。
- 选择“高级设置”以打开“高级设置”菜单。
- 选择“连接的源”>“Windows Server”,验证是否已连接了 5 个 Windows 计算机。
- 选择“数据”>“Windows 性能计数器”,搜索并添加新性能计数器 。 此处你会看到 Azure Monitor 日志提供的关于可收集的性能计数器的建议列表,以及用于搜索其他计数器的选项。 验证是否正在收集 Processor(_Total) 处理器时间和 Memory(*)\Available MBytes 计数器。
几分钟后刷新容器监视解决方案,你应开始看到计算机性能数据出现。 这有助于你了解资源的使用情况。 此外,还可以使用这些指标做出适当的群集缩放决策,或者使用它们确认群集是否正在按照预期方式平衡负载。
注意:请确保已正确设置时间筛选器,以便于使用这些指标。
后续步骤
在本教程中,你将了解:
- 为 Service Fabric 群集配置 Azure Monitor 日志
- 使用 Log Analytics 工作区查看和查询容器和节点中的日志
- 配置 Log Analytics 代理,以选取容器和节点指标
至此,你已配置对容器化应用程序的监视,请尝试执行以下操作: