Skip to content

NetMoose/zabbix_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Обвязка для доступа к Zabbix API

Данный класс написан для простого доступа к Zabbix API описанному в документации.

Использование в скриптах

Для использования класса необходимо вставить в код:

Using Module ZabbixAPI

Создание класса

$zbx = [ZabbixAPI]::new('http','myzabbix.change_me.ru','username','passw00rd',$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 из справочника методов
  2. Создаем хэш-таблицу параметров вызова функции (см. пример ниже)
  3. Вызываем метод $zbx.SendQueryToZabbix() с параметрами из второго шага
  4. На выходе получаем массив значений

Пример

Возьмем первый пример из справочника

Реализация может выглядеть так:

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
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published