СКАЧАТЬ оригинал Источник github Zabbix_Service_Monitor
В конфигурации заббикс агента прописать
UserParameter=orgservice.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\path\to\get_services.ps1"
UserParameter=orgservice.state[*],powershell -NoProfile -ExecutionPolicy Bypass -File C:\path\to\get_servicestate.ps1 "$1"
скрипт get_services.ps1
Код: Выделить всё
################################################################################
# get_services.ps1
#
################################################################################
# Get all of the Windows services
$services = Get-Service | Select-Object name
# Create the response template to build off of.
$response = @{data = @()}
# Add each of the services with the appropriate key ("{#SERVICE}") to the data array
ForEach($s in $services) {
$response['data'] += @{ '{#SERVICE}' = $s.name }
}
# Convert the response to JSON for Zabbix
$response = ConvertTo-Json $response
# Write the JSON encoded response for the Zabbix agent to send to the server
Write-Host $response
Код: Выделить всё
################################################################################
# get_servicestate.ps1
#
################################################################################
Param ([String] $name = 0)
$service = Get-Service -Name $name
Write-Host $service.Status
Группы элементов данных
Windows Services
Правила обнаружения
Windows Service Прототипы элементов данных 1 Прототипы триггеров 1 Прототипы графиков Прототипы узлов сети orgservice.discovery 30 Zabbix агент Деактивировано
Прототипы элементов данных
Windows Service {#SERVICE} orgservice.state[{#SERVICE}] 30 90d Zabbix агент Windows Services Да
Прототипы триггеров
Высокая Windows Service {#SERVICE} is down {Microsoft Services:orgservice.state[{#SERVICE}].str(Stopped)}<>0 Да