На хосте(ах) в конфигах создан UserParameter и EnableRemoteCommands=1 ,и LogRemoteCommands=1
UserParameter = CpuTop20, powershell -noninteractive -File "C:\Program Files\Zabbix Agent\CPU_top.ps1" .
Он работает в шаблоне, выплёвывает топ CPU текст , такой вариант имеет своё место для суточного мониторинга нагрузки отдельного ПК. Но нужно выполнение по триггеру , создано действие .
Тип операции - Удаленная команда
Тип - Пользовательский скрипт
Выполнять на - Zabbix агент
"system.run[powershell.exe -NoProfile -NoLogo -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\CPU_top.ps1" ]"
Пробовал - просто CpuTop20 или zabbix_agentd -p
Подскажите как правильно ...
Я честно говоря никогда не пробовал запускать скрипты на Windows. Все время только на Linux. Там достаточно было написать bash скрипт и в действиях указать только путь к этому скрипту и все. Никаких дополнительных параметров и окружение. Только сам скрипт. Дальше если что-то не работает, смотреть лог на агенте. Там должен быть отражен запуск скрипта по событию триггера.
@zerox Посмотреть лог , мысль светлая . Я увеличил DebugLevel=4. Буду пробовать методом подбора .
Доброго день! Сам задал , сам победил :)
Если кому интересно , то сам запуск скрипта ps1 работает . И отправка через zabbix_sender .А вот скрипт пришлось допилить .
$CPU_top =Get-CPUPercent
function Get-CPUPercent
{
$CPUPercent = @{
Name = 'CPUPercent'
Expression = {
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round( ($_.CPU * 100 / $TotalSec), 2)
}
}
Get-Process | Select-Object -Property Name, $CPUPercent, Description | Sort-Object -Property CPUPercent -Descending | Select-Object -First 10 | ft -HideTableHeaders | out-string
}
$CPU_top
& "C:\Zabbix\bin\zabbix_sender.exe" -z ip.ip.ip.ip -s "name PC" -k 12345 -o "($CPU_top)"
И тогда красиво прилетает табличка топ10 cpu