Данный класс написан для простого доступа к Zabbix API описанному в документации.
Для использования класса необходимо вставить в код:
Using Module ZabbixAPI
Создание класса
$zbx = [ZabbixAPI]::new('http','myzabbix.change_me.ru','username','passw00rd',$true)
где параметры
- 'http' или 'https' (возможно передать пустую строку) - это протокол для доступа к серверу заббикс
- Адрес сервера
- Логин для доступа к API
- Пароль для доступа к API
- $true, $false или $null - выводить ли дебаг-сообщения с JSON, передаваемым API
Созданный класс $zbx в конструкторе заполняет первоначально поля запроса ($zbx.query), преобразовывает его в JSON для вызова авторизации и получения токена для доступа к методам API.
Полученный токен сохраняется в поле $zbx.query.auth и в дальнейшем используется в вызовах API для аутентификации.
Дальнейшие вызовы производятся в следующей последовательности:
- Заполняем поле $zbx.query.method необходимой командой к API из справочника методов
- Создаем хэш-таблицу параметров вызова функции (см. пример ниже)
- Вызываем метод $zbx.SendQueryToZabbix() с параметрами из второго шага
- На выходе получаем массив значений
Возьмем первый пример из справочника
Реализация может выглядеть так:
Using Module ZabbixAPI
$zbx = [ZabbixAPI]::new('http','myzabbix.change_me.ru','username','passw00rd',$true)
$zbx.query.method = 'host.get'
$params = @{
output="extend"
filter=@{
host=@(
'Zabbix server'
'Linux server'
)
}
}
foreach($h in $zbx.SendQueryToZabbix($params)) {
$h.name
}