你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将日志上传到 Azure Monitor
可以定期导出日志,然后将其上传到 Azure。 导出和上传数据还会在 Azure 中创建和更新数据控制器、SQL 托管实例及 PostgreSQL 服务器资源。
开始之前
在上传日志之前,需要执行以下操作:
本文中的示例使用尖括号 < ... >
来标识在运行脚本之前需要替换的值。 替换括号和括号中的值。
创建 Log Analytics 工作区
若要创建 Log Analytics 工作区,请执行这些命令以创建 Log Analytics 工作区,并将访问信息设置到环境变量中。
注意
如果你已有工作区,请跳过此步骤。
az monitor log-analytics workspace create --resource-group <resource group name> --workspace-name <some name you choose>
示例输出:
{
"customerId": "00000000-0000-0000-0000-000000000000",
"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": "<primarySharedKey>==",
"secondarySharedKey": "<secondarySharedKey>=="
}
在环境变量中保存主密钥,供稍后使用:
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 工作区
- 使用
WorkspaceID
和SharedAccessKey
为 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 命令 -
将所有日志导出到指定文件:
注意
使用命令
az arcdata dc export
导出使用情况/账单信息、指标和日志需要跳过 SSL 验证。 系统将提示你跳过 SSL 验证,或者你可以设置AZDATA_VERIFY_SSL=no
环境变量以避免出现提示。 目前无法为数据控制器导出 API 配置 SSL 证书。az arcdata dc export --type logs --path logs.json --k8s-namespace arc
将日志上传到 Azure Monitor Log Analytics 工作区:
az arcdata dc upload --path logs.json
在 Azure 门户中查看日志
上传日志后,你应该能够使用日志查询资源管理器对其进行查询,如下所示:
- 打开 Azure 门户,在顶部搜索栏中按名称搜索你的工作区,然后选择该工作区。
- 在左侧面板中选择“日志”。
- 选择“开始”(如果你不熟悉 Log Analytics,可以选择“入门”页上的链接来详细了解它)。
- 如果你是第一次使用 Log Analytics,请遵循教程详细了解 Log Analytics。
- 展开表列表底部的自定义日志,你将看到名为“sql_instance_logs_CL”或“postgresInstances_postgresql_logs_CL”的表。
- 选择表名称旁边的“眼睛”图标。
- 选择“在查询编辑器中查看”按钮。
- 查询编辑器中现在有一个查询,它会显示日志中最近的 10 个事件。
- 在这里,可以使用查询编辑器、设置警报等来尝试查询日志。
自动上传(可选)
如果你要按计划上传指标和日志,可以创建脚本,并每隔几分钟按照计时器运行该脚本。 下面是使用 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 等业务流程协调程序。