本文說明如何使用命令列工具,大規模為虛擬機器、虛擬機器擴展集和支援 Arc 的伺服器啟用監視,以便使用基礎結構即程式碼 (IaC) 工具和自動化方法。 這些方法讓你能持續在虛擬機群中部署監控,並將監控設定整合進 DevOps 流程中。
備註
- 要啟用使用 Azure 入口網站監控單一虛擬機,請參見 教學:啟用 Azure 虛擬機的強化監控。
- 要在 Azure 入口網站中啟用虛擬機器規模集的監控,請參見 教學:啟用 Azure 虛擬機器規模集監控。
支援的機器
- Azure 虛擬機器
- Azure 虛擬機器擴展集
- 已啟用 Arc 的伺服器
有關支援的作業系統清單,請參見 Azure 監視器 代理支援作業系統。
先決條件
- Azure 監視器 工作區,如果您啟用 OpenTelemetry 計量(建議所有部署都使用此體驗)。 請參見 「建立 Azure 監視器 工作區」。
- 如果您啟用以記錄為基礎的指標或收集記錄,則為 Log Analytics 工作區。 基於日誌的指標是經典體驗,通常用於與現有實作的相容性。 請參閱 建立日誌分析工作區。
- 建立資料收集規則 (DCR) 並將其與 VM 建立關聯所需的權限。 請參閱資料收集規則權限。
- 查詢式計量警示的受控識別,如果您在 Azure 監視器 工作區中針對 OpenTelemetry 計量建立警示規則。 使用使用者指派的管理身份,並依照 查詢式指標警示概述(預覽)所述授予所需權限。
- 如果您在監控託管於 Azure 外的虛擬機,請使用 Azure Connected Machine 代理。 你必須先安裝 Connected Machine agent,讓機器能透過支援 Azure Arc 的伺服器來管理,才能安裝 Azure 監視器 代理並啟用監控功能。 參見 「連接機器至 Arc 啟用伺服器」。
概觀
透過 Azure 監視器 從訪客作業系統及虛擬機器工作負載收集資料,實現完整監控需三個步驟,如下表所示。 當你 啟用強化監控 或在 Azure 入口網站 建立 DCR 時,這些步驟都會自動完成。
| Step | 說明 |
|---|---|
| 安裝 Azure 監視器 代理程式 | 該代理必須安裝在每台被監控的虛擬機器上。 此過程只需完成一次,因為客服人員可使用任意數量的 DCR,每個 DCR 收集不同資料。 |
| 制定資料收集規則(DCR) | 每個DCR都指定要收集的資料及傳送地點。 你可以根據需求自行建立 DCR,或使用現有的。 你需要了解不同類型的DCR及其用途,才能決定要使用哪一種。 |
| 將 DCR 與虛擬機器關聯 | 當你建立虛擬機與 DCR 的關聯時,代理程式會下載該 DCR 並開始資料收集。 建立多個 DCR 的關聯,讓客服人員收集不同類型的資料。 移除關聯以停止資料收集。 |
備註
請使用以下選項,以大規模啟用虛擬機監控:
監控功能包含在 Essential Machine Management 中,能自動啟用虛擬機的多項管理功能。 請參見 《基本機器管理》。
若要使用 Azure 原則 啟用大規模監控,請參閱 使用 Azure 原則 啟用 VM 見解。
安裝 Azure 監視器代理程式
第一步是在你的虛擬機器和啟用 Arc 的伺服器上安裝 Azure 監視器 代理擴充功能。
Azure 虛擬機器
# Windows
az vm extension set \
--name AzureMonitorWindowsAgent \
--publisher Microsoft.Azure.Monitor \
--vm-name <vm-name> \
--resource-group <resource-group>
# Linux
az vm extension set \
--name AzureMonitorLinuxAgent \
--publisher Microsoft.Azure.Monitor \
--vm-name <vm-name> \
--resource-group <resource-group>
Arc 支援伺服器
# Windows
az connectedmachine extension create \
--name AzureMonitorWindowsAgent \
--publisher Microsoft.Azure.Monitor \
--type AzureMonitorWindowsAgent \
--machine-name <arc-server-name> \
--resource-group <resource-group> \
--location <location>
# Linux
az connectedmachine extension create \
--name AzureMonitorLinuxAgent \
--publisher Microsoft.Azure.Monitor \
--type AzureMonitorLinuxAgent \
--machine-name <arc-server-name> \
--resource-group <resource-group> \
--location <location>
虛擬機器擴展集
# Windows
az vmss extension set \
--name AzureMonitorWindowsAgent \
--publisher Microsoft.Azure.Monitor \
--vmss-name <vmss-name> \
--resource-group <resource-group>
# Linux
az vmss extension set \
--name AzureMonitorLinuxAgent \
--publisher Microsoft.Azure.Monitor \
--vmss-name <vmss-name> \
--resource-group <resource-group>
建立資料收集規則
資料收集規則(DCR)定義了從 Azure 監視器 代理收集哪些資料,以及要傳送到哪裡。 你可以根據想監控的項目建立不同類型的 DCR。 部分 DCR 會啟用 Azure 入口網站的功能,例如虛擬機監控體驗的強化,而其他則會收集特定類型的日誌或指標,供分析或警示使用。
DCR 是以 JSON 結構化的。 當你使用 Azure 入口網站建立 DCR 時,不需要知道 DCR 結構。 不過你可能需要了解 DCR 結構,才能從零開始建立 DCR,或是為現有 DCR 加入進階功能,例如加入轉換功能。
從 Azure 入口網站啟動時,預設行為是為所選監控設定建立新的 DCR。 或者你也可以選擇現有的 DCR,以簡化你的監控設定。 如果你的設定同時將資料傳送到同一區域的 Azure 監視器 工作區和 Log Analytics 工作區,導入時會嘗試為兩個目的地使用同一個 DCR。
透過 Azure 入口網站進行導入時,也可以包含 OpenTelemetry 的每個處理程序計量、建議的警示,以及 Grafana 儀表板。 關於此入口網站工作流程的詳細資訊,請參見 Tutorial: 啟用Azure虛擬機的增強監控。
下表描述了用於虛擬機監控的最常見 DCR 類型。 如需完整的 DCR 類型及其結構清單,請參閱 資料收集規則結構。 關於建立 DCR 的詳細資訊,請參見 資料收集規則:建立與編輯。
| DCR 類型 | 說明 |
|---|---|
| OpenTelemetry 指標 | 採用 OpenTelemetry 標準收集系統層級效能計數器。 這是 Azure 入口網站中新 VM 監控部署的推薦指標路徑。 請使用以下的 DCR 定義。 修改該 counterSpecifiers 區塊以新增要收集的指標。 請參閱 Azure 虛擬機的自訂 OpenTelemetry 指標。 |
| 基於日誌的指標 | 在 Log Analytics 工作區中收集預定義的效能計數器。 啟用 Azure 入口網站的經典日誌基礎體驗。 請使用以下的 DCR 定義。 這個 DCR 不應該被修改。 |
| 日志 | 從虛擬機收集不同類型的日誌,包括 Windows 事件和 Syslog。 這些 DCR 不會在 Azure 監視器 中啟用額外體驗,但可以用 Log Analytics 分析並用於警報。 請參閱 「使用 Azure 監視器 從虛擬機器收集訪客日誌資料 」,了解不同可用資料來源的說明。 請參閱 Azure 監視器 中的資料收集規則(DCR)範例 ,以取得日誌收集的 DCR 定義。 |
請使用以下 DCR 定義來啟用虛擬機的強化監控。 唯一需要修改的是更新每個定義中的位置和目的地工作區,讓 OpenTelemetry 指標指向 Azure 監視器 工作空間,或日誌式指標指向 Log Analytics 工作空間。
基於指標的體驗(預覽)
{
"location": "<location>",
"properties": {
"dataSources": {
"performanceCountersOTel": [
{
"streams": "Microsoft-OtelPerfMetrics",
"samplingFrequencyInSeconds": 60,
"counterSpecifiers": [
"system.filesystem.usage",
"system.disk.io",
"system.disk.operation_time",
"system.disk.operations",
"system.memory.usage",
"system.network.io",
"system.cpu.time",
"system.network.dropped",
"system.network.errors",
"system.uptime"
],
"name": "OtelPerfCounters"
}
]
},
"destinations": {
"monitoringAccounts": [
{
"accountResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Monitor/accounts/<workspace-name>",
"name": "MonitoringAccount"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-OtelPerfMetrics"
],
"destinations": [
"MonitoringAccount"
]
}
]
}
}
以記錄為基礎的體驗 (傳統)
{
"location": "<location>",
"properties": {
"description": "Data collection rule for VM Insights.",
"dataSources": {
"performanceCounters": [
{
"name": "VMInsightsPerfCounters",
"streams": [
"Microsoft-InsightsMetrics"
],
"scheduledTransferPeriod": "PT1M",
"samplingFrequencyInSeconds": 60,
"counterSpecifiers": [
"\\VmInsights\\DetailedMetrics"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>",
"name": "VMInsightsPerf-Logs-Dest"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-InsightsMetrics"
],
"destinations": [
"VMInsightsPerf-Logs-Dest"
]
}
]
}
}
將 DCR 定義存為 JSON 檔案,並用以下指令建立 DCR。
az monitor data-collection rule create \
--name <dcr-name> \
--resource-group <resource-group> \
--location <location> \
--rule-file <path-to-json-file>
將 DCR 與虛擬機器關聯
最後一步是建立 DCR 與虛擬機之間的關聯。 這會啟動 DCR,並指示 Azure 監視器 代理依照 DCR 定義的規則開始收集資料。 如果你想收集不同類型的資料,可以為虛擬機建立多個關聯。 你也可以移除關聯,以停止特定 DCR 的資料收集,而不會影響其他關聯或代理人本身。
Azure VM
az monitor data-collection rule association create \
--name "dcr-association" \
--rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/microsoft.insights/datacollectionrules/<dcr-name>
--resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Compute/virtualMachines/<vm-name>
Azure 虛擬機器擴展集
az monitor data-collection rule association create \
--name "dcr-association" \
--rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/microsoft.insights/datacollectionrules/<dcr-name>
--resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmss-name>
Arc 支援伺服器
az monitor data-collection rule association create \
--name "dcr-association" \
--rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/microsoft.insights/datacollectionrules/<dcr-name> \
--resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HybridCompute/machines/<arc-server-name>
啟用網路隔離
VM 深入解析支持的網路隔離有兩種方法,如下表所述。
| 方法 | 說明 |
|---|---|
| 私人連結 | 請參見 「啟用 Azure 監視器 Agent 的網路隔離,使用私有連結」。 此方法目前不支援 基於指標的收集。 |
| 網路安全界限 | 請參見 「配置 Azure 監視器 with Network Security Perimeter」。 |
相關內容
- 監控 Azure 中的虛擬機器 ——檢視虛擬機與擴展套件的核心監控功能。
- 教學:啟用 Azure 虛擬機的增強監控 - 透過 Azure 入口網站啟用單一虛擬機的監控。
- 教學:啟用 Azure 虛擬機 scale set 的監控 - 透過 Azure 入口網站啟用 scale set 的監控。
- 使用 Azure 監視器 從虛擬機器收集訪客日誌資料 - 新增訪客日誌,如 Windows 事件、Syslog、IIS 日誌及自訂日誌。
- 在 Azure 監視器 中排除虛擬機監控 問題——調查代理程式安裝及常見的入職問題。