Compartir a través de

监视Azure 事件中心

本文介绍:

  • 可以为此服务收集的监视数据的类型。
  • 如何分析这些数据。

注意

如果已熟悉此服务和/或Azure Monitor并只想了解如何分析监视数据,请参阅本文末尾附近的 Analyze 部分。

如果关键应用程序和业务流程依赖于Azure资源,则需要监视并获取系统的警报。 Azure Monitor服务从系统的每个组件收集并聚合指标和日志。 Azure Monitor提供可用性、性能和复原能力视图,并通知你问题。 可以使用 Azure 门户、PowerShell、Azure CLI、REST API 或客户端库来设置和查看监视数据。

Azure Monitor文档介绍了以下概念:

  • 什么是Azure Monitor?
  • 与监视相关的成本
  • 监视Azure中收集的数据
  • 配置数据收集
  • 用于分析和警报监视数据的Azure中的标准工具

以下部分介绍为Azure 事件中心收集的特定数据。 这些部分还提供了使用Azure工具配置数据收集和分析此数据的示例。

提示

若要了解与Azure Monitor相关的成本,请参阅 Azure Monitor 成本和使用情况。 若要了解数据在Azure Monitor中显示的时间,请参阅 Log 数据引入时间

资源类型

Azure使用资源类型和 ID 的概念来标识订阅中的所有内容。 Azure Monitor同样将核心监视数据组织成基于资源类型的指标和日志,也称为namespaces。 不同的指标和日志可用于不同的资源类型。 服务可能与多种资源类型关联。

资源类型也是Azure中运行的每个资源的资源 ID 的一部分。 例如,虚拟机的一种资源类型为 Microsoft.Compute/virtualMachines。 有关服务及其关联资源类型的列表,请参阅资源提供程序

有关事件中心的资源类型的详细信息,请参阅 Azure 事件中心 监视数据参考

数据存储

关于Azure Monitor:

  • 指标数据存储在Azure Monitor指标数据库中。
  • 日志数据存储在Azure Monitor日志存储中。 Log Analytics 是 Azure 门户中可以查询此存储的工具。
  • Azure活动日志是一个单独的存储区,其自己的接口位于Azure门户中。
  • 可以选择性地将指标和活动日志数据路由到Azure Monitor日志数据库存储,以便可以使用Log Analytics查询数据并将其与其他日志数据相关联。

有关如何Azure Monitor存储数据的详细信息,请参阅 Azure Monitor 数据平台

  • Azure 存储

    如果使用Azure 存储存储诊断日志记录信息,该信息将存储在名为 insights-logs-operationlogsinsights-metrics-pt1m 的容器中。 操作日志的示例 URL:https://<Azure 存储 account>.blob.core.chinacloudapi.cn/insights-logs-operationallogs/resourceId=/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/<Resource group name>/PROVIDERS/MICROSOFT.EVENTHUB/NAMESPACES/<Namespace name>/y=<YEAR>/m=<MONTH-NUMBER>/d=<DAY-NUMBER>/h=<HOUR>/m=<MINUTE>/PT1H.json。 指标日志的 URL 与之类似。

  • Azure 事件中心

    如果使用Azure 事件中心存储诊断日志记录信息,该信息将存储在名为 insights-logs-operationlogsinsights-metrics-pt1m 的事件中心实例中。 还可以选择现有的事件中心,但不包括正在配置诊断设置的事件中心。

  • 日志分析

    如果使用Log Analytics来存储诊断日志记录信息,该信息将存储在名为 AzureDiagnostics/ AzureMetrics 或资源特定的表的表中。

重要

启用这些设置需要其他Azure服务:存储帐户、事件中心或Log Analytics。 这些服务可能会增加成本。 若要计算估计成本,请访问 Azure 定价计算器

注意

启用诊断设置中的指标时,当前发送到存储帐户、事件中心或 Log Analytics 的信息中并不包含维度信息。

Azure Monitor平台指标

Azure Monitor为大多数服务提供平台指标。 这些指标是:

  • 针对每个命名空间单独定义。
  • 存储在Azure Monitor时序指标数据库中。
  • 设计轻便,并能够支持近实时的警报。
  • 用于跟踪资源随时间推移的性能变化。

Collection: Azure Monitor自动收集平台指标。 不需要任何配置。

Routing:通常还可以将平台指标路由到Azure Monitor日志/Log Analytics,以便可以使用其他日志数据查询它们。 有关详细信息,请参阅指标诊断设置。 有关如何配置服务的诊断设置,请参阅 在 Azure Monitor 中创建诊断设置。

有关在 Azure Monitor 中可对所有资源进行收集的所有指标的列表,请参阅 Azure Monitor 中的 Supported metrics

在创建诊断设置并将其路由到一个或多个位置之前,不会收集和存储资源日志。 创建诊断设置时,请指定要收集的日志类别。 Azure 事件中心监视数据引用中列出了Azure 事件中心的类别。

注意

Azure Monitor不包括发送到目标(如Azure 存储、Azure 事件中心和Log Analytics)的导出指标数据中的维度。

有关事件中心可用指标的列表,请参阅 Azure 事件中心 监视数据参考

分析指标

可以通过在事件中心命名空间主页的 Azure Monitor 部分选择 Metrics,来分析 Azure 事件中心 的指标,以及其他 Azure 服务的指标。 有关使用此工具的详细信息,请参阅 使用 Azure Monitor 指标资源管理器进行分析。 有关收集的平台指标的列表,请参阅 Monitoring Azure 事件中心 数据引用指标

屏幕截图显示了事件中心命名空间的指标浏览器。

参考一下这个列表,其中显示了 Azure Monitor 支持的所有资源指标。

提示

Azure Monitor指标数据可在 90 天内使用。 但在创建图表时,只直观显示 30 天的数据。 例如,如果想要直观显示 90 天的数据,必须将它拆分成 90 天内包含 30 天的数据的三个图表。

筛选和拆分

对于支持维度的指标,应用筛选器时可以使用维度值。 例如,添加一个筛选器,并将 EntityName 设置为事件中心的名称。 还可以按维度来拆分指标,将指标的不同部分进行直观比较。 有关筛选和拆分的详细信息,请参阅 Azure Monitor 的高级功能

屏幕截图显示了事件中心命名空间的指标资源管理器,其中有一个筛选器。

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 资源日志架构中概述。

有关可用的资源日志类别、其关联的Log Analytics表和事件中心的日志架构,请参阅 Azure 事件中心监视数据参考

分析日志

使用 Azure Monitor Log Analytics 需要创建诊断配置,并启用 发送信息到 Log Analytics。 有关详细信息,请参阅“指标”部分。 Azure Monitor日志中的数据存储在表中,每个表都有自己的唯一属性集。 Azure 事件中心能够将日志调度到两个目标表之一:Azure诊断表或Log Analytics中特定于资源的表。 有关日志和指标的详细参考,请参阅Azure 事件中心监视数据参考

重要

从Azure 事件中心菜单中选择Logs时,将打开Log Analytics,并将查询范围设置为当前工作区。 这意味着日志查询仅包含来自该资源的数据。 如果要运行包含来自其他数据库或其他Azure服务的数据的查询,请从Azure Monitor菜单中选择Logs。 有关详细信息,请参阅 日志查询范围和时间范围的 Azure Monitor Log Analytics

使用运行时日志

Azure 事件中心允许使用运行时审核日志和应用程序指标日志监视和审核客户端应用程序的数据平面交互。

使用运行时审核日志可以捕获所有数据平面访问操作(如发布或使用事件)的聚合诊断信息。 应用程序指标日志可捕获某些运行时指标(例如使用者滞后时间和活动连接)的聚合数据,这些指标与连接到事件中心的客户端应用程序相关。

注意

运行时审核日志仅在 高级 层中可用。

启用运行时日志

可以从 Azure 门户的事件中心命名空间页上的 监控 部分选择 诊断设置,以启用运行时审核或应用程序指标日志记录。 选择“添加诊断设置”,如下图所示。

屏幕截图显示了某个事件中心命名空间的“诊断设置”页。

然后,可以根据需要启用日志类别:RuntimeAuditLogs 或 ApplicationMetricsLogs。

屏幕截图显示已启用运行时审核和应用程序指标日志。

启用运行时日志后,事件中心将根据诊断设置配置开始收集并存储它们。

发布和使用示例数据

若要在事件中心命名空间中收集示例运行时审核日志,可以使用基于事件中心 SDK 的客户端应用程序发布和使用示例数据。 SDK 使用 Advanced Message Queuing Protocol (AMQP)。 也可以使用任何 Apache Kafka 客户端应用程序

应用程序指标包括以下运行时指标。

显示用于分析应用程序指标的示例查询结果的图像。

因此,可以使用应用程序指标来监视运行时指标,例如来自指定客户端应用程序的使用者滞后时间或活动连接。 应用程序指标日志参考中定义了与运行时审核日志关联的字段。

Azure活动日志

活动日志包含订阅级事件,用于跟踪从该资源外部查看的每个Azure资源的操作;例如,创建新资源或启动虚拟机。

Collection:活动日志事件在单独的存储中自动生成和收集,以便在Azure门户中查看。

Routing: 可以将活动日志数据发送到Azure Monitor日志,以便可以与其他日志数据一起分析。 其他位置,例如 Azure 存储、Azure 事件中心,以及某些 Azure 监视合作伙伴也可用。 有关如何路由活动日志的详细信息,请参阅Azure活动日志的 Overview

分析监视数据

有许多工具可用于分析监视数据。

Azure Monitor工具

Azure Monitor支持以下基本工具:

支持更复杂可视化效果的工具包括:

  • Dashboards,使你能够将不同类型的数据合并到Azure门户中的单个窗格中。
  • Workbooks,可以在Azure门户中创建的可自定义报表。 工作簿可以包括文本、指标和日志查询。
  • Power BI,这是一项业务分析服务,用于跨各种数据源提供交互式可视化效果。 可以将Power BI配置为从Azure Monitor自动导入日志数据,以利用这些可视化效果。

Azure Monitor 导出工具

可以使用以下方法将数据从Azure Monitor中获取到其他工具:

若要开始使用适用于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 查询接口

示例 Kusto 查询

下面是可用于监视Azure 事件中心资源的示例查询:

  • 获取过去七天的错误。

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "OperationalLogs"
    | summarize count() by "EventName"
    
    
  • 获取过去一小时内生成的运行时审计日志。

    AzureDiagnostics
    | where TimeGenerated > ago(1h)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "RuntimeAuditLogs"    
    
  • 尝试访问密钥保管库时出现“找不到密钥”错误。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB" 
    | where Category == "Error" and OperationName == "wrapkey"
    | project Message
    
  • 使用密钥保管库执行操作以禁用或恢复密钥。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "info" and OperationName == "disable" or OperationName == "restore"
    | project Message
    
  • 获取捕获失败及其持续时间(以秒为单位)。

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "ArchiveLogs"
    | summarize count() by "failures", "durationInSeconds"    
    

分析运行时审核日志

可以使用以下示例查询分析收集的运行时审核日志。

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where ResourceProvider == "MICROSOFT.EVENTHUB"
| where Category == "RuntimeAuditLogs"

在执行查询时,应该能够按以下格式获取相应的审核日志。

显示用于分析运行时审核日志的示例查询结果的图像。

通过分析这些日志,应该能够审核每个客户端应用程序与事件中心的交互方式。 运行时审核日志参考中定义了与运行时审核日志关联的每个字段。

分析应用程序指标

可以使用以下示例查询分析收集的应用程序指标日志。

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where Category == "ApplicationMetricsLogs"

警报

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 Monitor 部分选择 Alerts 来访问 Azure 事件中心的警报。 有关创建警报的详细信息,请参阅 使用 Azure Monitor 创建、查看和管理指标警报

事件中心警报规则

下表列出了事件中心的一些建议警报规则。 这些警报只是示例。 可以为Azure 事件中心监视数据引用中列出的任何指标、日志条目或活动日志条目设置警报。

警报类型 条件 说明
度量 CPU 当 CPU 使用率超过设置值时
度量 可用内存 当可用内存低于设置值时
度量 捕获积压工作 (backlog) 捕获积压工作高于特定值时

顾问建议

如果在资源操作期间出现严重情况或即将发生变化,则门户中的“概述”页面上会显示一个警报

可以在“监视”下的“顾问建议”中找到有关警报的更多信息和建议的修复措施。 在正常操作期间,不会显示任何顾问建议。

有关Azure 顾问的详细信息,请参阅 Azure 顾问 概述