帮助手册

Azure 诊断日志

诊断日志提供对资源内所执行操作的深入洞察。借助 Microsoft Azure 的诊断日志,您可以将内容分发网络(CDN)端点的基本使用指标导出到各种数据源。了解有关 Site24x7 日志管理的更多信息

本文档涵盖以下内容:

收集 Azure 诊断日志

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

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

配置日志收集

配置日志收集分为三个步骤:

创建日志配置文件

在 Site24x7 Web 控制台中,导航至 Admin > AppLogs > 日志配置文件 > 添加日志配置文件,并填写以下信息:

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

使用 ARM 模板配置 Azure 资源

如上所述,您需要创建一个事件中心、Azure Functions 和一个用于函数日志的存储账户。您可以使用 ARM 模板创建所有这些资源。

  • 对于手动安装,请按照步骤 1-6 操作。
  • 对于自动安装,请点击下方链接提供所需详情,然后从步骤 7 继续
  1. 下载 ARM 模板
  2. 登录您的 Azure 门户,前往 Marketplace > 模板部署(使用自定义模板进行部署)
  3. 点击创建
  4. 自定义部署边栏选项卡上,点击在编辑器中生成您自己的模板
  5. 编辑模板边栏选项卡上,将 JSON 文件的内容粘贴到编辑器窗口中。
  6. 点击保存
  7. 返回自定义部署边栏选项卡,在基本信息下填写以下内容:
    • 订阅:选择您的订阅模式。
    • 资源组:创建一个新的资源组,名称类似于 Site24x7-Azure-Logs
    • 位置:选择一个位置。
  8. 设置下:
    • 名称:函数名称将自动填充,无需更改。
    • LogTypeConfig:从您在 Site24x7 中已创建的日志配置文件页面复制该值(Admin > AppLogs > 日志配置文件 > 您的配置文件名称)。

  9. 条款和条件下:
    • 勾选我同意上述条款和条件旁边的复选框。
    • 点击购买
      注意

      请注意,EventHub 和 Azure FunctionApp 的执行将产生一定费用。

  10. 点击顶部窗格中的通知图标,验证部署是否成功。
  11. 部署成功通知上,点击转到资源组,验证所有资源是否已成功创建。

将日志从 Azure 监视器推送到 Event Hubs

以 Azure Active Directory 为例,按照以下步骤将审核日志推送到 Event Hubs:

  1. 在您的 Azure 门户主页,前往 Azure Active Directory
  2. 监控下,点击审核日志
  3. 点击导出数据设置。您可以在诊断设置边栏选项卡下查看当前设置。
  4. 您可以通过点击编辑设置来修改这些设置,或通过点击添加诊断设置来添加新设置。最多可添加五个诊断设置。

  5. 勾选流式传输到事件中心旁边的复选框。
  6. 事件中心下,点击配置
  7. 选择事件中心下,填写以下信息
    • 订阅:选择一个 Azure 订阅。
    • 选择事件中心命名空间:选择使用 ARM 模板创建的命名空间,其名称应以 Site24x7AzureLogs-Namespace-<UniqueSuffix> 开头。
    • 选择事件中心名称:从下拉菜单中选择 site24x7-operational-logs
    • 选择事件中心策略名称:从下拉菜单中选择 RootManageSharedAccessKey
    • 点击 确定

  8. 日志下,勾选 AuditLogs 旁边的复选框。
  9. 点击保存

日志收集故障排除

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

验证配置

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

  1. 在您的 Azure 门户主页,前往资源组。点击使用 ARM 模板创建的资源组。
  2. 检查是否列出了您创建的所有四个资源——一个应用服务计划、一个应用服务、一个 Event Hubs 命名空间和一个存储账户。

  3. 从资源列表中点击 Function App。
  4. Function App 边栏选项卡上,点击函数(只读) > EventHubs_Logs > 集成
  5. 验证触发器字段的值是否为 (eventMessages)

  6. 验证您是否已在上述步骤 8 中正确输入 Log Type Config 字符串

验证 Event Hubs 是否正在接收日志

  1. 在您的 Azure 门户主页,前往 Event Hubs
  2. 点击您的事件中心;在显示指标下,切换到消息
  3. 在图表下方显示的消息摘要详情中,验证传入消息数量是否大于零。

手动验证 Azure Functions 是否正在向 Site24x7 发送日志

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

注意
  • 通常情况下,所有类型的日志都会在 Azure 诊断日志下被捕获。这些日志可通过 Site24x7 Azure 诊断日志日志类型日志模式中的 logCategory 字段加以区分。
  • 如果您希望将每个类别单独捕获到不同的日志类型中,可以创建自定义日志类型

如果上述验证均失败,请通过 support@site24x7.com 联系支持团队,并提供以下信息:

用于排除问题所需的日志。操作步骤如下:

  1. 启用调试模式
    在与资源组关联的相应 Function App 中(如创建 ARM 模板步骤 7 中资源组列所指定的),导航至设置下的环境变量,点击 debugMode 旁的显示值
  2. 启用 Insight 日志
    • 在与资源组关联的相应 Function App 中(如创建 ARM 模板步骤 7 中资源组列所指定的),导航至 Application Insights,点击开启 Application Insights
  3. 获取日志
    • 前往 Application Insights 中的日志边栏选项卡。
    • 输入 traces 并点击运行以访问日志。
    • 导出日志以便与我们共享。
  4. 禁用 Insight 日志
    • 几分钟后,在 Function App 的 Application Insights 边栏选项卡中禁用日志,以避免产生额外费用。
注意

请注意,启用 Insight 日志将产生一定费用。请确保在收集完所需数据后禁用日志。

ARM 模板可在多个 Azure 服务中复用

您可以创建一个 ARM 模板,并在所有其他 Azure 服务中使用。
例如,假设需要从两个不同的 Azure 服务(应用服务Kubernetes 服务)收集日志,可以通过单个 ARM 模板实现:

  1. 创建两个不同的日志类型:AppServiceHTTPLogsAzure-Kube-ApiServerLogs,并配置相应的示例日志和日志模式。
  2. 创建两个分别配置了对应日志类型的日志配置文件。即日志类型 AppServiceHTTPLogs 应配置在 AppServiceHTTPLogs 日志配置文件中,日志类型 Azure-Kube-ApiServerLogs 应配置在 Azure-Kube-ApiServerLogs 日志配置文件中。
  3. 在同一 Function App 的应用程序设置下,将两个不同日志配置文件中的 logTypeConfig 变量值分别配置为两个不同的变量。

    1. 前往已配置 ARM 的 Function App
    2. 在左侧窗格中,前往设置下的配置
    3. 配置边栏选项卡上,点击新建应用程序设置
    4. 为变量指定适当的名称(S247_<ActualLogName>)和值(相应日志配置文件中的 logTypeConfig 值)。


示例:
名称: S247_kube_apiserver
值: xxxxxxxxxxxxxxxxxxxxxxxxxxxx(日志配置文件 'Azure-Kube-ApiServerLog Profile' 的 logtypeconfig 值)

注意:

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

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

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

  1. 前往该服务,然后进入其诊断设置
  2. 点击添加诊断设置,在该服务中创建多个诊断设置,并选择所需的日志类型(通过勾选对应日志类型旁的复选框选择)。
  3. 在目标详情下选择流式传输到事件中心,并按照上方将日志从 Azure 监视器推送到 Event Hubs章节中的步骤 5-8 操作。

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 as Level$ $properties.ResultDescription as ResultDescription$ $properties.SourceSystem as SourceSystem$ $properties.TenantId as TenantId$ $properties.Type as Type$

Azure 诊断日志仪表板

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

  • 操作统计
  • 日志类别统计
  • 资源组统计
注意

除默认组件外,您保存的搜索也将自动添加到仪表板中。

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!