powershell - zabbix принимает процессы процессора и отправляет в% - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу контролировать процессы Windows windows в% с помощью zabbix, но элемент zabbix proc.cpu.util [Sqlsvr.exe] не поддерживается в Windows.

, поэтому я пытаюсь выполнить скрипт в powershell и выполнить егоzabbix, я не знаю, хорошая ли это идея, у тебя есть идея?

мой скрипт powershell для обработки процессора в%:

$test = Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process
-filter "Name='chrome'" | 
    Select-Object @{ Expression = {$_.PercentProcessorTime}} |Format-Table -AutoSize
     echo $test

у тебя есть идея взять процессоробрабатывать в% или брать только процессор в%?

1 Ответ

1 голос
/ 02 апреля 2019

Zabbix ожидает числовое значение от плагина. Он не предназначен для предоставления вам статистики, которую вы ищете, это инструменты производительности, такие как Newrelic. Ваш код возвращает коллекцию процессов. попробуйте это для процесса Chrome:

# 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));
...