共用方式為


使用 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 效能計數器可用的常見執行個體。

執行個體名稱 Description
_總 所有執行個體的總計
* 所有實例
(/|/var) 比對名為 / 或 /var 的執行個體

Windows 效能計數器

顯示設定 Windows 效能計數器的螢幕擷取畫面。

請遵循以下步驟,新增要收集的新 Windows 效能計數器。 不支援 V2 Windows 效能計數器。

  1. 選取 [新增效能計數器]。

  2. 在格式 object(instance)\counter 的文字方塊中輸入計數器的名稱。 當您開始輸入時,會出現常用計數器的相符清單。 您可以從清單中選取計數器,或輸入您自己的計數器。 您也可以指定 object\counter 來傳回特定計數器的所有實例。

    從具名執行個體收集 SQL Server 效能計數器時,所有具名執行個體的計數器都會以 MSSQL$ 開頭,後面接著該執行個體的名稱。 例如,若要從具名 SQL 實例 INST2 的資料庫效能物件收集所有資料庫的 Log Cache 命中率計數器,請指定 MSSQL$INST2:Databases(*)\Log Cache Hit Ratio

  3. 當您新增計數器時,它會使用預設值 10 秒作為其 取樣間隔。 如果您想要減少所收集效能資料的儲存需求,請將此預設值變更為最多 1,800 秒 (30 分鐘) 的較高值。

  4. 完成新增計數器之後,請選取畫面頂端的 [套用] 以儲存設定。

Linux 效能計數器

顯示設定 Linux 效能計數器的螢幕擷取畫面。

請遵循此程序,新增要收集的新 Linux 效能計數器。

  1. 選取 [新增效能計數器]。
  2. 在格式 object(instance)\counter 的文字方塊中輸入計數器的名稱。 當您開始輸入時,會出現常用計數器的相符清單。 您可以從清單中選取計數器,或輸入您自己的計數器。
  3. 物件的所有計數器都會使用相同的 取樣間隔。 預設值是 [10 秒]。 如果您想要減少所收集效能資料的儲存需求,請將此預設值變更為最多 1,800 秒 (30 分鐘) 的較高值。
  4. 完成新增計數器之後,請選取畫面頂端的 [套用] 以儲存設定。

在組態檔中設定 Linux 效能計數器

您可以選擇在 Linux 代理程式上編輯組態檔,而不是使用 Azure 入口網站來設定 Linux 效能計數器。 要收集的效能計量是由 /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.conf 中的組態所控制。

要收集的效能度量的每個物件或類別都應在組態檔中定義為單一 <source> 元素。 語法遵循以下模式:

<source>
    type oms_omi
    object_name "Processor"
    instance_regex ".*"
    counter_name_regex ".*"
    interval 30s
</source>

下表說明此元素中的參數。

參數 Description
object_name 集合的物件名稱。
instance_regex 定義要收集哪些實例的 正規表示式 。 此值 .* 會指定所有實例。 若要僅收集_Total執行個體的處理器指標,您可以指定 _Total。 若要僅收集 crond 或 sshd 執行個體的程序度量,您可以指定 (crond\|sshd)
counter_name_regex 定義要收集的計數器 (物件) 的 正規表示式 。 若要收集物件的所有計數器,請指定 .*。 例如,若要只收集記憶體物件的交換空間計數器,您可以指定 .+Swap.+
間隔 收集物件計數器的頻率。

下表列出您可以在組態檔中指定的物件和計數器。 某些應用程式可以使用更多計數器。 如需詳細資訊,請參閱 在 Azure 監視器中收集 Linux 應用程式的效能計數器

物件名稱 計數器名稱
邏輯磁碟 未使用的 inode %
邏輯磁碟 % 可用空間
邏輯磁碟 % 已使用的 i節點
邏輯磁碟 % 已使用空間
邏輯磁碟 磁碟讀取位元組/秒
邏輯磁碟 磁碟讀取次數/秒
邏輯磁碟 磁碟傳輸/秒
邏輯磁碟 磁碟寫入位元組(每秒)
邏輯磁碟 磁碟寫入/秒
邏輯磁碟 免費兆位元組
邏輯磁碟 邏輯磁碟位元組/秒
Memory % 可用記憶體
Memory % 可用交換空間
Memory % 已用記憶體
Memory % 已使用交換空間
Memory 可用的記憶體容量 (以 MBytes 計算)
Memory 可用的 MB 記憶體交換區
Memory 頁面閱讀次數/秒
Memory 頁面寫入次數/秒
Memory 頁數/秒
Memory 已使用百萬位元組交換空間
Memory 已用記憶體 MBytes
網路 傳輸的位元組總數
網路 接收的位元組總數
網路 總位元組數
網路 傳輸的封包總數
網路 收到的封包總數
網路 接收資料錯誤總數
網路 總 Tx 錯誤
網路 碰撞總數
實體磁碟 平均磁碟讀取秒數
實體磁碟 平均磁碟時間/每次傳輸
實體磁碟 平均磁碟秒/寫入
實體磁碟 實體磁碟位元組/秒
流程 Pct 特權時間
流程 Pct 使用者時間
流程 已用記憶體 kBytes
流程 虛擬共用記憶體
處理器 % DPC 時間
處理器 % 閒置時間
處理器 % 中斷時間
處理器 % IO 等待時間
處理器 % 美好時光
處理器 % 特殊權限時間
處理器 處理器時間百分比
處理器 % 使用者時間
System 空閒實體記憶體
System 分頁檔案中的可用空間
System 空閒虛擬記憶體
System Processes
System 儲存在分頁檔案中的大小
System 上線時間
System 使用者

下列組態是效能指標的預設值:

<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 ,並具有下表所列的屬性。

房產 Description
Computer 事件是從哪台電腦收集的。
計數器名稱 效能計數器的名稱。
CounterPath 計數器的完整路徑,格式為 \\<Computer\object>(instance)\counter。
計數值 計數器的數值。
實例名稱 事件實例的名稱。 如果沒有實例,則為空。
物件名稱 效能物件的名稱。
SourceSystem 從中收集資料的代理程式類型:

OpsManager – Windows 代理軟體,可以直接連線或透過 SCOM 連線
Linux — 所有 Linux 代理程式
AzureStorage – Azure 診斷
TimeGenerated 取樣資料的日期和時間。

尺寸估計

以 10 秒間隔收集特定計數器的粗略估計值是每個實例每天約 1 MB。 您可以使用下列公式來估計特定計數器的儲存需求:

1 MB x (計數器數目) x (代理程式數目) x (執行個體數目)

使用效能記錄來記錄查詢日志

下表提供擷取效能記錄的記錄查詢的不同範例。

Query Description
Perf 所有效能資料
效能 | 電腦 == "我的電腦" 來自特定電腦的所有效能資料
效能 | where CounterName == "目前磁碟佇列長度" 特定計數器的所有效能資料
性能數據 |其中 ObjectName == “處理器” 和 CounterName == “% 處理器使用時間” 和 InstanceName == “_Total” |按電腦彙總 AVGCPU = avg(CounterValue) 所有電腦的平均 CPU 使用率
效能 |其中 CounterName == “% 處理器時間” |依電腦彙總最大值 AggregatedValue = max(CounterValue) 所有電腦的最大 CPU 使用率
Perf | 過濾條件是 ObjectName == "LogicalDisk" 和 CounterName == "目前磁碟佇列長度" 和 Computer == "MyComputerName" | 按照 InstanceName 彙總 AggregatedValue = avg(CounterValue) 指定電腦的目前平均磁碟佇列長度(適用於所有執行個體)
效能 | 當 CounterName == "磁碟傳輸/秒" | 統計 AggregatedValue = percentile(CounterValue, 95) 按電腦彙總 所有電腦上磁碟傳輸/秒的第 95 個百分位數
效能 | 其中 CounterName == "% 處理器時間" 和 InstanceName == "_Total" | 彙總 AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1h), Computer 所有電腦的每小時平均 CPU 使用率
性能資料 | 其中 Computer == "MyComputer" 且 CounterName 開頭為 "%"(區分大小寫)且 InstanceName == "_Total" | 摘要 聚合值 = 百分位(CounterValue,70)按 時間生成(每1小時)進行分組,CounterName 特定電腦的每個百分比計數器的每小時第70百分位數
Perf | where CounterName == "% 處理器時間" 且 InstanceName == "_Total" 且 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 使用率
性能 |其中 ObjectName == “MSSQL$INST2:Databases” 和 InstanceName == “master” 來自具名 SQL Server 实例 INST2 的主資料庫資料庫效能對象的所有效能資料

後續步驟