使用 Log Analytics 代理程式收集 Windows 和 Linux 效能資料來源
Windows 和 Linux 的效能計數器可讓您深入了解硬體元件、作業系統及應用程式的效能。 Azure 監視器可以經常從 Log Analytics 代理程式收集效能計數器,以進行近乎即時的分析。 Azure 監視器也可以彙總效能資料,以進行長期分析和報告。
重要
舊版 Log Analytics 代理程式自 2024 年 8 月 31 日起已淘汰。 Microsoft 將不再提供對 Log Analytics 代理程式的任何支援。 如果您使用 Log Analytics 代理程式來將資料內嵌至 Azure 監視器,請立即移轉至 Azure 監視器代理程式。
設定效能計數器
從 Log Analytics 工作區的舊版代理程式管理功能表設定效能計數器。
當您第一次為新的工作區設定 Windows 或 Linux 效能計數器時,系統會提供選項,讓您快速建立數個常用的計數器。 這些計數器旁邊皆會列出核取方塊。 確認已核取所有想一開始就建立的計數器,然後選取 [加入選取的效能計數器]。
對於 Windows 效能計數器,您可以為每個效能計數器選擇特定執行個體。 對於 Linux 效能計數器,您選擇的每個計數器的執行個體會套用至父計數器的所有子計數器。 下表顯示可用於 Windows 和 Linux 效能計數器的常見執行個體。
執行個體名稱 | 描述 |
---|---|
_Total | 所有執行個體的總數 |
* | 所有執行個體 |
(/|/var) | 比對名為 / 或 /var 的執行個體 |
Windows 效能計數器
請遵循此程序以加入要收集的新 Windows 效能計數器。 不支援 V2 Windows 效能計數器。
選取 [新增效能計數器]。
在文字方塊中輸入計數器名稱,格式為 object(instance)\counter。 開始輸入時,會出現符合的常用計數器清單。 您可以從清單中選取計數器,或自行輸入。 您也可以指定 object\counter,以傳回特定計數器的所有執行個體。
從具名執行個體收集 SQL Server 效能計數器時,所有具名執行個體的計數器會以 MSSQL$ 作為開頭,後面接著執行個體的名稱。 例如,若要從具名 SQL 執行個體 INST2 的資料庫效能物件收集所有資料庫的「記錄快取命中率」計數器,請指定
MSSQL$INST2:Databases(*)\Log Cache Hit Ratio
。新增計數器時,它會以 10 秒作為 [取樣間隔時間] 的預設值。 如果您想要降低所收集之效能資料的儲存空間需求,請將此預設值變更為最多 1800 秒 (30 分鐘)。
完成新增計數器後,選取畫面頂端的 [套用] 以儲存設定。
Linux 效能計數器
請遵循此程序以加入要收集的新 Linux 效能計數器。
- 選取 [新增效能計數器]。
- 在文字方塊中輸入計數器名稱,格式為 object(instance)\counter。 開始輸入時,會出現符合的常用計數器清單。 您可以從清單中選取計數器,或自行輸入。
- 物件的所有計數器都會使用相同的 [取樣間隔時間] 。 預設值是 [10 秒]。 如果您想要降低所收集之效能資料的儲存空間需求,請將此預設值變更為最多 1800 秒 (30 分鐘)。
- 完成新增計數器後,選取畫面頂端的 [套用] 以儲存設定。
在組態檔中設定 Linux 效能計數器
除了透過使用 Azure 入口網站設定 Linux 效能計數器,您還可以選擇在 Linux 代理程式上編輯組態檔。 要收集的效能計量是由 /etc/opt/microsoft/omsagent/<工作區識別碼>/conf/omsagent.conf 中的組態所控制。
要收集之效能計量的每個物件或類別都應該當成單一 <source>
元素定義於組態檔中。 語法遵循此處的模式:
<source>
type oms_omi
object_name "Processor"
instance_regex ".*"
counter_name_regex ".*"
interval 30s
</source>
下表說明此元素中的參數。
參數 | 描述 |
---|---|
object_name | 收集的物件名稱。 |
instance_regex | 此「規則運算式」會定義要收集的執行個體。 值 .* 指定所有執行個體。 若只要收集 _Total 執行個體的處理器計量,您可以指定 _Total 。 若只要收集 crond 或 sshd 執行個體的程序計量,您可以指定 (crond\|sshd) 。 |
counter_name_regex | 此「規則運算式」會定義要收集的計數器 (針對物件)。 若要收集物件的所有計數器,請指定 .* 。 若只要收集記憶體物件的交換空間計數器,舉例來說,您可以指定 .+Swap.+ |
interval | 物件計數器的收集頻率。 |
下表列出您可以在組態檔中指定的物件和計數器。 某些應用程式有更多計數器可供使用。 如需更多資訊,請參閱在 Azure 監視器中收集 Linux 應用程式的效能計數器。
物件名稱 | 計數器名稱 |
---|---|
Logical Disk | % Free Inodes |
Logical Disk | 可用空間 % |
Logical Disk | % Used Inodes |
Logical Disk | % Used Space |
Logical Disk | 磁碟讀取位元組/秒 |
Logical Disk | 磁碟讀取/秒 |
Logical Disk | 磁碟傳輸量/秒 |
Logical Disk | 磁碟寫入位元組/秒 |
Logical Disk | Disk Writes/sec |
Logical Disk | Free Megabytes |
Logical Disk | Logical Disk Bytes/sec |
記憶體 | % Available Memory |
記憶體 | 可用的交換空間 % |
記憶體 | % Used Memory |
記憶體 | 使用的交換空間 % |
記憶體 | Available MBytes Memory |
記憶體 | 可用的 MB 數交換 |
記憶體 | Page Reads/sec |
記憶體 | 頁面寫入數/秒 |
記憶體 | Pages/sec |
記憶體 | 使用的 MB 交換空間 |
記憶體 | Used Memory MBytes |
網路 | 傳輸的位元組總數 |
網路 | 接收的位元組總數 |
網路 | 位元組總數 |
網路 | Total Packets Transmitted |
網路 | Total Packets Received |
網路 | Total Rx Errors |
網路 | Total Tx Errors |
網路 | Total Collisions |
實體磁碟 | 平均磁碟秒數/讀取 |
實體磁碟 | Avg.Disk sec/Transfer |
實體磁碟 | Avg.Disk sec/Write |
實體磁碟 | 實體磁碟位元組數/秒 |
處理 | Pct Privileged Time |
處理 | Pct User Time |
處理 | Used Memory kBytes |
處理 | Virtual Shared Memory |
處理器 | % DPC Time |
處理器 | % Idle Time |
處理器 | % Interrupt Time |
處理器 | % IO Wait Time |
處理器 | % Nice Time |
處理器 | 授權的時間 % |
處理器 | % Processor Time |
處理器 | % User Time |
系統 | Free Physical Memory |
系統 | Free Space in Paging Files |
系統 | Free Virtual Memory |
系統 | 程序 |
系統 | Size Stored In Paging Files |
系統 | 上線時間 |
系統 | 使用者 |
下列設定是效能計量的預設組態:
<source>
type oms_omi
object_name "Physical Disk"
instance_regex ".*"
counter_name_regex ".*"
interval 5m
</source>
<source>
type oms_omi
object_name "Logical Disk"
instance_regex ".*"
counter_name_regex ".*"
interval 5m
</source>
<source>
type oms_omi
object_name "Processor"
instance_regex ".*"
counter_name_regex ".*"
interval 30s
</source>
<source>
type oms_omi
object_name "Memory"
instance_regex ".*"
counter_name_regex ".*"
interval 30s
</source>
資料集合
只要代理程式有安裝相關計數器,Azure 監視器就會依照其指定的取樣間隔時間,收集全部代理程式上所有指定的效能計數器。 資料不會彙總。 在 Log Analytics 工作區所指定的期間,所有記錄查詢檢視中都會提供未經處理資料。
效能記錄屬性
效能記錄都具有 Perf 類型以及列於下表的屬性。
屬性 | 說明 |
---|---|
電腦 | 收集事件的來源電腦。 |
CounterName | 效能計數器的名稱。 |
CounterPath | 計數器的完整路徑,格式為 \\<Computer>\object(instance)\counter。 |
CounterValue | 計數器的數值。 |
InstanceName | 事件執行個體的名稱。 如果沒有執行個體即為空白。 |
ObjectName | 效能物件的名稱。 |
SourceSystem | 收集資料的來源代理程式類型: OpsManager – Windows 代理程式,直接連接或 SCOM Linux – 所有的 Linux 代理程式 AzureStorage – Azure 診斷 |
TimeGenerated | 資料取樣的日期和時間。 |
大小估計值
特定計數器集合的約略估計是依照每個執行個體 10 秒間隔,每天約 1 MB。 您可以使用下列公式,評估特定計數器的儲存需求:
1 MB x (計數器數目) x (代理程式數目) x (執行個體數目)
記錄查詢與效能記錄
下表提供擷取效能記錄的不同記錄查詢範例。
查詢 | 描述 |
---|---|
效能 | 所有效能資料 |
Perf | where Computer == "MyComputer" | 來自特定電腦的所有效能資料 |
Perf | where CounterName == "Current Disk Queue Length" | 來自特定計數器的所有效能資料 |
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AVGCPU = avg(CounterValue) by Computer | 所有電腦的平均 CPU 使用率 |
Perf | where CounterName == "% Processor Time" | summarize AggregatedValue = max(CounterValue) by Computer | 所有電腦的最大 CPU 使用率 |
Perf | where ObjectName == "LogicalDisk" and CounterName == "Current Disk Queue Length" and Computer == "MyComputerName" | summarize AggregatedValue = avg(CounterValue) by InstanceName | 指定電腦之所有執行個體的平均目前磁碟佇列長度 |
Perf | where CounterName == "Disk Transfers/sec" | summarize AggregatedValue = percentile(CounterValue, 95) by Computer | 所有電腦之第 95 個百分位數的 Disk Transfers/Sec |
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1h), Computer | 所有電腦每小時平均 CPU 使用率 |
Perf | where Computer == "MyComputer" and CounterName startswith_cs "%" and InstanceName == "_Total" | summarize AggregatedValue = percentile(CounterValue, 70) by bin(TimeGenerated, 1h), CounterName | 特定電腦每小時每個百分比計數器的 70 個百分位數 |
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" and Computer == "MyComputer" | summarize ["min(CounterValue)"] = min(CounterValue), ["avg(CounterValue)"] = avg(CounterValue), ["percentile75(CounterValue)"] = percentile(CounterValue, 75), ["max(CounterValue)"] = max(CounterValue) by bin(TimeGenerated, 1h), Computer | 特定電腦每小時平均、最小、最大和 75 個百分位數的 CPU 使用量 |
Perf | where ObjectName == "MSSQL$INST2:Databases" and InstanceName == "master" | 資料庫效能物件中的所有效能資料適用於來自具名 SQL Server 執行個體 INST2 的 master 資料庫 |
下一步
- 從 Linux 應用程式收集效能計數器,包括 MySQL 和 Apache HTTP Server。
- 了解記錄查詢,以分析從資料來源和解決方案收集到的資料。
- 將收集的資料匯出至 Power BI 以進行更多視覺效果和分析。