powershell-zabbix使用cpu进程并发送%

时间:2019-04-02 08:41:31

标签: powershell zabbix

我希望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进程以%进行?

1 个答案:

答案 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));