Answer the question
In order to leave comments, you need to log in
Why is Can't call method "content" on an undefined value returned?
Hello.
to connect to zabbix api wrote the following code in perl
#!/usr/bin/perl
use 5.010;
use strict;
use warnings FATAL => 'all';
use JSON::RPC::Client;
use Data::Dumper;
# Authenticate yourself
my $client = new JSON::RPC::Client;
my $url = 'https://zabbix/api_jsonrpc.php';
my $authID;
my $response;
my $json = {
jsonrpc => "2.0",
method => "user.login",
params => {
user => "admin",
password => "admin"
},
id => 1
};
$response = $client->call($url, $json);
# Check if response was successful
die "Authentication failed\n" unless $response->content->{'result'};
$authID = $response->content->{'result'};
print "Authentication successful. Auth ID: " . $authID . "\n";
# 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\n" unless $response->content->{result};
print "List of hosts\n-----------------------------\n";
foreach my $host (@{$response->content->{result}}) {
print "Host ID: ".$host->{hostid}." Host: ".$host->{name}."\n";
}
die "Authentication failed\n" unless $response->content->{'result'};
Answer the question
In order to leave comments, you need to log in
something tells you that you need to dig in the direction of httpS. I have never been a specialist in zabbix and rpc, but the fact that the connection goes via TSL, and nothing is said about it in the connection settings, is somehow surprising.
but this is just a version. the best place to start is by looking at the zabbix logs.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question