当你的关键应用程序和业务流程依赖于 Azure 资源时,你需要监视这些资源的可用性、性能和操作。
本文概述了 Azure 应用配置发出的监视数据,包括指标和日志。 应用配置与 Azure Monitor 集成,用于收集和分析此数据。 如果不熟悉 Azure Monitor 或想要了解跨 Azure 服务的常见监视概念,请参阅 使用 Azure Monitor 监视 Azure 资源。
应用配置收集与 Azure 资源中监视数据中所述的其他 Azure 服务相同的监视数据类别。 有关应用配置发出的特定指标和日志的详细信息,请参阅 架构参考。
指标
自动收集应用配置存储的指标,无需手动配置。
指标概述
在 Azure 门户中,导航到应用程序配置存储。 “ 概述” 边栏选项卡显示关键使用情况指标,包括一段时间内的请求总数和平均请求持续时间。
指标分析
在 Azure 门户中,导航到应用程序配置存储。 若要查看完整的可用指标集,请打开“监视”部分下的“指标”边栏选项卡。 或者,还可以使用 Azure Monitor 指标资源管理器与其他 Azure 服务指标一起分析应用配置指标。
以下列表汇总了为应用配置收集的所有指标。
- HTTP 传入请求计数
- HTTP 传入请求持续时间
- 受限制的 HTTP 请求计数(HTTP 状态代码 429 响应)
- 每日存储使用量
- 请求配额使用量
- 复制延迟
- 快照存储大小
选择 指标 名称和 聚合 类型。 以下屏幕截图显示了应用配置存储的 HTTP 传入请求计数之和。
有关应用配置指标的详细信息,请参阅 Microsoft.AppConfiguration/configurationStores 支持的指标。
日志
Azure 应用配置日志包括活动日志和资源日志。
活动日志
活动日志 提供订阅级事件的见解,并显示管理平面活动(在应用配置资源上创建、更新、删除作)。 但是,它们不会捕获数据平面作,如键值读取和写入。 可以在 “活动日志 ”边栏选项卡中查看它们。 或者,按照 Log 集合 中的步骤将其路由到 Log Analytics 工作区,以便执行更复杂的查询方案。
资源日志
应用配置提供两种类型的资源日志。
- 审核日志:捕获数据平面资源的写入作(创建、更新、删除),例如键值。 审核日志不包括数据平面读取作,但包括管理平面作。 条目未聚合。 在 AACAudit 表中查询它们。 有关详细信息,请参阅 AACAudit。
- HTTP 请求日志:捕获数据平面资源的读取和写入作,例如键值。 聚合作以提高性能并减少日志量。 聚合基于 HTTP 方法和状态代码。 每个日志条目可能表示特定时间范围内多个类似的作。 在 AACHttpRequest 表中查询它们。 有关详细信息,请参阅 AACHttpRequest。
日志收集
指标和活动日志会自动收集和存储,并且可以使用诊断设置路由到其他位置。
在创建诊断设置并将其路由到一个或多个位置(例如 Log Analytics 工作区)之前,不会收集并存储资源日志(包括审核日志和 HTTP 请求日志)。 如果还没有 Log Analytics 工作区,请创建一个 Log Analytics 工作区 ,然后按照以下步骤创建和启用诊断设置。
登录到 Azure 门户。
导航到 Azure 应用程序配置存储。
在 “诊断设置 ”页中,输入设置的名称,然后选择要收集的日志类别(例如 HTTP 请求 或 审核),然后选择要将日志发送到的目标。 可用目标包括 Log Analytics 工作区、存储帐户和事件中心。 建议使用 Log Analytics 工作区。 若要将其发送到 Log Analytics 工作区,请选择“发送到 Log Analytics 工作区”。
输入 订阅 和 Log Analytics 工作区的名称。
选择“ 保存 ”并验证“诊断设置”页现在是否列出了新的诊断设置。
有关使用 Azure 门户、CLI 或 PowerShell 创建诊断设置的更多信息,请参阅创建诊断设置以收集 Azure 中的平台日志和指标。
审核日志
在门户中,导航到 “监视>日志”,然后转到查询编辑器。 展开 表 并选择 AACAudit 以查看配置存储的审核日志。 选择 KQL 模式,在编辑器中输入 Kusto 查询,结果如下所示。
以下查询是可用于通过审核日志监视应用配置资源的示例。
- 列出过去三天内的所有审核请求
AACAudit | where TimeGenerated > ago(3d)
HTTP 请求日志
在门户中,导航到 “监视>日志”,然后转到查询编辑器。 展开 表 并选择 AACHttpRequest 以查看配置存储的 HTTP 请求日志。 选择 KQL 模式,在编辑器中输入 Kusto 查询,结果如下所示。
下面是可用于通过 HTTP 请求日志监视应用配置资源的示例查询。
列出过去三天内的所有 HTTP 请求
AACHttpRequest | where TimeGenerated > ago(3d)列出过去三天内的所有受限制的请求(因为请求过多而返回 HTTP 状态代码 429)
AACHttpRequest | where TimeGenerated > ago(3d) | where StatusCode == "429"按 IP 地址列出在过去三天内发送的请求数
AACHttpRequest | where TimeGenerated > ago(3d) | summarize requestCount=sum(HitCount) by ClientIPAddress | order by requestCount desc为在过去三天内接收的状态代码类型创建饼图
AACHttpRequest | where TimeGenerated > ago(3d) | summarize requestCount=sum(HitCount) by StatusCode | order by requestCount desc | render piechart列出过去 14 天内每天发送的请求数
AACHttpRequest | where TimeGenerated > ago(14d) | extend Day = startofday(TimeGenerated) | summarize requestCount=sum(HitCount) by Day | order by Day desc
如果在工作区中具有 Log Analytics 读取者角色,还可以在 Log Analytics 工作区的“日志”边栏选项卡中查看日志。 有关 Log Analytics 工作区访问控制的详细信息,请参阅 “管理对 Log Analytics 工作区的访问权限”。
对于日志查询范围,从“应用配置”菜单中选择“ 监视>日志 ”时,Log Analytics 会打开,并将查询范围设置为当前应用配置资源。 这意味着日志查询只包含来自该资源的数据。 如果要运行包含来自其他配置存储的数据的查询或其他 Azure 服务中的数据,请选择 Log Analytics 工作区中的 日志 。 有关详细信息,请参阅 Azure Monitor Log Analytics 中的日志查询范围和时间范围。
数据访问跟踪
调用方标识信息存在于 Azure 应用配置的审核和 HTTP 请求日志中。
若要确定谁正在对应用配置存储进行更改,建议使用审核日志。 审核日志包括调用方标识、调用方 IP 地址、执行的作和目标资源。 使用 CallerIdentity 将更改与特定调用方相关联。 审核日志仅用于写入作。
为写入和读取作生成 HTTP 请求日志。 由于这些日志已聚合,因此某些调用方标识详细信息可能会在聚合过程中丢失。 HTTP 请求日志最适合理解请求模式和性能特征,例如用户代理、请求持续时间和请求量。 ClientObjectId、ClientTenantId 和 AccessKeyId 字段提供调用方上下文。
| 日志类型 | 记录的作 | 聚合 |
|---|---|---|
| Audit | 写 | 否 |
| HTTP 请求 | 读取和写入 | 是的 |
应用配置支持Microsoft Entra ID 身份验证和访问基于密钥的身份验证。 如果使用 Entra ID 进行身份验证,则可以检索客户端对象 ID 和客户端租户 ID 来标识调用方。 如果使用访问密钥进行身份验证,则可以检索访问密钥 ID 以确定使用了哪个密钥。
下面是显示调用方标识信息的 AACAudit 和 AACHttpRequest 表的示例查询。
识别过去七天内审核日志中的键值更改,提取作名称、目标资源、调用方标识和调用方 IP 地址。
AACAudit | where TimeGenerated > ago(7d) | where OperationName in ("set-keyvalue", "delete-keyvalue") | project TimeGenerated, OperationName, TargetResource, CallerIdentity, CallerIPAddress, _ResourceId | sort by TimeGenerated desc从过去 7 天内确定 HTTP 请求日志中的键值读取和写入作,提取 HTTP 方法、请求 URI、状态代码、客户端对象 ID、客户端租户 ID、访问密钥 ID、客户端 IP 地址、用户代理和命中计数。
AACHttpRequest | where TimeGenerated > ago(7d) | where Method in ("PUT", "DELETE", "GET") | project TimeGenerated, Method, _ResourceId, RequestURI, StatusCode, ClientObjectId, ClientTenantId, AccessKeyId, ClientIPAddress, UserAgent, HitCount | sort by TimeGenerated desc
警报
Azure Monitor 警报会在监视数据中出现重大情况时通知你,帮助检测并解决这些问题,然后再影响服务或应用程序。 可以根据 指标、 日志和活动 日志配置警报。 每种警报类型都有明显的优势和权衡。
下表列出了常见和推荐使用的 Azure 应用程序配置的警报规则。
| 警报类型 | 条件 | 说明 |
|---|---|---|
| 请求配额使用情况 | RequestQuotaUsage > 80 | 配置存储区消耗的请求 配额超过 80%。 升级应用商店或遵循 最佳做法 来优化使用情况。 |
模式参考
指标架构
有关指标架构的详细信息,请参阅 应用配置指标
日志架构
活动日志架构
应用配置活动日志架构遵循 Azure 活动日志架构。 有关完整架构定义,请参阅 AzureActivity。
资源日志架构
| 类别显示名称 | 日志表架构 |
|---|---|
HTTP Requests |
AACHttpRequest |
Audit |
AACAudit |
有关更多架构信息,请参阅 Azure 资源日志的常见架构和服务特定的架构列表。
后续步骤
- 请参阅使用 Azure Monitor 监视 Azure 资源,详细了解如何监视 Azure 资源。