1 changed files with 57 additions and 1 deletions
@ -1 +1,57 @@ |
|||||||
# zabbix_api |
## Обвязка для доступа к Zabbix API |
||||||
|
|
||||||
|
Данный класс написан для простого доступа к Zabbix API [описанному в документации](https://www.zabbix.com/documentation/3.4/ru/manual/api). |
||||||
|
|
||||||
|
### Использование в скриптах |
||||||
|
|
||||||
|
Для использования класса необходимо вставить в код: |
||||||
|
``` |
||||||
|
Using Module ZabbixAPI |
||||||
|
``` |
||||||
|
Создание класса |
||||||
|
``` |
||||||
|
$zbx = [ZabbixAPI]::new('http','zabbix.lab.mts.ru','forauto','1qaz!QAZ',$true) |
||||||
|
``` |
||||||
|
где параметры |
||||||
|
1. *'http'* или *'https'* (возможно передать пустую строку) - это протокол для доступа к серверу заббикс |
||||||
|
2. Адрес сервера |
||||||
|
3. Логин для доступа к API |
||||||
|
4. Пароль для доступа к API |
||||||
|
5. $true, $false или $null - выводить ли дебаг-сообщения с JSON, передаваемым API |
||||||
|
|
||||||
|
Созданный класс \$zbx в конструкторе заполняет первоначально поля запроса ($zbx.query), преобразовывает его в JSON для вызова авторизации и получения токена для доступа к методам API. |
||||||
|
Полученный токен сохраняется в поле $zbx.query.auth и в дальнейшем используется в вызовах API для аутентификации. |
||||||
|
|
||||||
|
Дальнейшие вызовы производятся в следующей последовательности: |
||||||
|
1. Заполняем поле $zbx.query.method необходимой командой к API из [справочника методов](https://www.zabbix.com/documentation/3.4/ru/manual/api/reference) |
||||||
|
2. Создаем хэш-таблицу параметров вызова функции (см. пример ниже) |
||||||
|
3. Вызываем метод $zbx.SendQueryToZabbix() с параметрами из второго шага |
||||||
|
4. На выходе получаем массив значений |
||||||
|
|
||||||
|
### Пример |
||||||
|
|
||||||
|
Возьмем [первый пример из справочника](https://www.zabbix.com/documentation/3.4/ru/manual/api/reference/host/get) |
||||||
|
|
||||||
|
Реализация может выглядеть так: |
||||||
|
|
||||||
|
``` |
||||||
|
Using Module ZabbixAPI |
||||||
|
|
||||||
|
$zbx = [ZabbixAPI]::new('http','zabbix.lab.mts.ru','forauto','1qaz!QAZ',$true) |
||||||
|
|
||||||
|
$zbx.query.method = 'host.get' |
||||||
|
|
||||||
|
$params = @{ |
||||||
|
output="extend" |
||||||
|
filter=@{ |
||||||
|
host=@( |
||||||
|
'Zabbix server' |
||||||
|
'Linux server' |
||||||
|
) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
foreach($h in $zbx.SendQueryToZabbix($params)) { |
||||||
|
$h.name |
||||||
|
} |
||||||
|
``` |
||||||
|
|||||||
Loading…
Reference in new issue