你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将日志上传到 Azure Monitor

可以定期导出日志,然后将其上传到 Azure。 导出和上传数据还会在 Azure 中创建和更新数据控制器、SQL 托管实例及 PostgreSQL 服务器资源。

开始之前

在上传日志之前,需要执行以下操作:

  1. 创建 Log Analytics 工作区
  2. 将 ID 和共享密钥分配到环境变量

本文中的示例使用尖括号 < ... > 来标识在运行脚本之前需要替换的值。 替换括号和括号中的值。

创建 Log Analytics 工作区

若要创建 Log Analytics 工作区,请执行这些命令以创建 Log Analytics 工作区,并将访问信息设置到环境变量中。

注意

如果你已有工作区,请跳过此步骤。

az monitor log-analytics workspace create --resource-group <resource group name> --workspace-name <some name you choose>

示例输出:

{
  "customerId": "d6abb435-2626-4df1-b887-445fe44a4123",
  "eTag": null,
  "id": "/subscriptions/<Subscription ID>/resourcegroups/user-arc-demo/providers/microsoft.operationalinsights/workspaces/user-logworkspace",
  "location": "eastus",
  "name": "user-logworkspace",
  "portalUrl": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "user-arc-demo",
  "retentionInDays": 30,
  "sku": {
    "lastSkuUpdate": "Thu, 30 Jul 2020 22:37:53 GMT",
    "maxCapacityReservationLevel": 3000,
    "name": "pergb2018"
  },
  "source": "Azure",
  "tags": null,
  "type": "Microsoft.OperationalInsights/workspaces"
}

将 ID 和共享密钥分配到环境变量

将 Log Analytics 工作区 customerId 保存为环境变量,供稍后使用:

SET WORKSPACE_ID=<customerId>

此命令返回连接到 Log Analytics 工作区所需的访问密钥:

az monitor log-analytics workspace get-shared-keys --resource-group MyResourceGroup --workspace-name MyLogsWorkpace

示例输出:

{
  "primarySharedKey": "JXzQp1RcGgjXFCDS3v0sXoxPvbgCoGaIv35lf11Km2WbdGFvLXqaydpaj1ByWGvKoCghL8hL4BRoypXxkLr123==",
  "secondarySharedKey": "p2XHSxLJ4o9IAqm2zINcEmx0UWU5Z5EZz8PQC0OHpFjdpuVaI0zsPbTv5VyPFgaCUlCZb2yEbkiR4eTuTSF123=="
}

在环境变量中保存主密钥,供稍后使用:

SET WORKSPACE_SHARED_KEY=<primarySharedKey>

验证环境变量

如果需要,请检查以确保设置了所有必需的环境变量:

echo %WORKSPACE_ID%
echo %WORKSPACE_SHARED_KEY%

设置环境变量后,可将日志上传到日志工作区。

使用 az CLI 在直接模式下配置日志自动上传到 Azure Log Analytics 工作区

在直接连接模式下,只能在自动模式下设置日志上传。 可以在部署 Azure Arc 数据控制器的过程中设置这种自动上传指标的功能,也可以在部署完成后这样做。

启用将日志自动上传到 Azure Log Analytics 工作区的功能

如果在 Azure Arc 数据控制器部署过程中禁用了日志自动上传,请运行以下命令来启用日志自动上传。

az arcdata dc update --name <name of datacontroller> --resource-group <resource group> --auto-upload-logs true
#Example
az arcdata dc update --name arcdc --resource-group <myresourcegroup> --auto-upload-logs true

启用将日志自动上传到 Azure Log Analytics 工作区的功能

如果在 Azure Arc 数据控制器部署过程中启用了日志自动上传,请运行以下命令来禁用日志自动上传。

az arcdata dc update --name <name of datacontroller> --resource-group <resource group> --auto-upload-logs false
#Example
az arcdata dc update --name arcdc --resource-group <myresourcegroup> --auto-upload-logs false

使用 kubectl CLI 在直接模式下配置日志自动上传到 Azure Log Analytics 工作区

启用将日志自动上传到 Azure Log Analytics 工作区的功能

若要使用 kubectl 配置日志自动上传:

  • 确保按上一部分所述创建 Log Analytics 工作区
  • 使用 WorkspaceIDSharedAccessKey 为 Log Analytics 工作区创建 Kubernetes 机密,如下所示:
apiVersion: v1
data:
  primaryKey: <base64 encoding of Azure Log Analytics workspace primary key>
  workspaceId: <base64 encoding of Azure Log Analytics workspace Id>
kind: Secret
metadata:
  name: log-workspace-secret
  namespace: <your datacontroller namespace>
type: Opaque
  • 若要创建机密,请运行:

    kubectl apply -f <myLogAnalyticssecret.yaml> --namespace <mynamespace>
    
  • 若要在默认编辑器中以 yaml 文件的形式打开设置,请运行:

    kubectl edit datacontroller <DC name> --name <namespace>
    
  • 将 autoUploadLogs 属性更新为 "true" 并保存文件

启用将日志自动上传到 Azure Log Analytics 工作区的功能

若要禁用自动上传日志,请运行:

kubectl edit datacontroller <DC name> --name <namespace>
  • 将 autoUploadLogs 属性更新为 "false" 并保存文件

以间接模式将日志上传到 Azure Monitor

若要上传 Azure Arc 和已启用 Azure Arc 的 PostgreSQL 服务器启用的 SQL 托管实例的日志,请运行以下 CLI 命令 -

  1. 将所有日志导出到指定文件:

    注意

    使用命令 az arcdata dc export 导出使用情况/账单信息、指标和日志需要跳过 SSL 验证。 系统将提示你跳过 SSL 验证,或者你可以设置 AZDATA_VERIFY_SSL=no 环境变量以避免出现提示。 目前无法为数据控制器导出 API 配置 SSL 证书。

    az arcdata dc export --type logs --path logs.json  --k8s-namespace arc
    
  2. 将日志上传到 Azure Monitor Log Analytics 工作区:

    az arcdata dc upload --path logs.json
    

在 Azure 门户中查看日志

上传日志后,你应该能够使用日志查询资源管理器对其进行查询,如下所示:

  1. 打开 Azure 门户,在顶部搜索栏中按名称搜索你的工作区,然后选择该工作区。
  2. 在左侧面板中选择“日志”。
  3. 选择“开始”(如果你不熟悉 Log Analytics,可以选择“入门”页上的链接来详细了解它)。
  4. 如果你是第一次使用 Log Analytics,请遵循教程详细了解 Log Analytics。
  5. 展开表列表底部的自定义日志,你将看到名为“sql_instance_logs_CL”或“postgresInstances_postgresql_logs_CL”的表。
  6. 选择表名称旁边的“眼睛”图标。
  7. 选择“在查询编辑器中查看”按钮。
  8. 查询编辑器中现在有一个查询,它会显示日志中最近的 10 个事件。
  9. 在这里,可以使用查询编辑器、设置警报等来尝试查询日志。

自动上传(可选)

如果你要按计划上传指标和日志,可以创建脚本,并每隔几分钟按照计时器运行该脚本。 下面是使用 Linux shell 脚本自动执行上传的示例。

在喜欢的文本/代码编辑器中,将以下脚本添加到该文件,并另存为脚本可执行文件(如 .sh (Linux/Mac)、.cmd.bat.ps1 (Windows))。

az arcdata dc export --type logs --path logs.json --force --k8s-namespace arc
az arcdata dc upload --path logs.json

使脚本文件可执行。

chmod +x myuploadscript.sh

每隔 20 分钟运行该脚本:

watch -n 1200 ./myuploadscript.sh

还可以使用 cron 或 Windows 任务计划程序等作业计划程序或者 Ansible、Puppet 或 Chef 等业务流程协调程序。

将指标和日志上传到 Azure Monitor

将使用情况数据、指标和日志上传到 Azure Monitor

将计费数据上传到 Azure 并在 Azure 门户中查看

在 Azure 门户中查看 Azure Arc 数据控制器资源