Windows

Zabbix 低級發現 - 每個程序的 CPU 使用率 - 具有相同鍵的兩個項目

  • December 20, 2021

我正在嘗試使用 Zabbix 來監視 Windows Server 上不同程序的 CPU 使用情況。要監控的流程不是預先確定的。我想使用 LLD 來監控前 3 個 CPU 要求最高的程序。

目前,我創建了一個發現規則,該規則在給定時刻返回前 3 個 CPU 要求最高的程序,例如:

{
  {
     "name":"DistributedCacheService",
     "value":"9238.09375"
  },
  {
     "name":"System",
     "value":"6649.234375"
  },
  {
     "name":"svchost",
     "value":"5224.40625"
  }
}

然後我使用 json 路徑和項目原型創建了宏,這就是我開始遇到問題的地方。我正在使用之前創建的 LLD 宏作為項目名稱,並且正在使用 system.run 命令來獲取關鍵欄位中的值。項目名稱應該是程序名稱和項目鍵,值應該是該程序的CPU使用率。

$$ enter image description here $$$$ 1 $$ $$ 1 $$: https://i.stack.imgur.com/HuNbd.png 測試發現規則和項目原型時,一切執行正常,但是當我嘗試執行該發現規則時,我收到錯誤

無法創建項目:具有相同鍵的項目”system.run$$ powershell.exe -nolog -command “(Get-Process | Sort-Object CPU -desc | Select-Object -index 0 | Format-Table -Aut… $$“已經存在。

首先,沒有其他項目具有相同的密鑰。

其次,當我的發現規則將檢測到其他程序時,必須創建具有相同密鑰的其他項目。其他名稱,但相同的鍵

甚至可以使用 LLD 創建程序 CPU 使用情況監控嗎?我不想被預定義的流程卡住,我想用 LLD 動態添加它們。

Zabbix 要求單個主機的密鑰是唯一的,因此如果您按名稱儲存程序( https://www.zabbix.com/documentation/current/manual),當存在多個相同命名的程序時會遇到問題/配置/項目/項目

Get-Process | sort "CPU" -Descending | select -First 3

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
   117   247.48     170.53   3,682.67    2232   1 Minesweeper
    47   564.25     528.42   3,491.36   15768   1 calc
    33   126.67      93.09   1,179.27   12960   1 Minesweeper

程序名稱不需要是唯一的,因此 Get-Process 返回具有重複 ProcessName 值的對象。

您可以添加-Uniqueselectcmdlet 以刪除重複項。這可能會隱藏您要記錄的數據。

Get-Process | sort "CPU" -Descending | select -First 3 -Unique

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
   117   248.00     171.31   3,683.27    2232   1 Minesweeper
    47   563.74     527.91   3,491.36   15768   1 calc

Zabbix 團隊似乎在這裡提供了解決此問題的方法:https: //support.zabbix.com/browse/ZBXNEXT-164

UserParameter=top,top -n 1 -b|head -20

引用自:https://serverfault.com/questions/1024634