共用方式為


將記錄上傳至 Azure 監視器

您可定期匯出記錄,然後將其上傳至 Azure。 匯出和上傳記錄也會在 Azure 中建立和更新資料控制器、SQL 受控執行個體和 PostgreSQL 伺服器資源。

開始之前

上傳記錄之前,您必須:

  1. 建立記錄分析工作區
  2. 將識別碼和共用金鑰指派給環境變數

本文中的範例會使用角括弧 < ... > 來識別您必須在執行指令碼之前取代的值。 取代括弧和括弧內的值。

建立記錄分析工作區

若要建立記錄分析工作區,請執行下列命令來建立 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 工作區,如上節所述
  • 使用 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 監視器

若要上傳 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 監視器的記錄分析工作區:

    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 殼層指令碼來自動上傳的範例。

在慣用的文字/程式碼編輯器中,將下列指令碼新增至檔案,並另存為指令碼可執行檔,例如 .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 監視器

將使用量資料、計量和記錄上傳至 Azure 監視器

將計費資料上傳至 Azure,並在 Azure 入口網站中檢視

在 Azure 入口網站中檢視 Azure Arc 資料控制器資源