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