适用于:所有 API 管理层级
Azure Monitor 从系统收集并聚合指标和日志,以监视可用性、性能和复原能力,并通知你影响系统的问题。 可以使用 Azure 门户、PowerShell、Azure CLI、REST API 或客户端库来设置和查看监视数据。
不同的指标和日志可用于不同的资源类型。 本文介绍可为此服务收集的监视数据类型以及分析这些数据的方法。
使用 Azure Monitor 收集数据
下表介绍了如何收集数据来监视服务,以及收集到的数据可以做些什么:
要收集的数据 | 说明 | 如何收集和路由数据 | 查看数据的位置 | 支持的数据 |
---|---|---|---|---|
指标数据 | 指标是数字值,用于描述系统某个方面在特定时间点的情况。 可以使用算法来聚合指标、将其与其他指标进行比较,以及通过分析指标来了解一段时间内的趋势。 | - 定期自动收集。 - 可以将某些平台指标路由到 Log Analytics 工作区,以使用其他数据进行查询。 检查每个指标的“DS 导出”设置,查看是否可以使用诊断设置来路由指标数据。 |
指标资源管理器 | Azure Monitor 支持的 Azure API 管理指标 |
资源日志数据 | 日志是记录的具有时间戳的系统事件。 日志可包含不同类型的数据,可以结构化或采用自由文本格式。 可以将资源日志数据路由到 Log Analytics 工作区进行查询和分析。 | 创建诊断设置以收集和路由资源日志数据。 | Log Analytics | Azure Monitor 支持的 Azure API 管理资源日志数据 |
活动日志数据 | Azure Monitor 活动日志提供关于订阅级事件的见解。 活动日志包括何时修改了资源或何时启动了虚拟机等信息。 | - 自动收集。 - 免费为 Log Analytics 工作区创建诊断设置。 |
活动日志 |
有关 Azure Monitor 支持的所有数据的列表,请参阅:
API 管理的内置监视
Azure API 管理具备以下内置监视功能。
获取 Azure API 管理中的 API 分析
Azure API 管理为 API 提供分析,以便你能够分析其使用情况和性能。 使用分析功能对 API 进行高级别监视和故障排除。 有关其他监视功能(包括用于诊断和审核的准实时指标和资源日志),请参阅教程:监视已发布的 API。
注意
目前无法在工作区中使用此功能。
- API 管理使用基于 Azure Monitor 的仪表板提供分析。 该仪表板将 Azure Log Analytics 工作区中的数据聚合在一起。
- 在经典 API 管理服务层级中,API 管理实例还包括 Azure 门户中旧的内置分析,可以使用 API 管理 REST API 访问分析数据。 基于 Azure Monitor 的仪表板和内置分析中显示了非常相似的数据。
重要
推荐使用基于 Azure Monitor 的仪表板来访问分析数据。 内置(经典)分析在 v2 层中不可用。
使用 API 分析,跨多个维度分析 API 管理实例中 API 的使用情况和性能,其中包括:
- 时间
- 地理位置
- API
- API 操作
- 产品
- 订阅
- 用户
- 请求
API 分析提供有关请求(包括失败的请求和未经授权的请求)的数据。 地理值基于 IP 地址映射。 可能需要经过一段延迟时间,分析数据才可供使用。
基于 Azure Monitor 的仪表板
若要使用基于 Azure Monitor 的仪表板,需要 Log Analytics 工作区作为 API 管理网关日志的数据源。
如果需要配置一个,请按照下面的简短步骤将网关日志发送到 Log Analytics 工作区。 有关详细信息,请参阅教程:监视已发布的 API。 此过程是一次性的设置。
- 在 Azure 门户,导航到 API 管理实例。
- 在左侧菜单中的“监视”下,选择“诊断设置”“+ 添加诊断设置”。>
- 为诊断设置输入一个描述性名称。
- 在“日志”中,选择“与 ApiManagement 网关相关的日志”。
- 在“目标详细信息”中,选择“发送到 Log Analytics”,然后在相同或不同订阅中选择一个 Log Analytics 工作区。 如果需要创建工作区,请参阅创建 Log Analytics 工作区。
- 确保选择“特定于资源”作为目标表。
- 选择“保存”。
重要
新的 Log Analytics 工作区可能最多需要 2 小时才能开始接收数据。 现有工作区应在大约 15 分钟内开始接收数据。
访问仪表板
配置 Log Analytics 工作区后,访问基于 Azure Monitor 的仪表板来分析 API 的使用情况和性能。
- 在 Azure 门户,导航到 API 管理实例。
- 在左侧菜单的“监视”下,选择“分析”。 这会打开“分析”仪表板。
- 选择数据的时间范围。
- 选择分析数据的报告类别,例如“时间线”、“地理”,等等。
旧版内置分析
在某些 API 管理服务层中,内置分析(也称为旧分析或经典分析)也可以在 Microsoft Azure 门户中使用,并且可以使用 API 管理 REST API 访问分析数据。
若要在 Microsoft Azure 门户中访问内置(经典)分析,请执行以下操作:
- 在 Azure 门户,导航到 API 管理实例。
- 在左侧菜单中,在“监视”下,选择“分析(经典)”。
- 选择数据的时间范围,或者输入一个自定义时间范围。
- 选择分析数据的报告类别,例如“时间线”、“地理”,等等。
- (可选)按一个或多个其他类别筛选报表。
使用 API 管理 REST API 中的报告操作检索和筛选 API 管理实例的分析数据。
可用操作按 API、地理位置、API 操作、产品、请求、订阅、时间或用户返回报告记录。
Azure Monitor 日志
本部分介绍如何启用 Azure Monitor 日志,以便审核和排查 API 管理实例的不同功能的使用情况问题。 通过启用诊断设置,可以启用以下一个或多个资源日志类别的集合:
类别 | 说明 | 注释 |
---|---|---|
API 管理网关 | API 管理网关处理的请求,包括 HTTP 方法、协议、请求和响应正文、标头、计时、错误详细信息和缓存参与。 | 调整所有 API 的设置,或覆盖各个 API 的设置。 在配置 了工作区的 API 管理实例中,可以为每个工作区单独收集网关日志,并聚合这些日志供平台团队集中访问。 |
WebSocket 连接 | WebSocket API 连接的事件,从握手开始,直到连接终止。 | |
开发人员门户使用情况 | API 管理 开发人员门户接收和处理的请求,包括用户身份验证作、API 详细信息视图和交互式测试控制台中的 API 测试。 | |
生成式 AI 网关 | 由 API 管理网关处理的请求涉及大型语言模型 (LLM) REST API(例如 Azure OpenAI API),其中包括令牌使用情况、模型以及请求提示和响应完成的可选详细信息。 | 可以为特定的 LLM API 启用对请求消息和/或响应消息的日志记录。 |
有关详细信息,请参阅 API 管理监视数据参考。
为 Azure Monitor 日志启用诊断设置
若要配置资源日志的收集诊断设置,请执行以下操作:
在 Azure 门户,导航到 API 管理实例。
在左侧菜单中的“监视”下,选择“诊断设置”“+ 添加诊断设置”。>
在“诊断设置”页面上,输入或选择设置的详细信息:
- 诊断设置名称:输入一个描述性名称。
- 类别组:(可选)根据方案进行选择。
- 在 类别下:选择一个或多个类别。 例如,选择 与 ApiManagement Gateway 相关的日志 ,为 API 管理网关的大多数请求收集日志。
- 在“目标详细信息”下,选择一个或多个选项并指定目标的详细信息。 例如,将日志发送到 Azure Log Analytics 工作区,将日志存档到存储帐户,或将其流式传输到事件中心。 有关详细信息,请参阅 Azure Monitor 中的诊断设置。
- 选择“保存”。
小窍门
如果选择 Log Analytics 工作区,可以选择将数据存储在资源特定的表中(例如 ApiManagementGatewayLogs 表)或存储在常规 AzureDiagnostics 表中。 我们建议使用特定于资源的表作为支持此选项的日志目标。 了解详细信息
配置一个或多个日志目标的详细信息后,选择“保存”。
注意
如果 API 管理服务的 MinApiVersion 属性设置为高于 2022-09-01-preview 的任何 API 版本,则添加诊断设置对象可能会导致失败。
注意
若要为 API 管理工作区启用诊断设置,请参阅 “创建和管理工作区”。
查看 Azure Monitor 日志数据
根据所选日志目标,可能需要几分钟时间才能显示数据。
在 Log Analytics 工作区中查看日志
如果在 Log Analytics 工作区中启用日志或指标的收集,则数据可能需要经过几分钟才会显示在 Azure Monitor 中。
若要查看数据,请执行以下操作:
在 Azure 门户,导航到 API 管理实例。
在左侧菜单中的 “监视”下,选择“ 日志”。
运行查询以查看数据。 可以运行提供的多个示例查询,也可以运行自己的查询。 例如,以下查询检索 ApiManagementGatewayLogs 表中最近 24 小时的数据:
ApiManagementGatewayLogs | where TimeGenerated > ago(1d)
查看存储帐户中的日志
如果将日志发送到存储帐户,则可以访问 Azure 门户中的数据并下载进行分析。
- 在 Azure 门户中,导航到存储帐户目标。
- 从左侧菜单中选择“存储浏览器”。
- 在 Blob 容器下,为日志数据选择一个名称,例如,insights-logs-developerportalauditlogs(用于开发人员门户使用情况日志)。
- 导航到 API 管理实例中日志的容器。 日志以 1 小时为间隔进行分区。
- 若要检索数据以供进一步分析,请选择“下载”。
修改 API 日志记录设置
使用门户创建诊断设置以启用 API 管理网关或生成式 AI 网关 (LLM) 日志的收集时,将使用默认设置启用日志记录。 默认设置不包括请求或响应的详细信息,例如请求或响应正文。 可以调整所有 API 的日志记录设置,或者替代单个 API 的设置。 例如,调整网关日志数据的采样率或详细程度,启用 LLM 请求或响应消息的日志记录,或禁用某些 API 的日志记录。
有关日志记录设置的详细信息,请参阅 诊断 - 创建或更新 和 API 诊断 - 创建或更新 REST API 参考页。
若要为所有 API 配置日志记录设置,请执行以下操作:
- 在 API 管理实例的左侧菜单中,选择“API”>“API”>“所有 API”。
- 在顶部栏中选择“设置”选项卡。
- 向下滚动到“诊断日志”部分,然后选择“Azure Monitor”选项卡。
- 查看设置并根据需要进行更改。 选择“保存”。
若要为特定的 API 配置日志记录设置,请执行以下操作:
- 在 API 管理实例的左侧菜单中选择“API”>“API”,然后选择 API 的名称。
- 在顶部栏中选择“设置”选项卡。
- 向下滚动到“诊断日志”部分,然后选择“Azure Monitor”选项卡。
- 查看设置并根据需要进行更改。 选择“保存”。
重要
API 管理对发送到 Azure Monitor 的日志条目的大小强制实施 32 KB 的限制。 日志条目超出限制时的行为取决于日志类别和记录的数据属性:
- API 管理网关日志 - 日志条目中记录的请求或响应有效负载(如果已收集)最多可为 8,192 字节。 如果条目中属性的组合大小超过 32 KB,API 管理会删除所有正文和跟踪内容来剪裁条目。
- 生成式 AI 网关日志 - 如果已收集 LLM 请求或响应消息,且大小不超过 32 KB,则这些消息在单个条目中发送。 大于 32 KB 的消息被拆分并记录在 32 KB 区块中,其中包含用于以后重建的序列号。 请求消息和响应消息不能超过 2 MB。
使用 Azure Monitor 工具分析数据
Azure 门户中提供了以下 Azure Monitor 工具,可帮助你分析监视数据:
某些 Azure 服务在 Azure 门户中具有内置的监视仪表板。 这些仪表板称为“见解”,可以在 Azure 门户的 Azure Monitor 的“见解”部分找到它们。
指标资源管理器可用于查看和分析 Azure 资源的指标。 有关详细信息,请参阅使用 Azure Monitor 指标资源管理器分析指标。
Log Analytics 支持使用 Kusto 查询语言 (KQL) 来查询和分析日志数据。 有关详细信息,请参阅 Azure Monitor 日志查询入门。
Azure 门户具有用于执行活动日志查看和基本搜索的用户界面。 要进行更深入的分析,请将数据路由到 Azure Monitor 日志,并在 Log Analytics 中运行更复杂的查询。
Application Insights 监视 Web 应用程序的可用性、性能和使用情况,因此你可以确定并诊断错误,而无需等待用户报告这些错误。
Application Insights 包含各种开发工具的连接点,并与 Visual Studio 集成以支持 DevOps 过程。 有关详细信息,请参阅应用服务的应用程序监视。
支持更复杂可视化效果的工具包括:
- 仪表板,它支持将不同类型的数据合并到 Azure 门户的单个窗格中。
- 工作簿,它们是可在 Azure 门户中创建的可自定义报表。 工作簿可以包括文本、指标和日志查询。
- Grafana,它是一个适用于操作仪表板的开放平台工具。 可以使用 Grafana 创建包含来自除 Azure Monitor 以外多个源的数据的仪表板。
- Power BI,它是一项业务分析服务,可提供跨各种数据源的交互式可视化效果。 可将 Power BI 配置为自动从 Azure Monitor 导入日志数据,以利用这些可视化效果。
使用托管 Grafana 仪表板来可视化 API 管理监视数据
可以使用 Azure 托管 Grafana 来可视化收集到 Log Analytics 工作区中的 API 管理监视数据。 使用预生成的 API 管理仪表板来实时可视化从 API 管理实例收集的日志和指标。
在 API 管理实例上:
若要可视化 API 管理的资源日志和指标,请配置诊断设置以收集资源日志并将其发送到 Log Analytics 工作区。
若要可视化有关发送到 API 管理网关的请求的详细数据,请将 API 管理实例与 Application Insights 集成。
注意
若要在单个仪表板中可视化数据,请在 API 管理实例所在的资源组中为诊断设置和 Application Insights 实例配置 Log Analytics 工作区。
在托管 Grafana 工作区上:
- 若要创建托管 Grafana 实例和工作区,请参阅门户或 Azure CLI 的快速入门。
- 托管 Grafana 实例必须与 API 管理实例位于同一订阅中。
- 创建 Grafana 工作区后,系统会自动为其分配一个 Microsoft Entra 托管标识,该标识在订阅上被分配了“监视器读取者”角色。 采用这种方法可以立即从新的 Grafana 工作区访问 Azure Monitor,而无需手动设置权限。 详细了解如何为托管 Grafana 配置数据源。
首先将 API 管理仪表板导入托管 Grafana 工作区。
若要导入仪表板,请执行以下操作:
- 转到 Azure 托管 Grafana 工作区。 在门户中的托管 Grafana 实例的“概述”页上,选择“终结点”链接。
- 在托管 Grafana 工作区中,转到“仪表板”“浏览”>“导入”。
- 在“导入”页上的“通过 grafana.com 导入”下输入“16604”,然后选择“加载”。
- 选择“Azure Monitor 数据源”,查看或更新其他选项,然后选择“导入”。
若要使用 API 管理仪表板,请执行以下操作:
- 在托管 Grafana 工作区中,转到“仪表板”“浏览”并选择你的 API 管理仪表板。
- 在顶部的下拉列表中,为 API 管理实例做出选择。 如果已配置该项,请选择 Application Insights 实例和 Log Analytics 工作区。
查看仪表板上的默认可视化效果,该可视化效果将类似于以下屏幕截图:
导出 Azure Monitor 数据
可以使用以下方法将数据从 Azure Monitor 导出到其他工具:
指标:使用适用于指标的 REST API 从 Azure Monitor 指标数据库提取指标数据。 有关详细信息,请参阅 Azure Monitor REST API 参考。
日志:使用 REST API 或关联的客户端库。
要开始使用 Azure Monitor REST API,请参阅 Azure 监视 REST API 演练。
使用 Kusto 查询分析日志数据
可以使用 Kusto 查询语言 (KQL) 分析 Azure Monitor 日志数据。 有关详细信息,请参阅 Azure Monitor 中的日志查询。
使用 Azure Monitor 警报通知问题
Azure Monitor 警报允许你识别和解决系统中的问题,并在监视数据中观察到特定情况时在客户注意到之前主动通知你。 可以针对 Azure Monitor 数据平台中的任何指标或日志数据源发出警报。 有不同类型的 Azure Monitor 警报,具体取决于要监视的服务以及要收集的监视数据。 请参阅选择正确的警报规则类型。
若要了解如何在 Azure API 管理中设置警报规则,请参阅设置警报规则。
有关 Azure 资源常见警报的示例,请参阅示例日志警报查询。
大规模实现警报
对于某些服务,你可以通过将相同的指标警报规则应用于同一 Azure 区域中的多个相同类型资源,进行大规模的监视。 Azure Monitor 基线警报 (AMBA) 提供了大规模实现重要平台指标警报、仪表板和指南的半自动化方法。
使用 Azure 顾问获取个性化建议
对于某些服务,如果在资源操作期间出现严重情况或即将发生变化,则门户中的服务“概述”页面上会显示一个警报。 可以在左侧菜单“监视”下的“顾问建议”中找到警报的详细信息和建议补丁。 在正常操作期间,不会显示任何顾问建议。
有关 Azure 顾问的详细信息,请参阅 Azure 顾问概述。