Zabbix 低級發現 - 每個程序的 CPU 使用率 - 具有相同鍵的兩個項目
我正在嘗試使用 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 值的對象。
您可以添加
-Unique
到select
cmdlet 以刪除重複項。這可能會隱藏您要記錄的數據。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