• zabbix 添加主机接口


    http://192.168.32.101:3000/api/zabbix/add_Host?env=test&host=zjtest9-app&ip=192.168.32.250&groupid=11&templateid=10001
    
    
    
     my $c = shift;
     my $env = $c->param('env');
     my $host = $c->param('host');
     my $ip = $c->param('ip');
     my $groupid = $c->param('groupid');
     my $templateid = $c->param('templateid');
     
      
      if ($env eq "pro"){
      my $client = new JSON::RPC::Client;
    my $url    = 'http://192.168.32.xxx/zabbix/api_jsonrpc.php';
    my $authID;
    my $response;
    
    my $json = {
        jsonrpc => "2.0",
        method  => "user.login",
        params  => {
            user     => "admin",
            password => "zabbix"
        },
        id => 1
    };
    
    $response = $client->call( $url, $json );
    print "-----------------
    ";
    print $response->content->{result} . "
    ";
    
    # Check if response was successful
    die "Authentication failed
    " unless $response->content->{'result'};
    
    $authID = $response->content->{'result'};
    print "Authentication successful. Auth ID: " . $authID . "
    ";
    
    # Get list of all hosts using authID
    
    $json = {
        jsonrpc => '2.0',
        method  => 'host.get',
        params  => {
            output => [ 'hostid', 'name' ],    # get only host id and host name
            sortfield => 'name',               # sort by host name
        },
        id   => 2,
        auth => "$authID",
    };
    $response = $client->call( $url, $json );
    
    # Check if response was successful
    die "host.get failed
    " unless $response->content->{'result'};
    
    print "List of hosts
    ";
    foreach my $host ( @{ $response->content->{result} } ) {
        print "Host ID: " . $host->{hostid} . " Host: " . $host->{name} . "
    ";
    }
    
    $json = {
        "jsonrpc" => "2.0",
        "method"  => "host.create",
        "params"  => {
            "host"       => "$host",
            "interfaces" => [
                {
                    "type"  => 1,
                    "main"  => 1,
                    "useip" => 1,
                    "ip"    => "$ip",
                    "dns"   => "",
                    "port"  => "10050"
                }
            ],
            "groups"    => [ { "groupid"    => "$groupid" } ],
            "templates" => [ { "templateid" => "$templateid" } ]
        },
        "auth" => "$authID",
        "id"   => 1
    };
    $response = $client->call( $url, $json );
    use Data::Dumper;
    
    my $str = Dumper($response);
    print $str;
    print "----------------------
    ";
       
    if ( $response->content->{result}){print "print $host added success
    ";
    $c->render(text =>  "$host added success" )}
    else {print $response->content->{error}->{data};
         print "
    ";
    	 $c->render(text =>  "$response->content->{error}->{data}" )}
    

  • 相关阅读:
    day18:正则表达式和re模块
    finance1:专业词汇
    Iterator & Iterable 和 Comparable&Comparator
    pandas中三种索引方式(.loc.iloc.ix)
    XML序列化与反序列化
    控件蓝图里控件绑定问题
    Mouse Properties(鼠标属性)
    cSV
    从父控件移除控件
    是否显示鼠标指针
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350823.html
Copyright © 2020-2023  润新知