You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
4 years ago | |
|---|---|---|
| LICENSE | 5 years ago | |
| README.md | 4 years ago | |
| zabbixapi.psm1 | 5 years ago | |
README.md
Обвязка для доступа к Zabbix API
Данный класс написан для простого доступа к 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
}