Azure Monitor 中的 Agent Health 解决方案

Azure 中的代理运行状况解决方案可帮助你了解哪些监视代理无响应以及哪些提交操作数据。 这包括直接向 Azure Monitor 中的 Log Analytics 工作区报告或连接到 Azure Monitor 的 System Center Operations Manager 管理组的所有代理。

您还可以使用代理健康解决方案来:

  • 跟踪部署的代理数量以及代理在地理上分布的位置。
  • 执行其他查询,以保持对在 Azure 中、其他云环境中或本地部署的代理的分发的认识。

重要

代理运行状况解决方案仅监视Log Analytics 代理的运行状况,该代理将在2024 年 8 月 31 日弃用。 此解决方案不会监视 Azure Monitor 代理的运行状况。

先决条件

在部署此解决方案之前,请确认你已支持向 Log Analytics 工作区报告 Windows 代理 ,或者向与工作区集成的 Operations Manager 管理组 报告。

管理包

如果 Operations Manager 管理组已连接到 Log Analytics 工作区,则会在 Operations Manager 中安装以下管理包。 添加此解决方案后,这些管理包也会安装在直接连接的 Windows 计算机上:

  • Microsoft System Center Advisor HealthAssessment Direct Channel Intelligence Pack (Microsoft.IntelligencePacks.HealthAssessmentDirect)
  • Microsoft System Center Advisor HealthAssessment Server Channel Intelligence Pack (Microsoft.IntelligencePacks.HealthAssessmentViaServer)

无需使用这些管理包进行配置或管理。 有关如何更新解决方案管理包的详细信息,请参阅 将 Operations Manager 连接到 Log Analytics

配置

使用 “添加解决方案”中所述的过程将代理运行状况解决方案添加到 Log Analytics 工作区。 无需进一步配置。

支持的代理

下表描述了此解决方案支持的已连接源。

连接的源 已支持 Description
Windows 代理程序 是的 从直接 Windows 代理程序收集心跳事件。
System Center Operations Manager 的管理组 是的 检测心跳事件从每 60 秒向管理组报告的代理处收集,然后由代理转发到 Azure Monitor。 不需要从 Operations Manager 代理到 Azure Monitor 的直接连接。 心跳事件数据从管理组转发到 Log Analytics 工作区。

使用解决方案

当您将解决方案添加到 Log Analytics 工作区时,仪表板上会添加代理运行状况磁贴。 此磁贴显示过去 24 小时内代理总数和无响应代理数。

显示仪表板上的“代理运行状况”磁贴的屏幕截图。

选择 Agent Health 磁贴以打开 Agent Health 仪表板。 该仪表板包括下表中的列。 每个列按与该列的条件匹配的指定时间范围的计数列出前 10 个事件。 可以运行提供整个列表的日志搜索。 选择“查看全部”在每个列下方,或选择列标题。

Description
代理计数随时间变化 Linux 和 Windows 代理在七天内代理计数的趋势
无响应代理计数 过去 24 小时内尚未报告心跳信号的代理列表
按 OS 类型分发 一个分区,用于确定环境中有多少个 Windows 和 Linux 代理
按代理版本分发 环境中安装的代理版本的分类以及每个版本的数量
按代理类别分布 发送检测信号事件的代理类别的分区:直接代理、Operations Manager 代理或 Operations Manager 管理服务器
按管理组分布 您环境中的 Operations Manager 管理组的分区
代理的地理位置 你拥有代理的国家/地区,以及每个国家/地区安装的代理总数
已安装的网关计数 安装了 Log Analytics 网关的服务器数以及这些服务器的列表

显示代理运行状况解决方案仪表板示例的屏幕截图。

Azure Monitor 日志记录

该解决方案在 Log Analytics 工作区中创建一种类型的记录:心跳。 心跳记录具备下表中列出的属性。

资产 Description
Type Heartbeat
Category Direct AgentSCOM AgentSCOM Management Server
Computer 计算机名称
OSType Windows 或 Linux 操作系统
OSMajorVersion 操作系统主版本
OSMinorVersion 操作系统次要版本
Version Log Analytics 代理或 Operations Manager 代理版本
SCAgentChannel Direct 和/或 SCManagementServer
IsGatewayInstalled true 如果安装了 Log Analytics 网关,false否则
ComputerIP Azure 虚拟机的公共 IP 地址(如果可用);使用专用 IP 的虚拟机的 Azure SNAT 地址(而不是专用 IP 地址)
ComputerPrivateIPs 计算机的专用 IP 列表
RemoteIPCountry 部署计算机的地理位置
ManagementGroupName Operations Manager 管理组的名称
SourceComputerId 计算机的唯一 ID
RemoteIPLongitude 计算机地理位置的经度
RemoteIPLatitude 计算机所在位置的纬度

向 Operations Manager 管理服务器报告的每个代理将发送两个心跳。 该SCAgentChannel属性的值将包含DirectSCManagementServer,这取决于您在订阅中启用的数据源和监视解决方案。

您可能还记得,解决方案中的数据会通过两种方式发送:

  • 从 Operations Manager 管理服务器直接传送到 Azure Monitor。
  • 由于代理上收集的数据量大,直接将其传输到 Azure Monitor。

对于具有值为SCManagementServer的心跳事件,ComputerIP值实际上是管理服务器的IP地址,因为它负责数据上传。 对于将SCAgentChannel设置为Direct的心跳信号,其代理的公共 IP 地址即为这个心跳信号的地址。

示例日志搜索

下表提供解决方案收集记录的日志搜索示例。

Query Description
心跳 | 独立计算机 代理总数
心跳 | summarize LastCall = max(TimeGenerated) 按计算机 | where LastCall < ago(24h) 过去24小时内无响应代理数量
检测信号 |summarize LastCall = max(TimeGenerated) by Computer |where LastCall < ago(15米) 15 分钟内无响应代理数量统计
心跳 | where TimeGenerated > ago(24h) and Computer in ((心跳 | where TimeGenerated > ago(24h) | distinct Computer)) | summarize LastCall = max(TimeGenerated) by Computer 过去 24 小时内联机的计算机
检测信号 |其中 TimeGenerated ago(24h) 和 Computer !in ((检测信号 | where TimeGenerated >> ago(30m) | distinct Computer)) | summarize LastCall = max(TimeGenerated) by Computer 过去 30 分钟内脱机代理总数(过去 24 小时)
心跳 |summarize AggregatedValue = dcount(Computer) by OSType 按 OS 类型随时间推移的代理数的趋势
心跳 | summarize AggregatedValue = dcount(Computer) by OSType 按 OS 类型分发
心跳信号 | summarize AggregatedValue = dcount(Computer) by Version 按代理版本分发
心跳 | summarize AggregatedValue = count() by Category 按代理类别分布
心跳 | summarize AggregatedValue = dcount(Computer) by ManagementGroupName 按管理组分布
心跳 | summarize AggregatedValue = dcount(Computer) by RemoteIPCountry 代理的地理位置
心跳 | where iff(isnotnull(toint(IsGatewayInstalled)), IsGatewayInstalled == true, IsGatewayInstalled == "true") == true | distinct Computer 已安装的 Log Analytics 网关数

后续步骤

了解如何 从 Azure Monitor 中的日志查询生成警报