本文介绍:
- 可以为此服务收集的监视数据的类型。
- 如何分析这些数据。
注意
如果已熟悉此服务和/或Azure Monitor并只想了解如何分析监视数据,请参阅本文末尾附近的 Analyze 部分。
如果关键应用程序和业务流程依赖于Azure资源,则需要监视并获取系统的警报。 Azure Monitor服务从系统的每个组件收集并聚合指标和日志。 Azure Monitor提供可用性、性能和复原能力视图,并通知你问题。 可以使用 Azure 门户、PowerShell、Azure CLI、REST API 或客户端库来设置和查看监视数据。
- 有关Azure Monitor的详细信息,请参阅 Azure Monitor 概述。
- 有关一般如何监视Azure资源的详细信息,请参阅使用Azure Monitor监视Azure资源。
资源类型
Azure使用资源类型和 ID 的概念来标识订阅中的所有内容。 Azure Monitor同样将核心监视数据组织成基于资源类型的指标和日志,也称为namespaces。 不同的指标和日志可用于不同的资源类型。 服务可能与多种资源类型关联。
资源类型也是Azure中运行的每个资源的资源 ID 的一部分。 例如,虚拟机的一种资源类型为 Microsoft.Compute/virtualMachines。 有关服务及其关联资源类型的列表,请参阅资源提供程序。
有关Azure SignalR 服务的资源类型的详细信息,请参阅 Azure SignalR 服务 监视数据参考。
数据存储
关于Azure Monitor:
- 指标数据存储在Azure Monitor指标数据库中。
- 日志数据存储在Azure Monitor日志存储中。 Log Analytics 是 Azure 门户中可以查询此存储的工具。
- Azure活动日志是一个单独的存储区,其自己的接口位于Azure门户中。
- 可以选择性地将指标和活动日志数据路由到Azure Monitor日志数据库存储,以便可以使用Log Analytics查询数据并将其与其他日志数据相关联。
有关如何Azure Monitor存储数据的详细信息,请参阅 Azure Monitor 数据平台。
Azure SignalR 服务日志存储在诊断设置中配置的存储帐户中。 系统会自动创建一个名为 insights-logs-alllogs 的容器来存储资源日志。 在容器中,日志存储在文件 resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json 中。 基本上,路径是 resource ID 和 Date Time 的组合。 日志文件按 hour 拆分。 因此,分钟值始终为 m=00。
所有日志均以 JavaScript 对象表示法 (JSON) 格式存储。 以下代码是存档日志 JSON 字符串的示例:
{
"properties": {
"message": "Entered Serverless mode.",
"type": "ConnectivityLogs",
"collection": "Connection",
"connectionId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "User",
"transportType": "WebSockets",
"connectionType": "Client"
},
"operationName": "ServerlessModeEntered",
"category": "AllLogs",
"level": "Informational",
"callerIpAddress": "xxx.xxx.xxx.xxx",
"time": "2019-01-01T00:00:00Z",
"resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX",
"location": "xxxx"
}
存储目标的字段名称与Log Analytics的字段名称略有不同。 有关存储和Log Analytics表之间的字段名称映射的详细信息,请参阅 Resource Log 表映射。
Azure Monitor平台指标
Azure Monitor为大多数服务提供平台指标。 这些指标是:
- 针对每个命名空间单独定义。
- 存储在Azure Monitor时序指标数据库中。
- 设计轻便,并能够支持近实时的警报。
- 用于跟踪资源随时间推移的性能变化。
Collection: Azure Monitor自动收集平台指标。 不需要任何配置。
Routing:通常还可以将平台指标路由到Azure Monitor日志/Log Analytics,以便可以使用其他日志数据查询它们。 有关详细信息,请参阅指标诊断设置。 有关如何配置服务的诊断设置,请参阅 在 Azure Monitor 中创建诊断设置。
有关在 Azure Monitor 中可对所有资源进行收集的所有指标的列表,请参阅 Azure Monitor 中的 Supported metrics。
Azure SignalR 服务 指标
有关Azure SignalR 服务的所有可用指标的列表,请参阅 Azure SignalR 服务 监视数据参考。
消息计数粒度
最小的消息计数粒度为 2 KB 的出站数据流量。 如果客户端在采样时段内发送一些小消息或不经常发送消息,其总数量少于 2 KB,则消息计数为零 (0),即使消息已发送。 检查数量或大小较小的消息的方法是使用指标“出站流量”,即发送的字节数。
系统错误和用户错误
“用户错误”和“系统错误”指标是失败的已尝试操作(例如,连接,或发送消息)所占百分比。 系统错误是内部系统逻辑中的故障。 用户错误通常是应用程序错误,往往与网络有关。 通常,系统错误数百分比应该很低(接近于零)。
重要
在某些情况下,用户错误率非常高,尤其是在无服务器模式下。 在某些浏览器中,当用户关闭网页时,SignalR 客户端不会正常关闭。 连接可能保持打开状态,但无响应,直到Azure SignalR 服务由于超时而最终关闭连接。 超时关闭将计入“用户错误”指标。
适合自动缩放的指标
“连接配额利用率”和“服务器负载”显示与当前分配的单位计数相比的利用率百分比或负载。 这些指标通常在自动缩放规则中使用。 例如,如果当前的分配为 1 个单位,而与服务建立了 750 个连接,则连接配额利用率为 750/1000 = 0.75。 服务器负载的计算方式与此类似,使用计算能力的数值。 有关详细信息,请参阅 自动缩放“Azure SignalR 服务”单元。
注意
自动缩放是高级层专有的功能。
Azure Monitor资源日志
资源日志提供有关由Azure资源执行的操作的见解。 日志是自动生成的,但必须将日志路由到Azure Monitor日志以保存或查询日志。 日志按类别组织。 给定的命名空间可能具有多个资源日志类别。
收集:在创建诊断设置并将日志路由到一个或多个位置之前,不会收集和存储资源日志。 创建诊断设置时,请指定要收集的日志类别。 可通过多种方式创建和维护诊断设置,包括Azure门户、编程方式以及Azure Policy。
Routing:建议的默认值是将资源日志路由到Azure Monitor日志,以便可以使用其他日志数据对其进行查询。 其他位置,例如 Azure 存储、Azure 事件中心,以及某些 Azure 监视合作伙伴也可用。 有关详细信息,请参阅 Azure 资源日志和 resource 日志目标。
有关收集、存储和路由资源日志的详细信息,请参阅 Azure Monitor 中的 Diagnostic 设置。
有关 Azure Monitor 中所有可用资源日志类别的列表,请参阅 Azure Monitor 中支持的资源日志。
Azure Monitor中的所有资源日志具有相同的标头字段,后跟特定于服务的字段。 通用架构在 Azure Monitor 资源日志架构中概述。
- 有关如何启用、查询和排查Azure SignalR 服务资源日志的详细说明,请参阅 Monitor 和Azure SignalR 服务日志疑难解答。
- 有关可用资源日志类别、其关联的Log Analytics表以及Azure SignalR 服务的日志架构,请参阅 Azure SignalR 服务 监视数据参考。
资源日志类别
资源日志分组到类别组中。 类别组是不同日志的集合,可帮助你实现不同的监视目标。 Azure SignalR 支持连接日志、消息传送日志和 HTTP 请求日志。
连接性日志
连接性日志提供 SignalR 中心连接的详细信息。 例如:
- 用户 ID、连接 ID 和传输类型等基本信息
- 连接、断开连接和中止事件等事件信息
因此,连接性日志有助于解决与连接相关的问题。 有关与典型连接相关的故障排除,请参阅连接相关问题。
消息日志
消息传递日志为通过 SignalR 服务接收和发送的 SignalR 中心消息提供跟踪信息,例如,消息的跟踪 ID 和消息内容。 跟踪 ID 和消息类型也记录在应用服务器中。 通常,在消息到达或离开服务或服务器时,会对其进行记录。 因此,消息传递日志有助于解决与消息相关的问题。 有关与典型消息相关的故障排除,请参阅消息相关问题。
注意
针对每条消息都会生成这种类型的日志。 如果消息频繁发送,则消息传递日志可能会影响 SignalR 服务的性能。 但是,可以选择不同的收集行为,以最大程度地降低性能影响。 请参阅资源日志收集行为。
HTTP 请求日志
HTTP 请求日志提供有关 Azure SignalR 收到的 HTTP 请求的详细信息,例如请求的状态代码和 URL。 HTTP 请求日志有助于排查与请求相关的问题。
有关可用资源日志类别、其关联的Log Analytics表以及Azure SignalR 服务的日志架构,请参阅 Azure SignalR 服务 监视数据参考。
资源日志收集行为
使用资源日志(尤其是消息传递日志)有两种典型方案。
- “消息质量”记录消息是否已成功发送或接收,或者记录通过 SignalR 服务传递的每条消息。
- 性能日志记录消息延迟,或仅在部分连接中跟踪消息,而不是所有连接。
因此,SignalR 服务提供两种类型的收集行为:
- 全部收集收集所有连接中的日志。
- 部分收集:收集某些特定连接中的日志。
有关资源日志收集行为的更多详细信息以及如何对其进行配置,请参阅资源日志收集行为。
Azure活动日志
活动日志包含订阅级事件,用于跟踪从该资源外部查看的每个Azure资源的操作;例如,创建新资源或启动虚拟机。
Collection:活动日志事件在单独的存储中自动生成和收集,以便在Azure门户中查看。
Routing: 可以将活动日志数据发送到Azure Monitor日志,以便可以与其他日志数据一起分析。 其他位置,例如 Azure 存储、Azure 事件中心,以及某些 Azure 监视合作伙伴也可用。 有关如何路由活动日志的详细信息,请参阅Azure活动日志的 Overview。
分析监视数据
有许多工具可用于分析监视数据。
Azure Monitor工具
Azure Monitor支持以下基本工具:
Metrics 资源管理器,Azure门户中的一个工具,可用于查看和分析Azure资源的指标。 有关详细信息,请参阅使用 Azure Monitor 指标资源管理器分析指标。
Log Analytics,Azure门户中的一个工具,可用于使用 Kusto 查询语言(KQL)查询和分析日志数据。 有关详细信息,请参阅 在 Azure Monitor 中开始日志查询。
活动日志,可以通过 Azure 门户中的用户界面进行查看和基本搜索。 若要进行更深入的分析,必须将数据路由到Azure Monitor日志并在Log Analytics中运行更复杂的查询。
支持更复杂可视化效果的工具包括:
- Dashboards,使你能够将不同类型的数据合并到Azure门户中的单个窗格中。
- Workbooks,可以在Azure门户中创建的可自定义报表。 工作簿可以包括文本、指标和日志查询。
- Power BI,这是一项业务分析服务,用于跨各种数据源提供交互式可视化效果。 可以将Power BI配置为从Azure Monitor自动导入日志数据,以利用这些可视化效果。
Azure Monitor 导出工具
可以使用以下方法将数据从Azure Monitor中获取到其他工具:
Metrics: 使用 REST API 从 Azure Monitor 指标数据库提取度量数据。 API 支持使用筛选表达式优化检索到的数据。 有关详细信息,请参阅 Azure Monitor REST API 参考。
日志:使用 REST API 或关联的客户端库。
若要开始使用适用于Azure Monitor的 REST API,请参阅Azure监视 REST API 演练。
Kusto 查询
可以使用 Kusto 查询语言(KQL)分析 Azure Monitor 日志/Log Analytics 存储中的监视数据。
重要
从门户中的服务菜单中选择Logs时,Log Analytics打开,并将查询范围设置为当前服务。 此范围意味着日志查询将仅包含来自该资源类型的数据。 如果要运行包含来自其他Azure服务的数据的查询,请从 Azure Monitor 菜单中选择 Logs。 有关详细信息,请参阅 日志查询范围和时间范围的 Azure Monitor Log Analytics。
有关任何服务的常见查询列表,请参阅 Log Analytics 查询接口。
有关 Azure SignalR 服务 的 Kusto 查询示例,请参阅 SignalRServiceDiagnosticLogs 表的查询。
注意
存储目标的查询字段名称与Log Analytics的字段名称略有不同。 有关存储和Log Analytics表之间的字段名称映射的详细信息,请参阅 Resource Log 表映射。
警报
Azure Monitor警报会在监视数据中找到特定条件时主动通知你。 有了警报,你就可以在客户注意到你的系统中的问题之前找出和解决问题。 有关详细信息,请参阅 Azure Monitor 警报。
Azure资源有许多常见警报来源。 有关Azure资源的常见警报示例,请参阅 Sample 日志警报查询。 Azure Monitor Baseline Alerts (AMBA) 站点提供有关 Azure 着陆区 (ALZ) 场景的关键警报指标、仪表板和指南。
通用警报架构标准化了Azure Monitor警报通知的处理。 有关详细信息,请参阅常见警报架构。
警报类型
可以在Azure Monitor数据平台中针对任何指标或日志数据源发出警报。 警报具有许多不同类型,具体取决于要监视的服务以及要收集的监视数据。 不同类型的警报各有优缺点。 有关详细信息,请参阅选择正确的监视警报类型。
以下列表描述了可以创建的Azure Monitor警报的类型:
- 指标警报会定期评估资源指标。 指标可以是平台指标、自定义指标、Azure Monitor转换为指标或 Application Insights 指标的日志。 指标警报还可以应用多个条件和动态阈值。
- Log 警报允许用户使用Log Analytics查询以预定义的频率评估资源日志。
- 当发生匹配所定义条件的新活动日志事件时,会触发活动日志警报。 资源运行状况警报和服务运行状况警报是报告您服务和资源健康状况的活动日志警报。
还可以为某些Azure服务创建以下类型的警报:
- Application Insights 资源上的智能检测警报会就 Web 应用程序中的潜在性能问题和故障异常自动向你发出警报。 可以在 Application Insights 资源上迁移智能检测,以便为不同的智能检测模块创建警报规则。
- Prometheus 警报会针对存储在 Azure Monitor 托管服务中的 Prometheus 指标发出警报。 该警报规则基于 PromQL,它是一种开源查询语言。 你的服务可能不支持此类型警报。 目前,Prometheus 用于一组有限的服务,其中包含来宾操作系统,例如 Azure 虚拟机和 Azure 容器实例。
- 建议的警报规则可用于某些 Azure 资源,包括虚拟机、Azure Kubernetes 服务 (AKS) 资源和日志分析工作区。
监视多个资源
可以通过将同一指标警报规则应用于同一Azure区域中存在的同一类型的多个资源来大规模监视。 将为每个受监视的资源发送单独通知。 若需查看支持的 Azure 服务和云,请参阅使用一个警报规则监控多个资源。
Azure SignalR 服务警报规则
下表列出了Azure SignalR 服务的一些建议警报规则。 这些警报只是示例。 可以为Azure SignalR 服务监视数据引用中列出的任何指标、日志条目或活动日志条目设置警报。
| 警报类型 | 条件 | 说明 |
|---|---|---|
| 平台指标 | 连接配额利用率 | 每当最大连接配额利用率大于动态阈值时 |
| 平台指标 | 删除 SignalR | 每当活动日志中存在类别为“Administrative”、信号名称为“Delete SignalR (SignalR)”的事件时 |
顾问建议
如果在资源操作期间出现严重情况或即将发生变化,则门户中的“概述”页面上会显示一个警报。
可以在“监视”下的“顾问建议”中找到有关警报的更多信息和建议的修复措施。 在正常操作期间,不会显示任何顾问建议。
有关Azure 顾问的详细信息,请参阅 Azure 顾问 概述。
相关内容
- 有关列出Azure SignalR 服务指标、资源日志和其他重要监视功能的参考,请参阅Azure SignalR 服务监视数据参考。
- 关于监控Azure资源的一般详细信息,请参阅 使用Azure Monitor监控Azure资源。
- 有关如何启用、查询和排查Azure SignalR 服务日志的详细说明,请参阅 Monitor 和Azure SignalR 服务日志疑难解答。