我希望zabbix以%的百分比监视Windows cpu进程,但Windows不支持zabbix项目proc.cpu.util [Sqlsvr.exe]。
所以我尝试用powershell编写脚本并由zabbix执行,我不知道这是个好主意,你有主意吗?
我的Powershell脚本采用%的cpu进程:
$test = Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process
-filter "Name='chrome'" |
Select-Object @{ Expression = {$_.PercentProcessorTime}} |Format-Table -AutoSize
echo $test
您是否打算将CPU进程以%或仅将CPU进程以%进行?
答案 0 :(得分:1)
Zabbix需要插件提供数字值。它并非旨在为您提供所需的统计信息,而是像Newrelic这样的性能工具。您的代码返回进程的集合。尝试在镀铬工艺中使用此方法:
# Declare collection
$t = New-Object System.Collections.ArrayList;
# For loop 5 times
For ($i=0; $i -lt 5; $i++) {
# Add slot cpu time
[void]$t.Add( (Get-Counter "\Process(chrome)\% Processor Time").CounterSamples.CookedValue );
sleep -Seconds 1;
}
# Return average with two decimal places
write-host ([math]::Round(($t | Measure-Object -Average).Average, 2));