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 Agent、SCOM Agent 或 SCOM 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属性的值将包含Direct和SCManagementServer,这取决于您在订阅中启用的数据源和监视解决方案。
您可能还记得,解决方案中的数据会通过两种方式发送:
- 从 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 网关数 |