Skip to content

western/zix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

⚡ix

Yet:smiling_imp: another zabbix perl:camel: api engine ;)

Examples

Make some constructor:

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

use lib 'lib';
use Zix;

my $z = new Zix(
    home     => 'https://domain.tld/zabbix',
    
    user     => 'Admin',
    password => '***password',
    
    #basic_user     => 'userlogin',
    #basic_password => '***password',
);

Then call api version. There is non auth :)

warn 'apiinfo.version: '.$z->apiinfo_version->{result};

Auth check wrapper

if( $z->is_auth ){
    
    # get all hosts
    my $hosts = $z->host_get;
    for my $h ( @$hosts ){
        warn 'hostid: '.$h->hostid;
        warn 'name: '.$h->host;
    }
    
    # get one host object
    my $h = $z->host_get('media');
    
    warn $h->hostid;
    warn Dumper($h->application);
    warn Dumper($h->item);
    warn Dumper($h->item(applicationids => 498));
    warn Dumper($h->hostgroup);
    warn Dumper($h->hostinterface);
    warn Dumper($h->template);
    
}

Use this universal method (theatrical pause) ->universal 😃 It's flexible:

    $z->universal(
        'application.get',
        
        hostids => 10107,
    );
    
    $z->universal(
        'item.get',
        
        hostid => 10114,
    );
    
    $z->universal(
        'item.create',
        
        name         => $it.'['.$dev.']',
        key_         => $it.'['.$dev.']',
        hostid       => 10107,
        interfaceid  => 3,
        type         => 0,
        value_type   => 3, # 3 - numeric unsigned; 0 - numeric float;
        applications => [506],
        delay        => 30,
        delta        => 1, # 1 - Delta, speed per second; # 2 - Delta, simple change.
    );
    
    $z->universal(
        'host.create',
        
        host => 'host name 1',
        groups => [
            {
                groupid => 2,
            }
        ],
        interfaces => [
            {
                type  => 1,
                main  => 1,
                useip => 1,
                ip    => 'x.x.x.x',
                port  => 10050,
                dns   => '',
            }
        ],
        templates => [
            {
                templateid => 10001,
            }
        ],
    );

About

Zabbix api caller

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages