Hi,
Is it possible to retrieve the latest 20 issues just like they appear in the dashboard with Zabbix API?
Is it possible to retrieve the latest 20 issues just like they appear in the dashboard with Zabbix API?
#!/usr/bin/perl
use ZabbixAPI;
use DateTime
my $counter=1;
my $zab=ZabbixAPI->new("http://zabbox.asfasf.com/zabbix/");
$zab->login("apiguy2","sfgdgdgsdgsr");
my $events=$zab->event_get(
{
output => 'extend',
selectHosts => 'extend',
selectTriggers => 'extend',
value => 1,
limit => 20
}
);
for my $event (@$events) {
my $dt=DateTime->from_epoch(epoch => $event->{clock});
my $timestamp=$dt->day." ".$dt->month." ".$dt->year." ".$dt->hour.":".$dt->minute.":".$dt->second;
print "Host: ".${$event->{hosts}}[0]->{name}." Issue: ".${$event->{triggers}}[0]->{description}." Last change: ".$timestamp."\n";
}
$sortField = array('lastchange');
$sortOrder = array('DESC');
$eventsTimeFrame = $api->triggerGet(array(
'groupids' => null,
'hostids' => null,
'monitored' => true,
'maintenance' => false,
'filter' => array('value' => 1),
'skipDependent' => true,
'output' => array('triggerid', 'state', 'error', 'url', 'expression', 'description', 'priority', 'lastchange'),
'selectHosts' => array('hostid', 'name'),
'selectLastEvent' => array('eventid', 'acknowledged', 'objectid', 'clock', 'ns'),
'sortfield' => $sortField,
'sortorder' => $sortOrder,
'limit' => '20'
));
$eventsTimeFrame = json_decode(json_encode($eventsTimeFrame), true);
$data = array(
'jsonrpc' => "2.0",
'method' => "trigger.get",
'params' => array(
'output' => array('triggerid', 'state', 'error', 'url', 'expression', 'description', 'priority', 'lastchange'),
'selectHosts' => array('hostid', 'name'),
'selectLastEvent' => array('eventid', 'acknowledged', 'objectid', 'clock', 'ns'),
'sortfield' => "lastchange",
'monitored'=> "true",
'only_true' => "true",
'maintenance' => "false",
'limit' => "20",
),
'id' => "1",
'auth' => $authcode
);
Comment