將記錄上傳至 Azure 監視器
您可定期匯出記錄,然後將其上傳至 Azure。 匯出和上傳記錄也會在 Azure 中建立和更新資料控制器、SQL 受控執行個體和 PostgreSQL 伺服器資源。
開始之前
上傳記錄之前,您必須:
本文中的範例會使用角括弧 < ... >
來識別您必須在執行指令碼之前取代的值。 取代括弧和括弧內的值。
建立記錄分析工作區
若要建立記錄分析工作區,請執行下列命令來建立 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"
}
將識別碼和共用金鑰指派給環境變數
將記錄工作區分析 customerId
儲存為環境變數,以供稍後使用:
SET WORKSPACE_ID=<customerId>
此命令會傳回連線至記錄分析工作區所需的存取金鑰:
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 監視器
若要上傳 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 監視器的記錄分析工作區:
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 殼層指令碼來自動上傳的範例。
在慣用的文字/程式碼編輯器中,將下列指令碼新增至檔案,並另存為指令碼可執行檔,例如 .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)。