帮助手册 Azure 诊断日志

Azure 诊断日志

诊断日志提供有关在资源中执行的操作的见解。借助 Microsoft Azure 的诊断日志,您可以将基本使用指标从内容交付网络 (CDN) 端点导出到各种来源。  了解有关使用 Site24x7 进行日志管理的更多信息。 

在本文档中,我们将介绍:

收集 Azure 诊断日志

使用 Site24x7 的日志管理和分析 从 Azure 的日志收集开始。此过程涉及以下步骤:

  1. Azure 监视器从 Azure 服务收集日志并将数据发送到 Azure 事件中心,这是一个数据流平台和摄取服务。
  2. 事件中心将日志流式传输到 Azure 函数,这是由事件中心触发的一小段代码。 
  3. Azure 功能:  
    • 将日志发送到 Site24x7 AppLogs HTTP 源。 
    • 将函数日志发送到一个 Azure 存储帐户。

Collecting Azure diagnostic logs

配置日志收集

配置日志收集是一个三步过程:

创建日志配置文件

从 Site24x7 Web 控制台,导航到 管理>  AppLogs>  日志配置文件添加日志配置文件,然后输入以下内容:

  1. 配置文件名称:输入日志配置文件的名称。
  2. 日志类型: 从下拉菜单中 选择Azure 诊断日志
  3. 日志源:选择Azure Functions
  4. 记录时区: 选择UTC
  5. 单击保存

Creating a Log Profile

使用 ARM 模板配置 Azure 资源

如上所述,您需要为函数日志创建事件中心、Azure 函数和存储帐户。您可以使用 ARM 模板创建所有这些。

  1. 下载 ARM 模板
  2. 登录到您的 Azure 门户,然后转到Marketplace>模板部署(使用自定义模板进行部署)
  3. 单击创建
  4. 自定义部署 边栏选项卡上,单击在编辑器中构建您自己的模板
  5. 编辑模板边栏选项卡上,将此 JSON 文件中的内容粘贴到编辑器窗口中。
  6. 单击保存
  7. 返回自定义部署框,在基本输入以下内容 :
    • 订阅: 选择您的订阅模式。
    • 资源组: 创建一个名称类似于 Site24x7-Azure-Logs的新资源组。
    • 位置:选择一个位置。
  8. 设置下:
    • 名称:将预先填写函数名称。你不需要改变它。
    • LogTypeConfig:从您已在 Site24x7 中创建的日志配置文件页面复制值(管理 > AppLogs > 日志配置文件 > 您的配置文件名称)。

  9. Azure LogTypeConfig

  10. 根据 条款和条件
    • 选中我同意上述条款和条件旁边的框。
    • 点击购买


    Custom deployment
  11. 单击顶部窗格中的通知图标以验证您的部署是否成功。 
  12. 部署成功通知上,单击转到资源组并验证是否已成功创建所有资源。 

将日志从 Azure 监视器推送到事件中心

让我们考虑一个使用 Azure Active Directory 的示例。要将审核日志推送到事件中心,请执行以下步骤:

  1. Azure 门户的主屏幕,转到Azure Active Directory
  2. 监控下,单击审核日志
  3. 单击导出数据设置您可以在“诊断设置”边栏选项卡下查看当前设置 。
  4. 您可以通过单击编辑设置来编辑这些设置,或通过单击添加诊断设置来添加新设置。您最多可以添加五个诊断设置。
    Add diagnostic settings
  5. 选中Stream 事件 hub旁边的框 。
  6. 事件中心下,单击配置
  7. Select event hub下,输入以下内容
    • 订阅:选择 Azure 订阅。
    • 选择事件中心命名空间:选择使用 ARM 模板创建的命名空间。它应该以 Site24x7AzureLogs-Namespace-<UniqueSuffix> 开头。 
    • 选择事件中心名称:从下拉菜单中 选择 site24x7-operational-logs 。
    • 选择事件中心策略名称:从下拉菜单中选择 RootManageSharedAccessKey 。
    • 单击确定


    diagnostic settings
  8. Logs下,选中 审计日志旁边的框。
  9. 单击保存

日志收集疑难解答

如果 Site24x7 没有收到日志,您可以通过以下方式检查日志收集失败的位置:

验证配置

确保您的资源已成功添加。如果是,请继续执行以下步骤:

  1. Azure 门户的主页 ,转到资源组。单击使用 ARM 模板创建的资源组。 
  2. 检查它是否列出了你创建的所有四个资源——应用服务计划、应用服务、事件中心命名空间和存储帐户。 

    Resource groups
  3. 从资源列表中单击 Function App。
  4. Function App边栏选项卡上,单击Functions (只读)>  EventHubs_Logs>  集成
  5. 验证Trigger字段的值是否为 (eventMessages)

    Verifying configurations
  6. 验证您是否在上面的第 8 步中正确输入了 Log Type Config 字符串。  

验证事件中心是否正在接收日志

  1. 从Azure 门户的主页 ,转到事件中心。 
  2. 单击您的活动中心;在显示指标下,切换到 Messages
  3. 在图表下方显示的消息摘要详细信息中,验证传入消息计数是否大于零。



Verifying if Event Hubs is receiving logs

手动验证 Azure 函数是否将日志发送到 Site24x7 

登录到 Site24x7并导航到 AppLogs。在AppLogs 搜索窗口中,搜索 Azure 诊断日志



Manually verifying if Azure functions are sending logs to Site24x7

如果上述验证失败,您可以联系 support@site24x7.com

ARM 模板可与多个 Azure 服务重用

您可以创建一个 ARM 模板,并在所有其他 Azure 服务中使用它。
例如,假设需要从两个不同的 Azure 服务收集的日志是App ServicesKubernetes Services。这可以在单个 ARM 模板中实现:

  1. 使用适当的示例日志和日志模式创建两种不同的日志类型AppServiceHTTPLogsAzure-Kube-ApiServerLogs
  2. 创建两个配置有各自日志类型的不同日志配置文件。也就是说,日志类型AppServiceHTTPLogs应该在AppServiceHTTPLogs日志配置文件中配置,日志类型Azure-Kube-ApiServerLogs应该在Azure-Kube-ApiServerLogs日志配置文件中配置。
  3. 将两个不同日志配置文件中的logTypeConfig变量的值配置为Application Settings下同一个 Function App 中的两个不同变量。
    ARM templates are reusable with multiple Azure services
    1. 转到配置了 ARM 的Function App
    2. 在左侧窗格中,转到设置下的配置
    3. 配置边栏选项卡上,单击新建应用程序设置
    4. 为变量提供适当的名称 ( S247_<ActualLogName>) 和值 ( logTypeConfig值在各自的日志配置文件中可用)。.
      Application settings


示例:
Name: S247_kube_apiserver
Vaule: xxxxxxxxxxxxxxxxxxxxxxxxxxxx (logtypeconfig value of log profile 'Azure-Kube-ApiServerLog Profile')

注意:

  • 名称中不应包含连字符 (-)。
  • 名称应以S247_ 开头
  • 名称格式应为S247_<ActualLogName>,其中<ActualLogName>是您必须在诊断设置下的这些 Azure 服务中选择的日志名称。
    示例: S247_kube_apiserver、S247_AppServiceHTTPLogs
  • 如果 Azure 门户中的日志类型有连字符 (-),请将其替换为下划线 (_)。
    示例:如果Kubernetes Services中可用的 Log Name为kube-apiserver,则在 Site24x7 中配置 Log Profile 时将其更改为S247_kube_apiserver

同一 Azure 服务的多种日志类型

为同一个 Azure 服务配置多个日志类型:

  1. 转到该服务,然后转到其诊断设置
  2. 单击添加诊断设置,并在该特定服务中使用所需的日志类型创建多个诊断设置。您可以通过选中特定日志类型旁边的框来选择日志类型。
  3. 在目标详细信息下选择Steam 到事件中心,然后按照上面将日志从 Azure 监视器推送到事件中心部分中的步骤 5-8 进行操作


Multiple Log Types for the same Azure service

Azure 服务中日志类型的日志模式

要了解 Azure 服务中可用的不同日志类型的日志模式,请参阅Azure 的文档。请参阅此文档,并为相应的日志类型配置日志模式。

示例: AppServiceConsoleLogs 的日志模式可以由 Category、Host、Level、ResourceId、ResultDescription、SourceSystem、TenantId、TimeGenerated 和 Type 字段定义。

从这些字段中,AppServiceConsoleLogs 的日志模式配置为:

json $resourceId as ResourceId$ $operationName$ $category as LogCategory$ $time as Time:date:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'$ $properties.Host as Host$ $properties。级别为 Level$ $properties.ResultDescription 作为 ResultDescription$ $properties.SourceSystem 作为 SourceSystem$ $properties.TenantId 作为 TenantId$ $properties.Type 作为 Type$

Azure 诊断日志仪表板

AppLogs 为每种日志类型创建一个专属仪表板,并默认显示一些小窗件。下面是 Azure 诊断日志仪表板中可用的小窗件列表:

  • 操作统计
  • 日志类别统计
  • 资源组统计
除了默认小窗件之外,您保存的搜索也将自动添加到仪表板中。

Azure logs dashboard

相关日志类型

帮助手册 Azure Diagnostic Logs