mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
Apply fixes from StyleCI (#12121)
This commit is contained in:
parent
82f43cb98d
commit
2fc3a21211
@ -83,7 +83,7 @@ if (bill_permitted($bill_id)) {
|
||||
}
|
||||
|
||||
echo '</div></div>';
|
||||
}//end print_port_list ?>
|
||||
}//end print_port_list?>
|
||||
|
||||
<h2><?php echo "Bill: ${bill_data['bill_name']}"; ?></h2>
|
||||
|
||||
@ -197,7 +197,7 @@ if (bill_permitted($bill_id)) {
|
||||
</td>
|
||||
|
||||
<?php
|
||||
}//end if ?>
|
||||
}//end if?>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -30,7 +30,7 @@ $.ajax({
|
||||
</script>
|
||||
';
|
||||
}
|
||||
}//end if ?>
|
||||
}//end if?>
|
||||
|
||||
<div class="panel panel-default panel-condensed">
|
||||
<div class="panel-heading">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
$app_rows = dbFetchRows('SELECT * FROM `applications` WHERE `device_id` = ?', array($device['device_id']));
|
||||
$app_rows = dbFetchRows('SELECT * FROM `applications` WHERE `device_id` = ?', [$device['device_id']]);
|
||||
|
||||
if (count($app_rows) > 0) {
|
||||
foreach ($app_rows as $app) {
|
||||
@ -8,7 +8,7 @@ if (count($app_rows) > 0) {
|
||||
if (is_file($app_include)) {
|
||||
include $app_include;
|
||||
} else {
|
||||
echo $app['app_type'].' include missing! ';
|
||||
echo $app['app_type'] . ' include missing! ';
|
||||
}
|
||||
}
|
||||
echo "\n";
|
||||
|
@ -5,22 +5,22 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'apache';
|
||||
$app_id = $app['app_id'];
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$apache = $agent_data['app'][$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.6.97.112.97.99.104.101';
|
||||
$apache = snmp_get($device, $oid, $options);
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.6.97.112.97.99.104.101';
|
||||
$apache = snmp_get($device, $oid, $options);
|
||||
}
|
||||
|
||||
echo ' apache';
|
||||
|
||||
list ($total_access, $total_kbyte, $cpuload, $uptime, $reqpersec, $bytespersec,
|
||||
[$total_access, $total_kbyte, $cpuload, $uptime, $reqpersec, $bytespersec,
|
||||
$bytesperreq, $busyworkers, $idleworkers, $score_wait, $score_start,
|
||||
$score_reading, $score_writing, $score_keepalive, $score_dns,
|
||||
$score_closing, $score_logging, $score_graceful, $score_idle, $score_open) = explode("\n", $apache);
|
||||
$score_closing, $score_logging, $score_graceful, $score_idle, $score_open] = explode("\n", $apache);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('access', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('kbyte', 'DERIVE', 0, 125000000000)
|
||||
@ -43,28 +43,28 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('sb_idle', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('sb_open', 'GAUGE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
'access' => intval(trim($total_access, '"')),
|
||||
'kbyte' => $total_kbyte,
|
||||
'cpu' => $cpuload,
|
||||
'uptime' => $uptime,
|
||||
'reqpersec' => $reqpersec,
|
||||
'bytespersec' => $bytespersec,
|
||||
'byesperreq' => $bytesperreq,
|
||||
'busyworkers' => $busyworkers,
|
||||
'idleworkers' => $idleworkers,
|
||||
'sb_wait' => $score_wait,
|
||||
'sb_start' => $score_start,
|
||||
'sb_reading' => $score_reading,
|
||||
'sb_writing' => $score_writing,
|
||||
'sb_keepalive' => $score_keepalive,
|
||||
'sb_dns' => $score_dns,
|
||||
'sb_closing' => $score_closing,
|
||||
'sb_logging' => $score_logging,
|
||||
'sb_graceful' => $score_graceful,
|
||||
'sb_idle' => $score_idle,
|
||||
'sb_open' => intval(trim($score_open, '"')),
|
||||
);
|
||||
$fields = [
|
||||
'access' => intval(trim($total_access, '"')),
|
||||
'kbyte' => $total_kbyte,
|
||||
'cpu' => $cpuload,
|
||||
'uptime' => $uptime,
|
||||
'reqpersec' => $reqpersec,
|
||||
'bytespersec' => $bytespersec,
|
||||
'byesperreq' => $bytesperreq,
|
||||
'busyworkers' => $busyworkers,
|
||||
'idleworkers' => $idleworkers,
|
||||
'sb_wait' => $score_wait,
|
||||
'sb_start' => $score_start,
|
||||
'sb_reading' => $score_reading,
|
||||
'sb_writing' => $score_writing,
|
||||
'sb_keepalive' => $score_keepalive,
|
||||
'sb_dns' => $score_dns,
|
||||
'sb_closing' => $score_closing,
|
||||
'sb_logging' => $score_logging,
|
||||
'sb_graceful' => $score_graceful,
|
||||
'sb_idle' => $score_idle,
|
||||
'sb_open' => intval(trim($score_open, '"')),
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -7,27 +7,27 @@ $app_id = $app['app_id'];
|
||||
|
||||
echo "$name, app_id=$app_id ";
|
||||
|
||||
if (!empty($agent_data[$name])) {
|
||||
if (! empty($agent_data[$name])) {
|
||||
$rawdata = $agent_data[$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.8.97.115.116.101.114.105.115.107';
|
||||
$rawdata = snmp_walk($device, $oid, $options);
|
||||
$rawdata = str_replace("<<<asterisk>>>\n", '', $rawdata);
|
||||
$rawdata = str_replace("<<<asterisk>>>\n", '', $rawdata);
|
||||
}
|
||||
|
||||
# Format Data
|
||||
// Format Data
|
||||
$lines = explode("\n", $rawdata);
|
||||
$asterisk = array();
|
||||
$asterisk_metrics = array();
|
||||
$asterisk = [];
|
||||
$asterisk_metrics = [];
|
||||
foreach ($lines as $line) {
|
||||
list($var,$value) = explode('=', $line);
|
||||
[$var,$value] = explode('=', $line);
|
||||
$asterisk[$var] = $value;
|
||||
}
|
||||
unset($lines);
|
||||
|
||||
# Asterisk stats
|
||||
$rrd_name = array('app', $name, 'stats', $app_id);
|
||||
// Asterisk stats
|
||||
$rrd_name = ['app', $name, 'stats', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('calls', 'GAUGE', 0, 10000)
|
||||
->addDataset('channels', 'GAUGE', 0, 20000)
|
||||
@ -37,15 +37,15 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('sipunmononline', 'GAUGE', 0, 10000)
|
||||
->addDataset('sipunmonoffline', 'GAUGE', 0, 10000);
|
||||
|
||||
$sip_fields = array(
|
||||
$sip_fields = [
|
||||
'calls' => $asterisk['Calls'],
|
||||
'channels' => $asterisk['Channels'],
|
||||
'sippeers' => $asterisk['SipPeers'],
|
||||
'sipmononline' => $asterisk['SipMonOnline'],
|
||||
'sipmonoffline' => $asterisk['SipMonOffline'],
|
||||
'sipunmononline' => $asterisk['SipUnMonOnline'],
|
||||
'sipunmonoffline' => $asterisk['SipUnMonOffline']
|
||||
);
|
||||
'sipunmonoffline' => $asterisk['SipUnMonOffline'],
|
||||
];
|
||||
|
||||
$asterisk_metrics['stats'] = $sip_fields;
|
||||
$sip_tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
@ -53,20 +53,20 @@ data_update($device, 'app', $sip_tags, $sip_fields);
|
||||
|
||||
unset($rrd_name, $rrd_def, $sip_fields, $sip_tags);
|
||||
|
||||
# Additional iax2 stats
|
||||
$rrd_name = array('app', $name, 'iax2', $app_id);
|
||||
// Additional iax2 stats
|
||||
$rrd_name = ['app', $name, 'iax2', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('iax2peers', 'GAUGE', 0, 10000)
|
||||
->addDataset('iax2online', 'GAUGE', 0, 10000)
|
||||
->addDataset('iax2offline', 'GAUGE', 0, 10000)
|
||||
->addDataset('iax2unmonitored', 'GAUGE', 0, 10000);
|
||||
|
||||
$iax2_fields = array(
|
||||
$iax2_fields = [
|
||||
'iax2peers' => $asterisk['Iax2Peers'],
|
||||
'iax2online' => $asterisk['Iax2Online'],
|
||||
'iax2offline' => $asterisk['Iax2Offline'],
|
||||
'iax2unmonitored' => $asterisk['Iax2Unmonitored']
|
||||
);
|
||||
'iax2unmonitored' => $asterisk['Iax2Unmonitored'],
|
||||
];
|
||||
|
||||
$asterisk_metrics['iax2'] = $iax2_fields;
|
||||
$iax2_tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
|
@ -12,33 +12,34 @@ try {
|
||||
} catch (JsonAppMissingKeysException $e) {
|
||||
$backupninja_data = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
|
||||
$category = 'overview';
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('last_actions', 'GAUGE', 0)
|
||||
->addDataset('last_fatal', 'GAUGE', 0)
|
||||
->addDataset('last_error', 'GAUGE', 0)
|
||||
->addDataset('last_warning', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'last_actions' => $backupninja_data['last_actions'],
|
||||
'last_fatal' => $backupninja_data['last_fatal'],
|
||||
'last_error' => $backupninja_data['last_error'],
|
||||
'last_warning' => $backupninja_data['last_warning'],
|
||||
);
|
||||
];
|
||||
$metrics[$category] = $fields;
|
||||
|
||||
// Debug
|
||||
d_echo("backupninja : $fields");
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
update_application($app, $output, $metrics);
|
||||
|
@ -7,26 +7,26 @@ $app_id = $app['app_id'];
|
||||
|
||||
echo " $name";
|
||||
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$bind = $agent_data['app'][$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
$mib = 'NET-SNMP-EXTEND-MIB';
|
||||
$oid = 'nsExtendOutputFull.4.98.105.110.100';
|
||||
$bind = snmp_get($device, $oid, $options, $mib);
|
||||
$mib = 'NET-SNMP-EXTEND-MIB';
|
||||
$oid = 'nsExtendOutputFull.4.98.105.110.100';
|
||||
$bind = snmp_get($device, $oid, $options, $mib);
|
||||
}
|
||||
|
||||
list ($incoming, $outgoing, $server, $resolver, $cache, $rrsets, $adb, $sockets) = explode("\n", $bind);
|
||||
[$incoming, $outgoing, $server, $resolver, $cache, $rrsets, $adb, $sockets] = explode("\n", $bind);
|
||||
|
||||
//
|
||||
// INCOMING PROCESSING
|
||||
//
|
||||
list ($a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
|
||||
[$a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
|
||||
$loc, $mx, $naptr, $ns, $nsec, $nsec3, $nsec3param, $ptr, $rrsig, $rp, $sig, $soa, $srv, $sshfp, $ta, $tkey, $tlsa,
|
||||
$tsig, $txt, $uri, $dname, $any, $axfr, $ixfr, $opt, $spf) = explode(',', $incoming);
|
||||
$tsig, $txt, $uri, $dname, $any, $axfr, $ixfr, $opt, $spf] = explode(',', $incoming);
|
||||
|
||||
$metrics = array();
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$metrics = [];
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('any', 'DERIVE', 0)
|
||||
->addDataset('a', 'DERIVE', 0)
|
||||
@ -39,7 +39,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('srv', 'DERIVE', 0)
|
||||
->addDataset('spf', 'DERIVE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'any' => $any,
|
||||
'a' => $a,
|
||||
'aaaa' => $aaaa,
|
||||
@ -50,13 +50,13 @@ $fields = array(
|
||||
'soa' => $soa,
|
||||
'srv' => $srv,
|
||||
'spf' => $spf,
|
||||
);
|
||||
];
|
||||
$metrics['queries'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'incoming');
|
||||
$rrd_name = ['app', $name, $app_id, 'incoming'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('afsdb', 'DERIVE', 0)
|
||||
->addDataset('apl', 'DERIVE', 0)
|
||||
@ -91,7 +91,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('ixfr', 'DERIVE', 0)
|
||||
->addDataset('opt', 'DERIVE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'afsdb' => $afsdb,
|
||||
'apl' => $apl,
|
||||
'caa' => $caa,
|
||||
@ -124,20 +124,20 @@ $fields = array(
|
||||
'axfr' => $axfr,
|
||||
'ixfr' => $ixfr,
|
||||
'opt' => $opt,
|
||||
);
|
||||
];
|
||||
$metrics['incoming'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// OUTGOING PROCESSING
|
||||
//
|
||||
list ($a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
|
||||
[$a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
|
||||
$loc, $mx, $naptr, $ns, $nsec, $nsec3, $nsec3param, $ptr, $rrsig, $rp, $sig, $soa, $srv, $sshfp, $ta, $tkey, $tlsa,
|
||||
$tsig, $txt, $uri, $dname, $any, $axfr, $ixfr, $opt, $spf) = explode(',', $outgoing);
|
||||
$tsig, $txt, $uri, $dname, $any, $axfr, $ixfr, $opt, $spf] = explode(',', $outgoing);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'outgoing');
|
||||
$rrd_name = ['app', $name, $app_id, 'outgoing'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('any', 'DERIVE', 0)
|
||||
->addDataset('a', 'DERIVE', 0)
|
||||
@ -182,7 +182,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('ixfr', 'DERIVE', 0)
|
||||
->addDataset('opt', 'DERIVE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'any' => $any,
|
||||
'a' => $a,
|
||||
'aaaa' => $aaaa,
|
||||
@ -225,19 +225,19 @@ $fields = array(
|
||||
'axfr' => $axfr,
|
||||
'ixfr' => $ixfr,
|
||||
'opt' => $opt,
|
||||
);
|
||||
];
|
||||
$metrics['outgoing'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// SERVER PROCESSING
|
||||
//
|
||||
list ($i4rr, $i6rr, $rwer, $trr, $aqr, $rqr, $rs, $trs, $rwes, $qrisa, $qriaa, $qrinaa, $qrin, $qris, $qrind,
|
||||
$qcr, $dqr, $oqf, $uqr, $tqr, $oeor, $qd) = explode(',', $server);
|
||||
[$i4rr, $i6rr, $rwer, $trr, $aqr, $rqr, $rs, $trs, $rwes, $qrisa, $qriaa, $qrinaa, $qrin, $qris, $qrind,
|
||||
$qcr, $dqr, $oqf, $uqr, $tqr, $oeor, $qd] = explode(',', $server);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'server');
|
||||
$rrd_name = ['app', $name, $app_id, 'server'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('i4rr', 'DERIVE', 0)
|
||||
->addDataset('i6rr', 'DERIVE', 0)
|
||||
@ -262,7 +262,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('oeor', 'DERIVE', 0)
|
||||
->addDataset('qd', 'DERIVE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'i4rr' => $i4rr,
|
||||
'i6rr' => $i6rr,
|
||||
'rwer' => $rwer,
|
||||
@ -285,20 +285,20 @@ $fields = array(
|
||||
'tqr' => $tqr,
|
||||
'oeor' => $oeor,
|
||||
'qd' => $qd,
|
||||
);
|
||||
];
|
||||
$metrics['server'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// RESOLVER PROCESSING
|
||||
//
|
||||
list ($i4qs, $i6qs, $i4rr, $i6rr, $nr, $sr, $fr, $eqf, $trr, $ldr, $qr, $qt, $i4naf, $i6naf,
|
||||
[$i4qs, $i6qs, $i4rr, $i6rr, $nr, $sr, $fr, $eqf, $trr, $ldr, $qr, $qt, $i4naf, $i6naf,
|
||||
$i4naff, $i6naff, $rttl10, $rtt10t100, $rtt100t500, $rtt500t800, $rtt800t1600, $rttg1600,
|
||||
$bs, $rr) = explode(',', $resolver);
|
||||
$bs, $rr] = explode(',', $resolver);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'resolver');
|
||||
$rrd_name = ['app', $name, $app_id, 'resolver'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('i4qs', 'DERIVE', 0)
|
||||
->addDataset('i6qs', 'DERIVE', 0)
|
||||
@ -325,8 +325,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('bs', 'GAUGE', 0)
|
||||
->addDataset('rr', 'DERIVE', 0);
|
||||
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'i4qs' => $i4qs,
|
||||
'i6qs' => $i6qs,
|
||||
'i4rr' => $i4rr,
|
||||
@ -351,19 +350,19 @@ $fields = array(
|
||||
'rttg1600' => $rttg1600,
|
||||
'bs' => $bs,
|
||||
'rr' => $rr,
|
||||
);
|
||||
];
|
||||
$metrics['resolver'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// CACHE PROCESSING
|
||||
//
|
||||
list ($ch, $cm, $chfq, $cmfq, $crddtme, $crddtte, $cdn, $cdhb, $ctmt, $ctmiu, $cthmiu,
|
||||
$chmt, $chmiu, $chhmiu) = explode(',', $cache);
|
||||
[$ch, $cm, $chfq, $cmfq, $crddtme, $crddtte, $cdn, $cdhb, $ctmt, $ctmiu, $cthmiu,
|
||||
$chmt, $chmiu, $chhmiu] = explode(',', $cache);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'cache');
|
||||
$rrd_name = ['app', $name, $app_id, 'cache'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('ch', 'DERIVE', 0)
|
||||
->addDataset('cm', 'DERIVE', 0)
|
||||
@ -380,7 +379,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('chmiu', 'GAUGE', 0)
|
||||
->addDataset('chhmiu', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'ch' => $ch,
|
||||
'cm' => $cm,
|
||||
'chfq' => $chfq,
|
||||
@ -395,7 +394,7 @@ $fields = array(
|
||||
'chmt' => $chmt,
|
||||
'chmiu' => $chmiu,
|
||||
'chhmiu' => $chhmiu,
|
||||
);
|
||||
];
|
||||
$metrics['cache'] = $fields;
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
@ -404,34 +403,34 @@ data_update($device, 'app', $tags, $fields);
|
||||
//
|
||||
// ADB PROCESSING
|
||||
//
|
||||
list ($ahts, $aiht, $nhts, $niht) = explode(',', $adb);
|
||||
[$ahts, $aiht, $nhts, $niht] = explode(',', $adb);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'adb');
|
||||
$rrd_name = ['app', $name, $app_id, 'adb'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('ahts', 'GAUGE', 0)
|
||||
->addDataset('aiht', 'GAUGE', 0)
|
||||
->addDataset('nhts', 'GAUGE', 0)
|
||||
->addDataset('niht', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'ahts' => $ahts,
|
||||
'aiht' => $aiht,
|
||||
'nhts' => $nhts,
|
||||
'niht' => $niht
|
||||
);
|
||||
'niht' => $niht,
|
||||
];
|
||||
$metrics['adb'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// SOCKETS PROCESSING
|
||||
//
|
||||
list ($ui4so, $ui6so, $ti4so, $ti6so, $rso, $ui4sc, $ui6sc, $ti4sc, $ti6sc, $ui4sbf, $ti4sbf, $ui6sbf, $ti6sbf,
|
||||
[$ui4so, $ui6so, $ti4so, $ti6so, $rso, $ui4sc, $ui6sc, $ti4sc, $ti6sc, $ui4sbf, $ti4sbf, $ui6sbf, $ti6sbf,
|
||||
$ui4scf, $ti4scf, $ui6scf, $ti6scf, $ui4ce, $ti4ce, $ui6ce, $ti6ce, $ti4ca, $ti6ca, $ui4se, $ti4se, $ui6se,
|
||||
$ti6se, $ui4re, $ti4re, $ui6re, $ti6re, $ui4sa, $ui6sa, $ti4sa, $ti6sa, $rsa) = explode(',', $sockets);
|
||||
$ti6se, $ui4re, $ti4re, $ui6re, $ti6re, $ui4sa, $ui6sa, $ti4sa, $ti6sa, $rsa] = explode(',', $sockets);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'sockets');
|
||||
$rrd_name = ['app', $name, $app_id, 'sockets'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('ui4so', 'DERIVE', 0)
|
||||
->addDataset('ui6so', 'DERIVE', 0)
|
||||
@ -470,8 +469,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('ti6sa', 'GAUGE', 0)
|
||||
->addDataset('rsa', 'GAUGE', 0);
|
||||
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'ui4so' => $ui4so,
|
||||
'ui6so' => $ui6so,
|
||||
'ti4so' => $ti4so,
|
||||
@ -508,22 +506,22 @@ $fields = array(
|
||||
'ti4sa' => $ti4sa,
|
||||
'ti6sa' => $ti6sa,
|
||||
'rsa' => $ti6sa,
|
||||
);
|
||||
];
|
||||
$metrics['sockets'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// RR SETS PROCESSING
|
||||
//
|
||||
list ($a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
|
||||
[$a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
|
||||
$loc, $mx, $naptr, $ns, $nsec, $nsec3, $nsec3param, $ptr, $rrsig, $rp, $sig, $soa, $srv, $sshfp, $ta, $tkey, $tlsa,
|
||||
$tsig, $txt, $uri, $dname, $nxdomain, $any, $axfr, $ixfr, $opt, $spf, $nota, $notaaaa, $notafsdb, $notapl, $notcaa, $notcdnskey,
|
||||
$notcds, $notcert, $notcname, $notdhcid, $notdlv, $notdnskey, $notds, $notipseckey, $notkey, $notkx, $notloc, $notmx,
|
||||
$notnaptr, $notns, $notnsec, $notnsec3, $notnsec3param, $notptr, $notrrsig, $notrp, $notsig, $notsoa, $notsrv,
|
||||
$notsshfp, $notta, $nottkey, $nottlsa, $nottsig, $nottxt, $noturi, $notdname, $notnxdomain, $notany, $notaxfr, $notixfr, $notopt,
|
||||
$notspf) = explode(',', $rrsets);
|
||||
$notspf] = explode(',', $rrsets);
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('any', 'GAUGE', 0)
|
||||
@ -571,9 +569,9 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('opt', 'GAUGE', 0);
|
||||
|
||||
//first handle the positive
|
||||
$rrd_name = array('app', $name, $app_id, 'rrpositive');
|
||||
$rrd_name = ['app', $name, $app_id, 'rrpositive'];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'any' => $any,
|
||||
'a' => $a,
|
||||
'aaaa' => $aaaa,
|
||||
@ -617,16 +615,16 @@ $fields = array(
|
||||
'axfr' => $axfr,
|
||||
'ixfr' => $ixfr,
|
||||
'opt' => $opt,
|
||||
);
|
||||
];
|
||||
$metrics['rrpositive'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
// now handle the negative
|
||||
$rrd_name = array('app', $name, $app_id, 'rrnegative');
|
||||
$rrd_name = ['app', $name, $app_id, 'rrnegative'];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'any' => $notany,
|
||||
'a' => $nota,
|
||||
'aaaa' => $notaaaa,
|
||||
@ -670,9 +668,9 @@ $fields = array(
|
||||
'axfr' => $notaxfr,
|
||||
'ixfr' => $notixfr,
|
||||
'opt' => $notopt,
|
||||
);
|
||||
];
|
||||
$metrics['rrnegative'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $bind, $metrics);
|
||||
|
@ -3,16 +3,16 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'ceph';
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$ceph_data = $agent_data['app'][$name];
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
foreach (explode('<', $ceph_data) as $section) {
|
||||
if (empty($section)) {
|
||||
continue;
|
||||
}
|
||||
list($section, $data) = explode('>', $section);
|
||||
[$section, $data] = explode('>', $section);
|
||||
|
||||
if ($section == "poolstats") {
|
||||
$rrd_def = RrdDefinition::make()
|
||||
@ -24,15 +24,15 @@ if (!empty($agent_data['app'][$name])) {
|
||||
if (empty($line)) {
|
||||
continue;
|
||||
}
|
||||
list($pool,$ops,$wrbytes,$rbytes) = explode(':', $line);
|
||||
$rrd_name = array('app', $name, $app_id, 'pool', $pool);
|
||||
[$pool,$ops,$wrbytes,$rbytes] = explode(':', $line);
|
||||
$rrd_name = ['app', $name, $app_id, 'pool', $pool];
|
||||
|
||||
print "Ceph Pool: $pool, IOPS: $ops, Wr bytes: $wrbytes, R bytes: $rbytes\n";
|
||||
$fields = array(
|
||||
echo "Ceph Pool: $pool, IOPS: $ops, Wr bytes: $wrbytes, R bytes: $rbytes\n";
|
||||
$fields = [
|
||||
'ops' => $ops,
|
||||
'wrbytes' => $wrbytes,
|
||||
'rbytes' => $rbytes
|
||||
);
|
||||
'rbytes' => $rbytes,
|
||||
];
|
||||
$metrics["pool_$pool"] = $fields;
|
||||
$tags = compact('name', 'app_id', 'pool', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
@ -46,14 +46,14 @@ if (!empty($agent_data['app'][$name])) {
|
||||
if (empty($line)) {
|
||||
continue;
|
||||
}
|
||||
list($osd,$apply,$commit) = explode(':', $line);
|
||||
$rrd_name = array('app', $name, $app_id, 'osd', $osd);
|
||||
[$osd,$apply,$commit] = explode(':', $line);
|
||||
$rrd_name = ['app', $name, $app_id, 'osd', $osd];
|
||||
|
||||
print "Ceph OSD: $osd, Apply: $apply, Commit: $commit\n";
|
||||
$fields = array(
|
||||
echo "Ceph OSD: $osd, Apply: $apply, Commit: $commit\n";
|
||||
$fields = [
|
||||
'apply_ms' => $apply,
|
||||
'commit_ms' => $commit
|
||||
);
|
||||
'commit_ms' => $commit,
|
||||
];
|
||||
$metrics["osd_$osd"] = $fields;
|
||||
$tags = compact('name', 'app_id', 'osd', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
@ -68,15 +68,15 @@ if (!empty($agent_data['app'][$name])) {
|
||||
if (empty($line)) {
|
||||
continue;
|
||||
}
|
||||
list($df,$avail,$used,$objects) = explode(':', $line);
|
||||
$rrd_name = array('app', $name, $app_id, 'df', $df);
|
||||
[$df,$avail,$used,$objects] = explode(':', $line);
|
||||
$rrd_name = ['app', $name, $app_id, 'df', $df];
|
||||
|
||||
print "Ceph Pool DF: $df, Avail: $avail, Used: $used, Objects: $objects\n";
|
||||
$fields = array(
|
||||
echo "Ceph Pool DF: $df, Avail: $avail, Used: $used, Objects: $objects\n";
|
||||
$fields = [
|
||||
'avail' => $avail,
|
||||
'used' => $used,
|
||||
'objects' => $objects
|
||||
);
|
||||
'objects' => $objects,
|
||||
];
|
||||
$metrics["df_$df"] = $fields;
|
||||
$tags = compact('name', 'app_id', 'df', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'certificate';
|
||||
@ -12,31 +13,32 @@ try {
|
||||
} catch (JsonAppMissingKeysException $e) {
|
||||
$certificate_data = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('age', 'GAUGE', 0)
|
||||
->addDataset('remaining_days', 'GAUGE', 0);
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
foreach ($certificate_data as $data) {
|
||||
$cert_name = $data['cert_name'];
|
||||
$age = $data['age'];
|
||||
$remaining_days = $data['remaining_days'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $cert_name);
|
||||
$rrd_name = ['app', $name, $app_id, $cert_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'age' => $age,
|
||||
'remaining_days' => $remaining_days
|
||||
);
|
||||
'remaining_days' => $remaining_days,
|
||||
];
|
||||
|
||||
$metrics[$cert_name] = $fields;
|
||||
$tags = array('name' => $cert_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $cert_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$snmp_extend_name = 'dhcpstats';
|
||||
$name = 'dhcp-stats';
|
||||
$app_id = $app['app_id'];
|
||||
$options = '-Oqv';
|
||||
$mib = 'NET-SNMP-EXTEND-MIB';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.9.100.104.99.112.115.116.97.116.115';
|
||||
$options = '-Oqv';
|
||||
$mib = 'NET-SNMP-EXTEND-MIB';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.9.100.104.99.112.115.116.97.116.115';
|
||||
|
||||
$version = 1;
|
||||
$output = 'OK';
|
||||
@ -35,25 +35,25 @@ if ($version == 1) {
|
||||
$output = 'UNSUPPORTED';
|
||||
}
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
$category = 'stats';
|
||||
if (intval($version) == 1) {
|
||||
list($dhcp_total, $dhcp_active, $dhcp_expired, $dhcp_released, $dhcp_abandoned, $dhcp_reset, $dhcp_bootp, $dhcp_backup, $dhcp_free) = explode("\n", $dhcpstats);
|
||||
[$dhcp_total, $dhcp_active, $dhcp_expired, $dhcp_released, $dhcp_abandoned, $dhcp_reset, $dhcp_bootp, $dhcp_backup, $dhcp_free] = explode("\n", $dhcpstats);
|
||||
} elseif ($version == 2) {
|
||||
$lease_data = $dhcpstats['leases'];
|
||||
|
||||
$dhcp_total = $lease_data['total'];
|
||||
$dhcp_active = $lease_data['active'];
|
||||
$dhcp_expired = $lease_data['expired'];
|
||||
$dhcp_released = $lease_data['released'];
|
||||
$dhcp_total = $lease_data['total'];
|
||||
$dhcp_active = $lease_data['active'];
|
||||
$dhcp_expired = $lease_data['expired'];
|
||||
$dhcp_released = $lease_data['released'];
|
||||
$dhcp_abandoned = $lease_data['abandoned'];
|
||||
$dhcp_reset = $lease_data['reset'];
|
||||
$dhcp_bootp = $lease_data['bootp'];
|
||||
$dhcp_backup = $lease_data['backup'];
|
||||
$dhcp_free = $lease_data['free'];
|
||||
$dhcp_reset = $lease_data['reset'];
|
||||
$dhcp_bootp = $lease_data['bootp'];
|
||||
$dhcp_backup = $lease_data['backup'];
|
||||
$dhcp_free = $lease_data['free'];
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('dhcp_total', 'GAUGE', 0)
|
||||
->addDataset('dhcp_active', 'GAUGE', 0)
|
||||
@ -65,7 +65,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('dhcp_backup', 'GAUGE', 0)
|
||||
->addDataset('dhcp_free', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'dhcp_total' => $dhcp_total,
|
||||
'dhcp_active' => $dhcp_active,
|
||||
'dhcp_expired' => $dhcp_expired,
|
||||
@ -75,10 +75,10 @@ $fields = array(
|
||||
'dhcp_bootp' => $dhcp_bootp,
|
||||
'dhcp_backup' => $dhcp_backup,
|
||||
'dhcp_free' => $dhcp_free,
|
||||
);
|
||||
];
|
||||
$metrics[$name . '_' . $category] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
if ($version == 2) {
|
||||
@ -91,21 +91,21 @@ if ($version == 2) {
|
||||
->addDataset('percent', 'GAUGE', 0);
|
||||
|
||||
foreach ($pool_data as $data) {
|
||||
$dhcp_pool_name = $data['first_ip'].'_-_'.$data['last_ip'];
|
||||
$dhcp_current = $data['cur'];
|
||||
$dhcp_max = $data['max'];
|
||||
$dhcp_percent = $data['percent'];
|
||||
$dhcp_pool_name = $data['first_ip'] . '_-_' . $data['last_ip'];
|
||||
$dhcp_current = $data['cur'];
|
||||
$dhcp_max = $data['max'];
|
||||
$dhcp_percent = $data['percent'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $category, $dhcp_pool_name);
|
||||
$rrd_name = ['app', $name, $app_id, $category, $dhcp_pool_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'current' => $dhcp_current,
|
||||
'max' => $dhcp_max,
|
||||
'percent' => $dhcp_percent,
|
||||
);
|
||||
];
|
||||
|
||||
$metrics[$dhcp_pool_name.'_'.$category] = $fields;
|
||||
$tags = array('name' => $dhcp_pool_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$metrics[$dhcp_pool_name . '_' . $category] = $fields;
|
||||
$tags = ['name' => $dhcp_pool_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
|
||||
@ -119,20 +119,20 @@ if ($version == 2) {
|
||||
|
||||
foreach ($network_data as $data) {
|
||||
$dhcp_network_name = str_replace('/', '_', $data['network']);
|
||||
$dhcp_current = $data['cur'];
|
||||
$dhcp_max = $data['max'];
|
||||
$dhcp_percent = $data['percent'] == 'nan' ? '0' : $data['percent'];
|
||||
$dhcp_current = $data['cur'];
|
||||
$dhcp_max = $data['max'];
|
||||
$dhcp_percent = $data['percent'] == 'nan' ? '0' : $data['percent'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $category, $dhcp_network_name);
|
||||
$rrd_name = ['app', $name, $app_id, $category, $dhcp_network_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'current' => $dhcp_current,
|
||||
'max' => $dhcp_max,
|
||||
'percent' => $dhcp_percent,
|
||||
);
|
||||
];
|
||||
|
||||
$metrics[$dhcp_network_name.'_'.$category] = $fields;
|
||||
$tags = array('name' => $dhcp_network_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$metrics[$dhcp_network_name . '_' . $category] = $fields;
|
||||
$tags = ['name' => $dhcp_network_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
}
|
||||
|
@ -7,13 +7,13 @@ $app_instance = $app['app_instance'];
|
||||
$app_id = $app['app_id'];
|
||||
$drbd_data = $agent_data['app'][$name][$app_instance];
|
||||
foreach (explode('|', $drbd_data) as $part) {
|
||||
list($stat, $val) = explode('=', $part);
|
||||
if (!empty($stat)) {
|
||||
[$stat, $val] = explode('=', $part);
|
||||
if (! empty($stat)) {
|
||||
$drbd[$stat] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_instance);
|
||||
$rrd_name = ['app', $name, $app_instance];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('ns', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('nr', 'DERIVE', 0, 125000000000)
|
||||
@ -27,8 +27,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('ap', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('oos', 'GAUGE', 0, 125000000000);
|
||||
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'ns' => $drbd['ns'],
|
||||
'nr' => $drbd['nr'],
|
||||
'dw' => $drbd['dw'],
|
||||
@ -40,9 +39,9 @@ $fields = array(
|
||||
'ua' => $drbd['ua'],
|
||||
'ap' => $drbd['ap'],
|
||||
'oos' => $drbd['oos'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
$tags = ['name', 'app_id', 'rrd_name', 'rrd_def'];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $drbd_data, $fields);
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'entropy';
|
||||
@ -7,13 +8,13 @@ $options = '-Oqv';
|
||||
$mib = 'NET-SNMP-EXTEND-MIB';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.7.101.110.116.114.111.112.121.1';
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()->addDataset('entropy', 'GAUGE', 0);
|
||||
|
||||
$entropy_avail = snmp_get($device, $oid, $options, $mib);
|
||||
|
||||
$fields = array('entropy' => $entropy_avail,);
|
||||
$fields = ['entropy' => $entropy_avail];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $entropy_avail, $fields, $entropy_avail);
|
||||
|
@ -27,19 +27,19 @@ $app_id = $app['app_id'];
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.10.101.120.105.109.45.115.116.97.116.115';
|
||||
$stats = snmp_get($device, $oid, '-Oqv');
|
||||
|
||||
echo ' '.$name;
|
||||
echo ' ' . $name;
|
||||
|
||||
list ($frozen, $queue) = explode("\n", $stats);
|
||||
[$frozen, $queue] = explode("\n", $stats);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('frozen', 'GAUGE', 0)
|
||||
->addDataset('queue', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'frozen' => intval(trim($frozen, '"')),
|
||||
'queue' => intval(trim($queue, '"'))
|
||||
);
|
||||
'queue' => intval(trim($queue, '"')),
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -17,19 +17,20 @@ try {
|
||||
$f2b = [
|
||||
'data' => [
|
||||
'total' => array_shift($legacy), // total was first line in legacy app
|
||||
'jails' => []
|
||||
]
|
||||
'jails' => [],
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($legacy as $jail_data) {
|
||||
list($jail, $banned) = explode(" ", $jail_data);
|
||||
[$jail, $banned] = explode(" ", $jail_data);
|
||||
if (isset($jail) && isset($banned)) {
|
||||
$f2b['data']['jails'][$jail] = $banned;
|
||||
}
|
||||
}
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -37,26 +38,25 @@ $f2b = $f2b['data'];
|
||||
|
||||
$metrics = [];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('banned', 'GAUGE', 0)
|
||||
->addDataset('firewalled', 'GAUGE', 0);
|
||||
|
||||
|
||||
$fields = ['banned' => $f2b['total']];
|
||||
$metrics['total'] = $fields; // don't include legacy ds in db
|
||||
$fields['firewalled'] = 'U'; // legacy ds
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
foreach ($f2b['jails'] as $jail => $banned) {
|
||||
$rrd_name = array('app', $name, $app_id, $jail);
|
||||
$rrd_name = ['app', $name, $app_id, $jail];
|
||||
$rrd_def = RrdDefinition::make()->addDataset('banned', 'GAUGE', 0);
|
||||
$fields = array('banned' => $banned);
|
||||
$fields = ['banned' => $banned];
|
||||
|
||||
$metrics["jail_$jail"] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
|
||||
@ -67,11 +67,11 @@ update_application($app, 'ok', $metrics);
|
||||
//
|
||||
$device_id = $device['device_id'];
|
||||
|
||||
$options=array(
|
||||
'filter' => array(
|
||||
'type' => array('=', 'fail2ban'),
|
||||
),
|
||||
);
|
||||
$options = [
|
||||
'filter' => [
|
||||
'type' => ['=', 'fail2ban'],
|
||||
],
|
||||
];
|
||||
|
||||
$component = new LibreNMS\Component();
|
||||
$f2b_components = $component->getComponents($device_id, $options);
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'fbsd-nfs-client';
|
||||
@ -9,16 +10,16 @@ $app_id = $app['app_id'];
|
||||
echo $name;
|
||||
|
||||
try {
|
||||
$nfs=json_app_get($device, 'fbsdnfsclient', 0);
|
||||
$nfs = json_app_get($device, 'fbsdnfsclient', 0);
|
||||
} catch (JsonAppParsingFailedException $e) {
|
||||
// Legacy script, build compatible array
|
||||
$legacy = $e->getOutput();
|
||||
|
||||
$nfs=array(
|
||||
'data' => array(),
|
||||
);
|
||||
$nfs = [
|
||||
'data' => [],
|
||||
];
|
||||
|
||||
list($nfs['data']['Getattr'], $nfs['data']['Setattr'], $nfs['data']['Lookup'], $nfs['data']['Readlink'],
|
||||
[$nfs['data']['Getattr'], $nfs['data']['Setattr'], $nfs['data']['Lookup'], $nfs['data']['Readlink'],
|
||||
$nfs['data']['Read'], $nfs['data']['Write'], $nfs['data']['Create'], $nfs['data']['Remove'], $nfs['data']['Rename'],
|
||||
$nfs['data']['Link'], $nfs['data']['Symlink'], $nfs['data']['Mkdir'], $nfs['data']['Rmdir'], $nfs['data']['Readdir'],
|
||||
$nfs['data']['RdirPlus'], $nfs['data']['Access'], $nfs['data']['Mknod'], $nfs['data']['Fsstat'], $nfs['data']['Fsinfo'],
|
||||
@ -27,14 +28,15 @@ try {
|
||||
$nfs['data']['LkupMisses'], $nfs['data']['BioRHits'], $nfs['data']['BioRMisses'], $nfs['data']['BioWHits'],
|
||||
$nfs['data']['BioWMisses'], $nfs['data']['BioRLHits'], $nfs['data']['BioRLMisses'], $nfs['data']['BioDHits'],
|
||||
$nfs['data']['BioDMisses'], $nfs['data']['DirEHits'], $nfs['data']['DirEMisses'], $nfs['data']['AccsHits'],
|
||||
$nfs['data']['AccsMisses']) = explode("\n", $legacy);
|
||||
$nfs['data']['AccsMisses']] = explode("\n", $legacy);
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('getattr', 'DERIVE', 0)
|
||||
->addDataset('setattr', 'DERIVE', 0)
|
||||
@ -79,7 +81,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('accshits', 'DERIVE', 0)
|
||||
->addDataset('accsmisses', 'DERIVE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'getattr' => $nfs['data']['Getattr'],
|
||||
'setattr' => $nfs['data']['Setattr'],
|
||||
'lookup' => $nfs['data']['Lookup'],
|
||||
@ -122,8 +124,8 @@ $fields = array(
|
||||
'diremisses' => $nfs['data']['DirEMisses'],
|
||||
'accshits' => $nfs['data']['AccsHits'],
|
||||
'accsmisses' => $nfs['data']['AccsMisses'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, 'OK', $nfs['data']);
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'fbsd-nfs-server';
|
||||
@ -10,29 +10,30 @@ $app_id = $app['app_id'];
|
||||
echo $name;
|
||||
|
||||
try {
|
||||
$nfs=json_app_get($device, 'fbsdnfsserver');
|
||||
$nfs = json_app_get($device, 'fbsdnfsserver');
|
||||
} catch (JsonAppParsingFailedException $e) {
|
||||
// Legacy script, build compatible array
|
||||
$legacy = $e->getOutput();
|
||||
|
||||
$nfs=array(
|
||||
'data' => array(),
|
||||
);
|
||||
list($nfs['data']['Getattr'], $nfs['data']['Setattr'], $nfs['data']['Lookup'], $nfs['data']['Readlink'],
|
||||
$nfs = [
|
||||
'data' => [],
|
||||
];
|
||||
[$nfs['data']['Getattr'], $nfs['data']['Setattr'], $nfs['data']['Lookup'], $nfs['data']['Readlink'],
|
||||
$nfs['data']['Read'], $nfs['data']['Write'], $nfs['data']['Create'], $nfs['data']['Remove'],
|
||||
$nfs['data']['Rename'], $nfs['data']['Link'], $nfs['data']['Symlink'], $nfs['data']['Mkdir'],
|
||||
$nfs['data']['Rmdir'], $nfs['data']['Readdir'], $nfs['data']['RdirPlus'], $nfs['data']['Access'],
|
||||
$nfs['data']['Mknod'], $nfs['data']['Fsstat'], $nfs['data']['Fsinfo'], $nfs['data']['PathConf'],
|
||||
$nfs['data']['Commit'], $nfs['data']['RetFailed'], $nfs['data']['Faults'], $nfs['data']['Inprog'],
|
||||
$nfs['data']['Idem'], $nfs['data']['Nonidem'], $nfs['data']['Misses'], $nfs['data']['WriteOps'],
|
||||
$nfs['data']['WriteRPC'], $nfs['data']['Opsaved']) = explode("\n", $legacy);
|
||||
$nfs['data']['WriteRPC'], $nfs['data']['Opsaved']] = explode("\n", $legacy);
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('getattr', 'DERIVE', 0)
|
||||
->addDataset('setattr', 'DERIVE', 0)
|
||||
@ -65,7 +66,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('writerpc', 'DERIVE', 0)
|
||||
->addDataset('opsaved', 'DERIVE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'getattr' => $nfs['data']['Getattr'],
|
||||
'setattr' => $nfs['data']['Setattr'],
|
||||
'lookup' => $nfs['data']['Lookup'],
|
||||
@ -96,8 +97,8 @@ $fields = array(
|
||||
'writeops' => $nfs['data']['WriteOps'],
|
||||
'writerpc' => $nfs['data']['WriteRPC'],
|
||||
'opsaved' => $nfs['data']['Opsaved'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, 'OK', $nfs['data']);
|
||||
|
@ -7,42 +7,42 @@ $app_id = $app['app_id'];
|
||||
|
||||
echo " $name";
|
||||
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$rawdata = $agent_data['app'][$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.10.102.114.101.101.114.97.100.105.117.115';
|
||||
$rawdata = snmp_get($device, $oid, $options);
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.10.102.114.101.101.114.97.100.105.117.115';
|
||||
$rawdata = snmp_get($device, $oid, $options);
|
||||
}
|
||||
|
||||
#Format Data
|
||||
//Format Data
|
||||
$lines = explode("\n", $rawdata);
|
||||
$freeradius = array();
|
||||
$metrics = array();
|
||||
$freeradius = [];
|
||||
$metrics = [];
|
||||
foreach ($lines as $line) {
|
||||
list($var,$value) = explode(' = ', $line);
|
||||
[$var,$value] = explode(' = ', $line);
|
||||
$freeradius[$var] = $value;
|
||||
}
|
||||
|
||||
#FreeRADIUS-Total-Access
|
||||
$rrd_name = array('app', $name,'access',$app_id);
|
||||
//FreeRADIUS-Total-Access
|
||||
$rrd_name = ['app', $name, 'access', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('accepts', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('rejects', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('challenges', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'requests' => $freeradius['FreeRADIUS-Total-Access-Requests'],
|
||||
'accepts' => $freeradius['FreeRADIUS-Total-Access-Accepts'],
|
||||
'rejects' => $freeradius['FreeRADIUS-Total-Access-Rejects'],
|
||||
'challenges' => $freeradius['FreeRADIUS-Total-Access-Challenges']
|
||||
);
|
||||
'challenges' => $freeradius['FreeRADIUS-Total-Access-Challenges'],
|
||||
];
|
||||
$metrics['access'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#FreeRADIUS-Total-Auth
|
||||
$rrd_name = array('app', $name,'auth',$app_id);
|
||||
//FreeRADIUS-Total-Auth
|
||||
$rrd_name = ['app', $name, 'auth', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('responses', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('duplicate_requests', 'DERIVE', 0, 125000000000)
|
||||
@ -50,20 +50,20 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('invalid_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('dropped_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('unknown_types', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'responses' => $freeradius['FreeRADIUS-Total-Auth-Responses'],
|
||||
'duplicate_requests' => $freeradius['FreeRADIUS-Total-Auth-Duplicate-Requests'],
|
||||
'malformed_requests' => $freeradius['FreeRADIUS-Total-Auth-Malformed-Requests'],
|
||||
'invalid_requests' => $freeradius['FreeRADIUS-Total-Auth-Invalid-Requests'],
|
||||
'dropped_requests' => $freeradius['FreeRADIUS-Total-Auth-Dropped-Requests'],
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Auth-Unknown-Types']
|
||||
);
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Auth-Unknown-Types'],
|
||||
];
|
||||
$metrics['auth'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#FreeRADIUS-Total-Acct
|
||||
$rrd_name = array('app', $name,'acct',$app_id);
|
||||
//FreeRADIUS-Total-Acct
|
||||
$rrd_name = ['app', $name, 'acct', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('responses', 'DERIVE', 0, 125000000000)
|
||||
@ -72,38 +72,38 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('invalid_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('dropped_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('unknown_types', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'requests' => $freeradius['FreeRADIUS-Total-Accounting-Requests'],
|
||||
'responses' => $freeradius['FreeRADIUS-Total-Accounting-Responses'],
|
||||
'duplicate_requests' => $freeradius['FreeRADIUS-Total-Acct-Duplicate-Requests'],
|
||||
'malformed_requests' => $freeradius['FreeRADIUS-Total-Acct-Malformed-Requests'],
|
||||
'invalid_requests' => $freeradius['FreeRADIUS-Total-Acct-Invalid-Requests'],
|
||||
'dropped_requests' => $freeradius['FreeRADIUS-Total-Acct-Dropped-Requests'],
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Acct-Unknown-Types']
|
||||
);
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Acct-Unknown-Types'],
|
||||
];
|
||||
$metrics['acct'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#FreeRADIUS-Total-Proxy-Access
|
||||
$rrd_name = array('app', $name,'proxy_access',$app_id);
|
||||
//FreeRADIUS-Total-Proxy-Access
|
||||
$rrd_name = ['app', $name, 'proxy_access', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('accepts', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('rejects', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('challenges', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'requests' => $freeradius['FreeRADIUS-Total-Proxy-Access-Requests'],
|
||||
'accepts' => $freeradius['FreeRADIUS-Total-Proxy-Access-Accepts'],
|
||||
'rejects' => $freeradius['FreeRADIUS-Total-Proxy-Access-Rejects'],
|
||||
'challenges' => $freeradius['FreeRADIUS-Total-Proxy-Access-Challenges']
|
||||
);
|
||||
'challenges' => $freeradius['FreeRADIUS-Total-Proxy-Access-Challenges'],
|
||||
];
|
||||
$metrics['proxy_access'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#FreeRADIUS-Total-Proxy-Auth
|
||||
$rrd_name = array('app', $name,'proxy_auth',$app_id);
|
||||
//FreeRADIUS-Total-Proxy-Auth
|
||||
$rrd_name = ['app', $name, 'proxy_auth', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('responses', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('duplicate_requests', 'DERIVE', 0, 125000000000)
|
||||
@ -111,20 +111,20 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('invalid_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('dropped_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('unknown_types', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'responses' => $freeradius['FreeRADIUS-Total-Proxy-Auth-Responses'],
|
||||
'duplicate_requests' => $freeradius['FreeRADIUS-Total-Proxy-Auth-Duplicate-Requests'],
|
||||
'malformed_requests' => $freeradius['FreeRADIUS-Total-Proxy-Auth-Malformed-Requests'],
|
||||
'invalid_requests' => $freeradius['FreeRADIUS-Total-Proxy-Auth-Invalid-Requests'],
|
||||
'dropped_requests' => $freeradius['FreeRADIUS-Total-Proxy-Auth-Dropped-Requests'],
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Proxy-Auth-Unknown-Types']
|
||||
);
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Proxy-Auth-Unknown-Types'],
|
||||
];
|
||||
$metrics['proxy_auth'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#FreeRADIUS-Total-Proxy-Acct
|
||||
$rrd_name = array('app', $name,'proxy_acct',$app_id);
|
||||
//FreeRADIUS-Total-Proxy-Acct
|
||||
$rrd_name = ['app', $name, 'proxy_acct', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('responses', 'DERIVE', 0, 125000000000)
|
||||
@ -133,21 +133,21 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('invalid_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('dropped_requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('unknown_types', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'requests' => $freeradius['FreeRADIUS-Total-Proxy-Accounting-Requests'],
|
||||
'responses' => $freeradius['FreeRADIUS-Total-Proxy-Accounting-Responses'],
|
||||
'duplicate_requests' => $freeradius['FreeRADIUS-Total-Proxy-Acct-Duplicate-Requests'],
|
||||
'malformed_requests' => $freeradius['FreeRADIUS-Total-Proxy-Acct-Malformed-Requests'],
|
||||
'invalid_requests' => $freeradius['FreeRADIUS-Total-Proxy-Acct-Invalid-Requests'],
|
||||
'dropped_requests' => $freeradius['FreeRADIUS-Total-Proxy-Acct-Dropped-Requests'],
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Proxy-Acct-Unknown-Types']
|
||||
);
|
||||
'unknown_types' => $freeradius['FreeRADIUS-Total-Proxy-Acct-Unknown-Types'],
|
||||
];
|
||||
$metrics['proxy_acct'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#FreeRADIUS-Queue
|
||||
$rrd_name = array('app', $name,'queue',$app_id);
|
||||
//FreeRADIUS-Queue
|
||||
$rrd_name = ['app', $name, 'queue', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('len_internal', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('len_proxy', 'DERIVE', 0, 125000000000)
|
||||
@ -156,15 +156,15 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('len_detail', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('pps_in', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('pps_out', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'len_internal' => $freeradius['FreeRADIUS-Queue-Len-Internal'],
|
||||
'len_proxy' => $freeradius['FreeRADIUS-Queue-Len-Proxy'],
|
||||
'len_auth' => $freeradius['FreeRADIUS-Queue-Len-Auth'],
|
||||
'len_acct' => $freeradius['FreeRADIUS-Queue-Len-Acct'],
|
||||
'len_detail' => $freeradius['FreeRADIUS-Queue-Len-Detail'],
|
||||
'pps_in' => $freeradius['FreeRADIUS-Queue-PPS-In'],
|
||||
'pps_out' => $freeradius['FreeRADIUS-Queue-PPS-Out']
|
||||
);
|
||||
'pps_out' => $freeradius['FreeRADIUS-Queue-PPS-Out'],
|
||||
];
|
||||
$metrics['queue'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -4,23 +4,23 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'freeswitch';
|
||||
$app_id = $app['app_id'];
|
||||
if (!empty($agent_data[$name])) {
|
||||
if (! empty($agent_data[$name])) {
|
||||
$rawdata = $agent_data[$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.10.102.114.101.101.115.119.105.116.99.104';
|
||||
$rawdata = snmp_walk($device, $oid, $options);
|
||||
$rawdata = str_replace("<<<freeswitch>>>\n", '', $rawdata);
|
||||
$rawdata = str_replace("<<<freeswitch>>>\n", '', $rawdata);
|
||||
}
|
||||
# Format Data
|
||||
// Format Data
|
||||
$lines = explode("\n", $rawdata);
|
||||
$freeswitch = array();
|
||||
$freeswitch = [];
|
||||
foreach ($lines as $line) {
|
||||
list($var,$value) = explode('=', $line);
|
||||
[$var,$value] = explode('=', $line);
|
||||
$freeswitch[$var] = $value;
|
||||
}
|
||||
# Freeswitch stats
|
||||
$rrd_name = array('app', $name, 'stats', $app_id);
|
||||
// Freeswitch stats
|
||||
$rrd_name = ['app', $name, 'stats', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('calls', 'GAUGE', 0, 10000)
|
||||
->addDataset('channels', 'GAUGE', 0, 10000)
|
||||
@ -29,15 +29,15 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('in_okay', 'COUNTER', 0, 4294967295)
|
||||
->addDataset('out_failed', 'COUNTER', 0, 4294967295)
|
||||
->addDataset('out_okay', 'COUNTER', 0, 4294967295);
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'calls' => $freeswitch['Calls'],
|
||||
'channels' => $freeswitch['Channels'],
|
||||
'peak' => $freeswitch['Peak'],
|
||||
'in_failed' => $freeswitch['InFailed'],
|
||||
'in_okay' => $freeswitch['InTotal'] - $freeswitch['InFailed'],
|
||||
'out_failed' => $freeswitch['OutFailed'],
|
||||
'out_okay' => $freeswitch['OutTotal'] - $freeswitch['OutFailed']
|
||||
);
|
||||
'out_okay' => $freeswitch['OutTotal'] - $freeswitch['OutFailed'],
|
||||
];
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $rawdata, $fields);
|
||||
|
@ -52,8 +52,8 @@
|
||||
}
|
||||
*/
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'gpsd';
|
||||
@ -62,13 +62,13 @@ $app_id = $app['app_id'];
|
||||
echo " $name\n";
|
||||
|
||||
if ($app_id > 0) {
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$gpsd = $agent_data['app'][$name];
|
||||
|
||||
$gpsd_parsed = [];
|
||||
|
||||
foreach (explode("\n", $gpsd) as $line) {
|
||||
list ($field, $data) = explode(':', $line);
|
||||
[$field, $data] = explode(':', $line);
|
||||
$gpsd_parsed[$field] = $data;
|
||||
}
|
||||
|
||||
@ -85,7 +85,7 @@ if ($app_id > 0) {
|
||||
$fields = [];
|
||||
|
||||
foreach ($check_fields as $field) {
|
||||
if (!empty($gpsd_parsed[$field])) {
|
||||
if (! empty($gpsd_parsed[$field])) {
|
||||
$fields[$field] = $gpsd_parsed[$field];
|
||||
}
|
||||
}
|
||||
@ -100,14 +100,15 @@ if ($app_id > 0) {
|
||||
'data' => [],
|
||||
];
|
||||
|
||||
list ($gpsd['data']['mode'], $gpsd['data']['hdop'], $gpsd['data']['vdop'],
|
||||
[$gpsd['data']['mode'], $gpsd['data']['hdop'], $gpsd['data']['vdop'],
|
||||
$gpsd['data']['latitude'], $gpsd['data']['longitude'], $gpsd['data']['altitude'],
|
||||
$gpsd['data']['satellites'], $gpsd['data']['satellites_used']) = explode("\n", $legacy);
|
||||
$gpsd['data']['satellites'], $gpsd['data']['satellites_used']] = explode("\n", $legacy);
|
||||
} catch (JsonAppException $e) {
|
||||
// Set Empty metrics and error message
|
||||
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -135,7 +136,7 @@ if ($app_id > 0) {
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
update_application($app, $gpsd, $fields);
|
||||
} else {
|
||||
update_application($app, 'OK', $fields);
|
||||
|
@ -7,7 +7,7 @@ $app_id = $app['app_id'];
|
||||
|
||||
echo "$name, app_id=$app_id ";
|
||||
|
||||
if (!empty($agent_data[$name])) {
|
||||
if (! empty($agent_data[$name])) {
|
||||
$rawdata = $agent_data[$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
@ -15,31 +15,31 @@ if (!empty($agent_data[$name])) {
|
||||
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.7.105.99.101.99.97.115.116';
|
||||
$rawdata = snmp_get($device, $oid, $options, $mib);
|
||||
$rawdata = str_replace("<<<icecast>>>\n", '', $rawdata);
|
||||
$rawdata = str_replace("<<<icecast>>>\n", '', $rawdata);
|
||||
}
|
||||
|
||||
$lines = explode("\n", $rawdata);
|
||||
|
||||
$icecast = array();
|
||||
$icecast = [];
|
||||
|
||||
foreach ($lines as $line) {
|
||||
list($var,$value) = explode('=', $line);
|
||||
[$var,$value] = explode('=', $line);
|
||||
$icecast[$var] = $value;
|
||||
}
|
||||
|
||||
unset($lines);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('cpu', 'GAUGE', 0, 100)
|
||||
->addDataset('kbyte', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('openfiles', 'GAUGE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
'cpu' => (float)$icecast['CPU Load'],
|
||||
'kbyte' => (int)$icecast['Used Memory'],
|
||||
'openfiles' => (int)$icecast['Open files']
|
||||
);
|
||||
$fields = [
|
||||
'cpu' => (float) $icecast['CPU Load'],
|
||||
'kbyte' => (int) $icecast['Used Memory'],
|
||||
'openfiles' => (int) $icecast['Open files'],
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
|
||||
|
@ -32,10 +32,11 @@ try {
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('received', 'GAUGE', 0)
|
||||
@ -54,8 +55,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('recipients', 'GAUGE', 0)
|
||||
->addDataset('recipienthostsdomains', 'GAUGE', 0);
|
||||
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'received' => $mailcow_postfix['data']['received'],
|
||||
'delivered' => $mailcow_postfix['data']['delivered'],
|
||||
'forwarded' => $mailcow_postfix['data']['forwarded'],
|
||||
@ -71,7 +71,7 @@ $fields = array(
|
||||
'sendinghostsdomains' => $mailcow_postfix['data']['sendinghostsdomains'],
|
||||
'recipients' => $mailcow_postfix['data']['recipients'],
|
||||
'recipienthostsdomains' => $mailcow_postfix['data']['recipienthostsdomains'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -4,18 +4,18 @@
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.109.97.105.108.115.99.97.110.110.101.114';
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.11.109.97.105.108.115.99.97.110.110.101.114';
|
||||
|
||||
$mailscanner = snmp_get($device, $oid, $options);
|
||||
|
||||
echo ' mailscanner';
|
||||
|
||||
list ($msg_recv, $msg_rejected, $msg_relay, $msg_sent, $msg_waiting, $spam, $virus) = explode("\n", $mailscanner);
|
||||
[$msg_recv, $msg_rejected, $msg_relay, $msg_sent, $msg_waiting, $spam, $virus] = explode("\n", $mailscanner);
|
||||
|
||||
$name = 'mailscannerV2';
|
||||
$app_id = $app['app_id'];
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('msg_recv', 'COUNTER', 0, 125000000000)
|
||||
->addDataset('msg_rejected', 'COUNTER', 0, 12500000000)
|
||||
@ -25,7 +25,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('spam', 'COUNTER', 0, 125000000000)
|
||||
->addDataset('virus', 'COUNTER', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'msg_recv' => $msg_recv,
|
||||
'msg_rejected' => $msg_rejected,
|
||||
'msg_relay' => $msg_relay,
|
||||
@ -33,7 +33,7 @@ $fields = array(
|
||||
'msg_waiting' => $msg_waiting,
|
||||
'spam' => $spam,
|
||||
'virus' => $virus,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'mdadm';
|
||||
@ -12,12 +13,13 @@ try {
|
||||
} catch (JsonAppMissingKeysException $e) {
|
||||
$mdadm_data = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('level', 'GAUGE', 0)
|
||||
->addDataset('size', 'GAUGE', 0)
|
||||
@ -27,7 +29,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('sync_speed', 'GAUGE', 0)
|
||||
->addDataset('sync_completed', 'GAUGE', 0);
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
foreach ($mdadm_data as $data) {
|
||||
$array_name = $data['name'];
|
||||
$level = $data['level'];
|
||||
@ -40,22 +42,22 @@ foreach ($mdadm_data as $data) {
|
||||
$sync_speed = $data['sync_speed'];
|
||||
$sync_completed = $data['sync_completed'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $array_name);
|
||||
$rrd_name = ['app', $name, $app_id, $array_name];
|
||||
|
||||
$array_level = str_replace('raid', '', $level);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'level' => $array_level,
|
||||
'size' => $size,
|
||||
'disc_count' => $disc_count,
|
||||
'hotspare_count' => $hotspare_count,
|
||||
'degraded' => $degraded,
|
||||
'sync_speed' => $sync_speed,
|
||||
'sync_completed' => $sync_completed
|
||||
);
|
||||
'sync_completed' => $sync_completed,
|
||||
];
|
||||
|
||||
$metrics[$array_name] = $fields;
|
||||
$tags = array('name' => $array_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $array_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
update_application($app, $output, $metrics);
|
||||
|
@ -4,19 +4,19 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'memcached';
|
||||
$app_id = $app['app_id'];
|
||||
if (!empty($agent_data['app']['memcached'])) {
|
||||
if (! empty($agent_data['app']['memcached'])) {
|
||||
$data = $agent_data['app']['memcached'][$app['app_instance']];
|
||||
} else {
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.9.109.101.109.99.97.99.104.101.100';
|
||||
$result = snmp_get($device, $oid, '-Oqv');
|
||||
$data = trim($result, '"');
|
||||
$data = unserialize(stripslashes(str_replace("<<<app-memcached>>>\n", '', $data)));
|
||||
$data = reset($data);
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.9.109.101.109.99.97.99.104.101.100';
|
||||
$result = snmp_get($device, $oid, '-Oqv');
|
||||
$data = trim($result, '"');
|
||||
$data = unserialize(stripslashes(str_replace("<<<app-memcached>>>\n", '', $data)));
|
||||
$data = reset($data);
|
||||
}
|
||||
|
||||
echo ' memcached('.$app['app_instance'].')';
|
||||
echo ' memcached(' . $app['app_instance'] . ')';
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('uptime', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('threads', 'GAUGE', 0, 125000000000)
|
||||
@ -37,7 +37,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('bytes_read', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('bytes_written', 'DERIVE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'uptime' => $data['uptime'],
|
||||
'threads' => $data['threads'],
|
||||
'rusage_user_ms' => $data['rusage_user_microseconds'],
|
||||
@ -56,7 +56,7 @@ $fields = array(
|
||||
'evictions' => $data['evictions'],
|
||||
'bytes_read' => $data['bytes_read'],
|
||||
'bytes_written' => $data['bytes_written'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -5,7 +5,7 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'mysql';
|
||||
$app_id = $app['app_id'];
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$mysql = $agent_data['app'][$name];
|
||||
} else {
|
||||
// Polls MySQL statistics from script via SNMP
|
||||
@ -13,10 +13,10 @@ if (!empty($agent_data['app'][$name])) {
|
||||
}
|
||||
|
||||
echo ' mysql';
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
|
||||
// General Stats
|
||||
$mapping = array(
|
||||
$mapping = [
|
||||
'IDBLBSe' => 'cr',
|
||||
'IBLFh' => 'ct',
|
||||
'IBLWn' => 'cu',
|
||||
@ -96,23 +96,23 @@ $mapping = array(
|
||||
'CSt' => 'c5',
|
||||
'CUe' => 'c3',
|
||||
'CUMi' => 'c9',
|
||||
);
|
||||
];
|
||||
|
||||
$data = explode("\n", $mysql);
|
||||
|
||||
$map = array();
|
||||
$map = [];
|
||||
foreach ($data as $str) {
|
||||
list($key, $value) = explode(':', $str);
|
||||
$map[$key] = (float) trim($value);
|
||||
[$key, $value] = explode(':', $str);
|
||||
$map[$key] = (float) trim($value);
|
||||
}
|
||||
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
foreach ($mapping as $k => $v) {
|
||||
$fields[$k] = (isset($map[$v]) && $map[$v] >= 0) ? $map[$v] : 'U';
|
||||
}
|
||||
$metrics = $fields;
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('IDBLBSe', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('IBLFh', 'DERIVE', 0, 125000000000)
|
||||
@ -198,7 +198,7 @@ $tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
// Process state statistics
|
||||
$mapping_status = array(
|
||||
$mapping_status = [
|
||||
'State_closing_tables' => 'd2',
|
||||
'State_copying_to_tmp_table' => 'd3',
|
||||
'State_end' => 'd4',
|
||||
@ -215,14 +215,14 @@ $mapping_status = array(
|
||||
'State_writing_to_net' => 'df',
|
||||
'State_none' => 'dg',
|
||||
'State_other' => 'dh',
|
||||
);
|
||||
];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, 'status');
|
||||
$rrd_name = ['app', $name, $app_id, 'status'];
|
||||
$rrd_def = new RrdDefinition();
|
||||
// because this sends different names for rrd and compared to other datastores, disable $fields name checks
|
||||
$rrd_def->disableNameChecking();
|
||||
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
foreach ($mapping_status as $desc => $id) {
|
||||
$fields[$desc] = (isset($map[$id]) && $map[$id] >= 0) ? $map[$id] : 'U';
|
||||
$rrd_def->addDataset($id, 'GAUGE', 0, 125000000000);
|
||||
|
@ -25,13 +25,12 @@ $nfsstats = snmp_get($device, $oid, '-Oqv');
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
// rrd names
|
||||
$rrd_name = array();
|
||||
$rrd_name['default'] = array('app', 'nfs-server-default', $app_id);
|
||||
$rrd_name['proc2'] = array('app', 'nfs-server-proc2', $app_id);
|
||||
$rrd_name['proc3'] = array('app', 'nfs-server-proc3', $app_id);
|
||||
$rrd_name['proc4'] = array('app', 'nfs-server-proc4', $app_id);
|
||||
$rrd_name['proc4ops'] = array('app', 'nfs-server-proc4ops', $app_id);
|
||||
|
||||
$rrd_name = [];
|
||||
$rrd_name['default'] = ['app', 'nfs-server-default', $app_id];
|
||||
$rrd_name['proc2'] = ['app', 'nfs-server-proc2', $app_id];
|
||||
$rrd_name['proc3'] = ['app', 'nfs-server-proc3', $app_id];
|
||||
$rrd_name['proc4'] = ['app', 'nfs-server-proc4', $app_id];
|
||||
$rrd_name['proc4ops'] = ['app', 'nfs-server-proc4ops', $app_id];
|
||||
|
||||
// rrd definitions
|
||||
$rrd_def_array['default'] = RrdDefinition::make()
|
||||
@ -202,40 +201,39 @@ proc4 2 1 404
|
||||
proc4ops 59 0 0 0 2 0 0 0 0 0 402 3 0 0 0 0 3 0 0 0 0 0 0 403 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
*/
|
||||
|
||||
$keys_nfs_server = array(
|
||||
'rc' => array('th_hits', 'th_misses', 'th_nocache'),
|
||||
'fh' => array('fh_lookup', 'fh_anon', 'fh_ncachedir', 'fh_ncachenondir', 'fh_stale'),
|
||||
'io' => array('io_read', 'io_write'),
|
||||
'th' => array('th_threads', 'th_fullcnt', 'th_range01', 'th_range02', 'th_range03', 'th_range04', 'th_range05', 'th_range06', 'th_range07', 'th_range08', 'th_range09', 'th_range10'),
|
||||
'ra' => array('ra_cachesize', 'ra_range01', 'ra_range02', 'ra_range03', 'ra_range04', 'ra_range05', 'ra_range06', 'ra_range07', 'ra_range08', 'ra_range09', 'ra_range10', 'ra_notfound'),
|
||||
'net' => array('net_cnt', 'net_udp', 'net_tcp', 'net_tcpconn'),
|
||||
'rpc' => array('rpc_calls', 'rpc_badcount', 'rpc_badfmt', 'rpc_badauth', 'rpc_badclnt'),
|
||||
'proc2' => array('proc2_null', 'proc2_getattr', 'proc2_setattr', 'proc2_root', 'proc2_lookup','proc2_readlink', 'proc2_read', 'proc2_wrcache', 'proc2_write', 'proc2_create','proc2_remove', 'proc2_rename', 'proc2_link', 'proc2_symlink', 'proc2_mkdir','proc2_rmdir', 'proc2_readdir', 'proc2_fsstat'),
|
||||
'proc3' => array('proc3_null', 'proc3_getattr', 'proc3_setattr', 'proc3_lookup', 'proc3_access','proc3_readlink', 'proc3_read', 'proc3_write', 'proc3_create', 'proc3_mkdir','proc3_symlink', 'proc3_mknod', 'proc3_remove', 'proc3_rmdir', 'proc3_rename','proc3_link', 'proc3_readdir', 'proc3_readdirplus', 'proc3_fsstat', 'proc3_fsinfo', 'proc3_pathconf', 'proc3_commit'),
|
||||
'proc4' => array('proc4_null', 'proc4_compound'),
|
||||
'proc4ops' => array(
|
||||
'v4_op0-unused','v4_op1-unused','v4_op2-future','v4_access','v4_close',
|
||||
'v4_commit','v4_create','v4_delegpurge','v4_delegreturn','v4_getattr','v4_getfh',
|
||||
'v4_link','v4_lock','v4_lockt','v4_locku','v4_lookup','v4_lookup_root','v4_nverify',
|
||||
'v4_open','v4_openattr','v4_open_conf','v4_open_dgrd','v4_putfh','v4_putpubfh','v4_putrootfh',
|
||||
'v4_read','v4_readdir','v4_readlink','v4_remove','v4_rename','v4_renew','v4_restorefh','v4_savefh',
|
||||
'v4_secinfo','v4_setattr','v4_setcltid','v4_setcltidconf','v4_verify','v4_write','v4_rellockowner',
|
||||
'v4_bc_ctl','v4_bind_conn','v4_exchange_id','v4_create_ses','v4_destroy_ses','v4_free_stateid',
|
||||
'v4_getdirdeleg','v4_getdevinfo','v4_getdevlist','v4_layoutcommit','v4_layoutget','v4_layoutreturn',
|
||||
'v4_secinfononam','v4_sequence','v4_set_ssv','v4_test_stateid','v4_want_deleg','v4_destroy_clid',
|
||||
'v4_reclaim_comp')
|
||||
);
|
||||
|
||||
$keys_nfs_server = [
|
||||
'rc' => ['th_hits', 'th_misses', 'th_nocache'],
|
||||
'fh' => ['fh_lookup', 'fh_anon', 'fh_ncachedir', 'fh_ncachenondir', 'fh_stale'],
|
||||
'io' => ['io_read', 'io_write'],
|
||||
'th' => ['th_threads', 'th_fullcnt', 'th_range01', 'th_range02', 'th_range03', 'th_range04', 'th_range05', 'th_range06', 'th_range07', 'th_range08', 'th_range09', 'th_range10'],
|
||||
'ra' => ['ra_cachesize', 'ra_range01', 'ra_range02', 'ra_range03', 'ra_range04', 'ra_range05', 'ra_range06', 'ra_range07', 'ra_range08', 'ra_range09', 'ra_range10', 'ra_notfound'],
|
||||
'net' => ['net_cnt', 'net_udp', 'net_tcp', 'net_tcpconn'],
|
||||
'rpc' => ['rpc_calls', 'rpc_badcount', 'rpc_badfmt', 'rpc_badauth', 'rpc_badclnt'],
|
||||
'proc2' => ['proc2_null', 'proc2_getattr', 'proc2_setattr', 'proc2_root', 'proc2_lookup', 'proc2_readlink', 'proc2_read', 'proc2_wrcache', 'proc2_write', 'proc2_create', 'proc2_remove', 'proc2_rename', 'proc2_link', 'proc2_symlink', 'proc2_mkdir', 'proc2_rmdir', 'proc2_readdir', 'proc2_fsstat'],
|
||||
'proc3' => ['proc3_null', 'proc3_getattr', 'proc3_setattr', 'proc3_lookup', 'proc3_access', 'proc3_readlink', 'proc3_read', 'proc3_write', 'proc3_create', 'proc3_mkdir', 'proc3_symlink', 'proc3_mknod', 'proc3_remove', 'proc3_rmdir', 'proc3_rename', 'proc3_link', 'proc3_readdir', 'proc3_readdirplus', 'proc3_fsstat', 'proc3_fsinfo', 'proc3_pathconf', 'proc3_commit'],
|
||||
'proc4' => ['proc4_null', 'proc4_compound'],
|
||||
'proc4ops' => [
|
||||
'v4_op0-unused', 'v4_op1-unused', 'v4_op2-future', 'v4_access', 'v4_close',
|
||||
'v4_commit', 'v4_create', 'v4_delegpurge', 'v4_delegreturn', 'v4_getattr', 'v4_getfh',
|
||||
'v4_link', 'v4_lock', 'v4_lockt', 'v4_locku', 'v4_lookup', 'v4_lookup_root', 'v4_nverify',
|
||||
'v4_open', 'v4_openattr', 'v4_open_conf', 'v4_open_dgrd', 'v4_putfh', 'v4_putpubfh', 'v4_putrootfh',
|
||||
'v4_read', 'v4_readdir', 'v4_readlink', 'v4_remove', 'v4_rename', 'v4_renew', 'v4_restorefh', 'v4_savefh',
|
||||
'v4_secinfo', 'v4_setattr', 'v4_setcltid', 'v4_setcltidconf', 'v4_verify', 'v4_write', 'v4_rellockowner',
|
||||
'v4_bc_ctl', 'v4_bind_conn', 'v4_exchange_id', 'v4_create_ses', 'v4_destroy_ses', 'v4_free_stateid',
|
||||
'v4_getdirdeleg', 'v4_getdevinfo', 'v4_getdevlist', 'v4_layoutcommit', 'v4_layoutget', 'v4_layoutreturn',
|
||||
'v4_secinfononam', 'v4_sequence', 'v4_set_ssv', 'v4_test_stateid', 'v4_want_deleg', 'v4_destroy_clid',
|
||||
'v4_reclaim_comp', ],
|
||||
];
|
||||
|
||||
// parse each output line, by the id
|
||||
// then 'map' the values to the arrays from $keys_nfs_server
|
||||
$lines = explode("\n", $nfsstats);
|
||||
$default_fields = array();
|
||||
$metrics = array();
|
||||
$lines = explode("\n", $nfsstats);
|
||||
$default_fields = [];
|
||||
$metrics = [];
|
||||
|
||||
foreach ($lines as $line) {
|
||||
$line_values = explode(" ", $line);
|
||||
$line_id = array_shift($line_values);
|
||||
$line_values = explode(" ", $line);
|
||||
$line_id = array_shift($line_values);
|
||||
|
||||
switch ($line_id) {
|
||||
case 'rc':
|
||||
@ -264,7 +262,7 @@ foreach ($lines as $line) {
|
||||
$fields = array_combine($keys_nfs_server[$line_id], $line_values);
|
||||
|
||||
// create or push data to rrd
|
||||
$tags = array('name' => $name, 'app_id' => $app['app_id'], 'rrd_name' => $rrd_name[$line_id], 'rrd_def' => $rrd_def_array[$line_id]);
|
||||
$tags = ['name' => $name, 'app_id' => $app['app_id'], 'rrd_name' => $rrd_name[$line_id], 'rrd_def' => $rrd_def_array[$line_id]];
|
||||
$metrics[$line_id] = $fields;
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
@ -274,10 +272,9 @@ foreach ($lines as $line) {
|
||||
$metrics['none'] = $default_fields;
|
||||
|
||||
// push the default nfs server data to rrd
|
||||
$tags = array('name' => $name, 'app_id' => $app['app_id'], 'rrd_name' => $rrd_name['default'], 'rrd_def' => $rrd_def_array['default']);
|
||||
$tags = ['name' => $name, 'app_id' => $app['app_id'], 'rrd_name' => $rrd_name['default'], 'rrd_def' => $rrd_def_array['default']];
|
||||
data_update($device, 'app', $tags, $default_fields);
|
||||
update_application($app, $nfsstats, $metrics);
|
||||
|
||||
|
||||
// clean up scope
|
||||
unset($nfsstats, $rrd_name, $rrd_def_array, $default_fields, $fields, $tags);
|
||||
|
@ -10,7 +10,7 @@ echo ' ' . $name;
|
||||
|
||||
$nfsstats = snmp_walk($device, $oid, '-Oqv', 'NET-SNMP-EXTEND-MIB');
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('total', 'GAUGE', 0)
|
||||
->addDataset('null', 'GAUGE', 0)
|
||||
@ -29,7 +29,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('fsstat', 'GAUGE', 0);
|
||||
|
||||
$data = explode("\n", $nfsstats);
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'total' => $data[0],
|
||||
'null' => $data[1],
|
||||
'getattr' => $data[2],
|
||||
@ -45,7 +45,7 @@ $fields = array(
|
||||
'rename' => $data[12],
|
||||
'readdirplus' => $data[13],
|
||||
'fsstat' => $data[14],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -10,7 +10,7 @@ echo ' ' . $name;
|
||||
|
||||
$nfsstats = snmp_walk($device, $oid, '-Oqv', 'NET-SNMP-EXTEND-MIB');
|
||||
|
||||
$rrd_name = array('app', 'nfs-stats', $app_id);
|
||||
$rrd_name = ['app', 'nfs-stats', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('rc_hits', 'GAUGE', 0)
|
||||
->addDataset('rc_misses', 'GAUGE', 0)
|
||||
@ -67,7 +67,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('proc3_commit', 'GAUGE', 0);
|
||||
|
||||
$data = explode("\n", $nfsstats);
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'rc_hits' => $data[1],
|
||||
'rc_misses' => $data[2],
|
||||
'rc_nocache' => $data[3],
|
||||
@ -121,7 +121,7 @@ $fields = array(
|
||||
'proc3_fsinfo' => $data[50],
|
||||
'proc3_pathconf' => $data[51],
|
||||
'proc3_commit' => $data[52],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -4,7 +4,7 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'nginx';
|
||||
$app_id = $app['app_id'];
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$nginx = $agent_data['app'][$name];
|
||||
} else {
|
||||
// Polls nginx statistics from script via SNMP
|
||||
@ -14,10 +14,10 @@ $nginx = trim($nginx, '"');
|
||||
|
||||
echo ' nginx';
|
||||
|
||||
list($active, $reading, $writing, $waiting, $req) = array_map('rtrim', explode("\n", $nginx));
|
||||
[$active, $reading, $writing, $waiting, $req] = array_map('rtrim', explode("\n", $nginx));
|
||||
d_echo("active: $active reading: $reading writing: $writing waiting: $waiting Requests: $req\n");
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('Requests', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('Active', 'GAUGE', 0, 125000000000)
|
||||
@ -25,13 +25,13 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('Writing', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('Waiting', 'GAUGE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'Requests' => $req,
|
||||
'Active' => $active,
|
||||
'Reading' => $reading,
|
||||
'Writing' => $writing,
|
||||
'Waiting' => $waiting,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'ntp-client';
|
||||
@ -10,23 +10,24 @@ $app_id = $app['app_id'];
|
||||
echo $name;
|
||||
|
||||
try {
|
||||
$ntp=json_app_get($device, $name);
|
||||
$ntp = json_app_get($device, $name);
|
||||
} catch (JsonAppParsingFailedException $e) {
|
||||
// Legacy script, build compatible array
|
||||
$legacy = $e->getOutput();
|
||||
|
||||
$ntp=array(
|
||||
data => array(),
|
||||
);
|
||||
list ($ntp['data']['offset'], $ntp['data']['frequency'], $ntp['data']['sys_jitter'],
|
||||
$ntp['data']['clk_jitter'], $ntp['data']['clk_wander']) = explode("\n", $legacy);
|
||||
$ntp = [
|
||||
data => [],
|
||||
];
|
||||
[$ntp['data']['offset'], $ntp['data']['frequency'], $ntp['data']['sys_jitter'],
|
||||
$ntp['data']['clk_jitter'], $ntp['data']['clk_wander']] = explode("\n", $legacy);
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('offset', 'GAUGE', -1000, 1000)
|
||||
->addDataset('frequency', 'GAUGE', -1000, 1000)
|
||||
@ -34,13 +35,13 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('noise', 'GAUGE', -1000, 1000)
|
||||
->addDataset('stability', 'GAUGE', -1000, 1000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'offset' => $ntp['data']['offset'],
|
||||
'frequency' => $ntp['data']['frequency'],
|
||||
'jitter' => $ntp['data']['sys_jitter'],
|
||||
'noise' => $ntp['data']['clk_jitter'],
|
||||
'stability' => $ntp['data']['clk_wander'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'ntp-server';
|
||||
@ -10,27 +10,27 @@ $app_id = $app['app_id'];
|
||||
echo $name;
|
||||
|
||||
try {
|
||||
$ntp=json_app_get($device, $name);
|
||||
$ntp = json_app_get($device, $name);
|
||||
} catch (JsonAppParsingFailedException $e) {
|
||||
// Legacy script, build compatible array
|
||||
$legacy = $e->getOutput();
|
||||
|
||||
$ntp=array(
|
||||
data => array(),
|
||||
);
|
||||
$ntp = [
|
||||
data => [],
|
||||
];
|
||||
|
||||
list ($ntp['data']['stratum'], $ntp['data']['offset'], $ntp['data']['frequency'], $ntp['data']['jitter'],
|
||||
[$ntp['data']['stratum'], $ntp['data']['offset'], $ntp['data']['frequency'], $ntp['data']['jitter'],
|
||||
$ntp['data']['noise'], $ntp['data']['stability'], $ntp['data']['uptime'], $ntp['data']['buffer_recv'],
|
||||
$ntp['data']['buffer_free'], $ntp['data']['buffer_used'], $ntp['data']['packets_drop'],
|
||||
$ntp['data']['packets_ignore'], $ntp['data']['packets_recv'], $ntp['data']['packets_sent']) = explode("\n", $legacy);
|
||||
$ntp['data']['packets_ignore'], $ntp['data']['packets_recv'], $ntp['data']['packets_sent']] = explode("\n", $legacy);
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('stratum', 'GAUGE', 0, 1000)
|
||||
->addDataset('offset', 'GAUGE', -1000, 1000)
|
||||
@ -47,8 +47,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('packets_recv', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('packets_sent', 'DERIVE', 0, 125000000000);
|
||||
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'stratum' => $ntp['data']['stratum'],
|
||||
'offset' => $ntp['data']['offset'],
|
||||
'frequency' => $ntp['data']['frequency'],
|
||||
@ -63,8 +62,7 @@ $fields = array(
|
||||
'packets_ignore' => $ntp['data']['ignored_packets'],
|
||||
'packets_recv' => $ntp['data']['received_packets'],
|
||||
'packets_sent' => $ntp['data']['packets_sent'],
|
||||
);
|
||||
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -5,8 +5,8 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
$name = 'nvidia';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.6.110.118.105.100.105.97';
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.6.110.118.105.100.105.97';
|
||||
$gpus = snmp_walk($device, $oid, $options);
|
||||
|
||||
$gpuArray = explode("\n", $gpus);
|
||||
@ -31,23 +31,23 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('txpci', 'GAUGE', 0);
|
||||
|
||||
$sm_total = 0;
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
foreach ($gpuArray as $index => $gpu) {
|
||||
$stats = explode(",", $gpu);
|
||||
|
||||
if (count($stats) == 19) {
|
||||
list($gpu, $pwr, $temp, $memtemp, $sm, $mem, $enc, $dec, $mclk, $pclk, $pviol, $tviol,
|
||||
$fb, $bar1, $sbecc, $dbecc, $pci, $rxpci, $txpci)=$stats;
|
||||
[$gpu, $pwr, $temp, $memtemp, $sm, $mem, $enc, $dec, $mclk, $pclk, $pviol, $tviol,
|
||||
$fb, $bar1, $sbecc, $dbecc, $pci, $rxpci, $txpci] = $stats;
|
||||
} else {
|
||||
list($gpu, $pwr, $temp, $sm, $mem, $enc, $dec, $mclk, $pclk, $pviol, $tviol,
|
||||
$fb, $bar1, $sbecc, $dbecc, $pci, $rxpci, $txpci)=$stats;
|
||||
[$gpu, $pwr, $temp, $sm, $mem, $enc, $dec, $mclk, $pclk, $pviol, $tviol,
|
||||
$fb, $bar1, $sbecc, $dbecc, $pci, $rxpci, $txpci] = $stats;
|
||||
}
|
||||
|
||||
$sm_total += $sm;
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $index);
|
||||
$rrd_name = ['app', $name, $app_id, $index];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'pwr' => $pwr,
|
||||
'temp' => $temp,
|
||||
'sm' => $sm,
|
||||
@ -64,11 +64,11 @@ foreach ($gpuArray as $index => $gpu) {
|
||||
'dbecc' => $dbecc,
|
||||
'pci' => $pci,
|
||||
'rxpci' => $rxpci,
|
||||
'txpci' => $txpci
|
||||
);
|
||||
'txpci' => $txpci,
|
||||
];
|
||||
$metrics[$index] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
$sm_average = ($sm_total ? ($sm_total / count($gpuArray)) : 0);
|
||||
|
@ -25,7 +25,7 @@ echo ' ' . $name;
|
||||
$ogs_data = snmp_get($device, $oid, '-Oqv');
|
||||
|
||||
// define the rrd
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('running_jobs', 'GAUGE', 0)
|
||||
->addDataset('pending_jobs', 'GAUGE', 0)
|
||||
@ -34,18 +34,17 @@ $rrd_def = RrdDefinition::make()
|
||||
|
||||
// parse the data from the script
|
||||
$data = explode("\n", $ogs_data);
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'running_jobs' => $data[0],
|
||||
'pending_jobs' => $data[1],
|
||||
'suspend_jobs' => $data[2],
|
||||
'zombie_jobs' => $data[3],
|
||||
);
|
||||
];
|
||||
|
||||
// push the data in an array and into the rrd
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $ogs_data, $fields);
|
||||
|
||||
|
||||
// cleanup
|
||||
unset($ogs_data, $rrd_name, $rrd_def, $data, $fields, $tags);
|
||||
|
@ -7,7 +7,7 @@ $app_id = $app['app_id'];
|
||||
|
||||
echo "$name, app_id=$app_id ";
|
||||
|
||||
if (!empty($agent_data[$name])) {
|
||||
if (! empty($agent_data[$name])) {
|
||||
$rawdata = $agent_data[$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
@ -17,22 +17,19 @@ if (!empty($agent_data[$name])) {
|
||||
$rawdata = snmp_get($device, $oid, $options, $mib);
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Format Data
|
||||
// Format Data
|
||||
$lines = explode("\n", $rawdata);
|
||||
|
||||
$opensips = array();
|
||||
$opensips = [];
|
||||
|
||||
foreach ($lines as $line) {
|
||||
list($var,$value) = explode('=', $line);
|
||||
[$var,$value] = explode('=', $line);
|
||||
$opensips[$var] = $value;
|
||||
}
|
||||
|
||||
|
||||
unset($lines);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('load', 'GAUGE', 0, 100)
|
||||
@ -41,13 +38,13 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('free_memory', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('openfiles', 'GAUGE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
'load' => (float)$opensips['Load Average'],
|
||||
'total_memory' => (int)$opensips['Total Memory'],
|
||||
'used_memory' => (int)$opensips['Used Memory'],
|
||||
'free_memory' => (int)$opensips['Free Memory'],
|
||||
'openfiles' => (int)$opensips['Open files']
|
||||
);
|
||||
$fields = [
|
||||
'load' => (float) $opensips['Load Average'],
|
||||
'total_memory' => (int) $opensips['Total Memory'],
|
||||
'used_memory' => (int) $opensips['Used Memory'],
|
||||
'free_memory' => (int) $opensips['Free Memory'],
|
||||
'openfiles' => (int) $opensips['Open files'],
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'os-updates';
|
||||
@ -7,13 +8,13 @@ $options = '-Oqv';
|
||||
$mib = 'NET-SNMP-EXTEND-MIB';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.8.111.115.117.112.100.97.116.101.1';
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()->addDataset('packages', 'GAUGE', 0);
|
||||
|
||||
$osupdates = snmp_get($device, $oid, $options, $mib);
|
||||
|
||||
$fields = array('packages' => $osupdates,);
|
||||
$fields = ['packages' => $osupdates];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $osupdates, $fields, $osupdates);
|
||||
|
@ -5,14 +5,14 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
$name = 'php-fpm';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.8.112.104.112.102.112.109.115.112';
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.8.112.104.112.102.112.109.115.112';
|
||||
$phpfpm = snmp_walk($device, $oid, $options);
|
||||
|
||||
list($pool,$start_time,$start_since,$accepted_conn,$listen_queue,$max_listen_queue,$listen_queue_len,$idle_processes,
|
||||
$active_processes,$total_processes,$max_active_processes,$max_children_reached,$slow_requests) = explode("\n", $phpfpm);
|
||||
[$pool,$start_time,$start_since,$accepted_conn,$listen_queue,$max_listen_queue,$listen_queue_len,$idle_processes,
|
||||
$active_processes,$total_processes,$max_active_processes,$max_children_reached,$slow_requests] = explode("\n", $phpfpm);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('lq', 'GAUGE', 0)
|
||||
->addDataset('mlq', 'GAUGE', 0)
|
||||
@ -23,7 +23,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('mcr', 'GAUGE', 0)
|
||||
->addDataset('sr', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'lq' => $listen_queue,
|
||||
'mlq' => $max_listen_queue,
|
||||
'ip' => $idle_processes,
|
||||
@ -31,9 +31,9 @@ $fields = array(
|
||||
'tp' => $total_processes,
|
||||
'map' => $max_active_processes,
|
||||
'mcr' => $max_children_reached,
|
||||
'sr' => $slow_requests
|
||||
);
|
||||
'sr' => $slow_requests,
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $phpfpm, $fields);
|
||||
|
@ -23,9 +23,9 @@ $oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.7.112.105.45.104.111.108.101';
|
||||
$pihole = snmp_walk($device, $oid, $options);
|
||||
|
||||
if ($pihole) {
|
||||
list($domains_blocked, $dns_query, $ads_blocked, $ads_percentage, $unique_domains, $queries_forwarded, $queries_cached, $query_a, $query_aaaa, $query_ptr, $query_srv) = explode("\n", $pihole);
|
||||
[$domains_blocked, $dns_query, $ads_blocked, $ads_percentage, $unique_domains, $queries_forwarded, $queries_cached, $query_a, $query_aaaa, $query_ptr, $query_srv] = explode("\n", $pihole);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('domains_blocked', 'GAUGE', 0)
|
||||
->addDataset('dns_query', 'GAUGE', 0)
|
||||
@ -39,7 +39,7 @@ if ($pihole) {
|
||||
->addDataset('query_ptr', 'GAUGE', 0)
|
||||
->addDataset('query_srv', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'domains_blocked' => $domains_blocked,
|
||||
'dns_query' => $dns_query,
|
||||
'ads_blocked' => $ads_blocked,
|
||||
@ -51,9 +51,9 @@ if ($pihole) {
|
||||
'query_aaaa' => $query_aaaa,
|
||||
'query_ptr' => $query_ptr,
|
||||
'query_srv' => $query_srv,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $pihole, $fields);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'portactivity';
|
||||
$app_id = $app['app_id'];
|
||||
@ -9,14 +9,15 @@ $app_id = $app['app_id'];
|
||||
echo $name;
|
||||
|
||||
try {
|
||||
$returned=json_app_get($device, 'portactivity', 1);
|
||||
$returned = json_app_get($device, 'portactivity', 1);
|
||||
} catch (JsonAppException $e) { // Only doing the generic one as this has no non-JSON return
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$ports=$returned['data'];
|
||||
$ports = $returned['data'];
|
||||
|
||||
$ports_rrd_def = RrdDefinition::make()
|
||||
->addDataset('total_conns', 'GAUGE', 0)
|
||||
@ -66,11 +67,11 @@ $ports_rrd_def = RrdDefinition::make()
|
||||
// update the RRD files for each port
|
||||
//
|
||||
|
||||
$ports_keys=array_keys($ports);
|
||||
$ports_keys_int=0;
|
||||
$ports_keys = array_keys($ports);
|
||||
$ports_keys_int = 0;
|
||||
while (isset($ports[$ports_keys[$ports_keys_int]])) {
|
||||
$rrd_name = array('app', $name, $app_id, $ports_keys[$ports_keys_int]);
|
||||
$fields = array(
|
||||
$rrd_name = ['app', $name, $app_id, $ports_keys[$ports_keys_int]];
|
||||
$fields = [
|
||||
'total_conns' => $ports[$ports_keys[$ports_keys_int]]['total_conns'],
|
||||
'total_to' => $ports[$ports_keys[$ports_keys_int]]['total_to'],
|
||||
'total_from' => $ports[$ports_keys[$ports_keys_int]]['total_from'],
|
||||
@ -113,8 +114,8 @@ while (isset($ports[$ports_keys[$ports_keys_int]])) {
|
||||
'fromTIME_WAIT' => $ports[$ports_keys[$ports_keys_int]]['from']['TIME_WAIT'],
|
||||
'fromUNKNOWN' => $ports[$ports_keys[$ports_keys_int]]['from']['UNKNOWN'],
|
||||
'fromother' => $ports[$ports_keys[$ports_keys_int]]['from']['other'],
|
||||
);
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $ports_rrd_def, 'rrd_name' => $rrd_name);
|
||||
];
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $ports_rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
$ports_keys_int++;
|
||||
@ -123,25 +124,25 @@ while (isset($ports[$ports_keys[$ports_keys_int]])) {
|
||||
//
|
||||
// component processing for portsactivity
|
||||
//
|
||||
$device_id=$device['device_id'];
|
||||
$options=array(
|
||||
'filter' => array(
|
||||
'device_id' => array('=', $device_id),
|
||||
'type' => array('=', 'portsactivity'),
|
||||
),
|
||||
);
|
||||
$device_id = $device['device_id'];
|
||||
$options = [
|
||||
'filter' => [
|
||||
'device_id' => ['=', $device_id],
|
||||
'type' => ['=', 'portsactivity'],
|
||||
],
|
||||
];
|
||||
|
||||
$component=new LibreNMS\Component();
|
||||
$components=$component->getComponents($device_id, $options);
|
||||
$component = new LibreNMS\Component();
|
||||
$components = $component->getComponents($device_id, $options);
|
||||
|
||||
//delete portsactivity component if nothing is found
|
||||
if (empty($ports_keys)) {
|
||||
if (isset($components[$device_id])) {
|
||||
foreach ($components[$device_id] as $component_id => $_unused) {
|
||||
$component->deleteComponent($component_id);
|
||||
$component->deleteComponent($component_id);
|
||||
}
|
||||
}
|
||||
//add portsactivity component if found
|
||||
//add portsactivity component if found
|
||||
} else {
|
||||
if (isset($components[$device_id])) {
|
||||
$portsc = $components[$device_id];
|
||||
|
@ -1,22 +1,23 @@
|
||||
<?php
|
||||
|
||||
$name = 'postfix';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$options = '-Oqv';
|
||||
$queueOID = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.5.109.97.105.108.113';
|
||||
$detailOID = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.15.112.111.115.116.102.105.120.100.101.116.97.105.108.101.100';
|
||||
$options = '-Oqv';
|
||||
$queueOID = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.5.109.97.105.108.113';
|
||||
$detailOID = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.15.112.111.115.116.102.105.120.100.101.116.97.105.108.101.100';
|
||||
$mailq = snmp_walk($device, $queueOID, $options);
|
||||
$detail= snmp_walk($device, $detailOID, $options);
|
||||
$detail = snmp_walk($device, $detailOID, $options);
|
||||
|
||||
list($incomingq, $activeq, $deferredq, $holdq) = explode("\n", $mailq);
|
||||
[$incomingq, $activeq, $deferredq, $holdq] = explode("\n", $mailq);
|
||||
|
||||
list($received, $delivered, $forwarded, $deferred, $bounced, $rejected, $rejectw, $held, $discarded, $bytesr,
|
||||
[$received, $delivered, $forwarded, $deferred, $bounced, $rejected, $rejectw, $held, $discarded, $bytesr,
|
||||
$bytesd, $senders, $sendinghd, $recipients, $recipienthd, $deferralcr, $deferralhid, $chr, $hcrnfqh, $sardnf,
|
||||
$sarnobu, $bu, $raruu, $hcrin, $sarnfqa, $rardnf, $rarnfqa, $iuscp, $sce, $scp, $urr) = explode("\n", $detail);
|
||||
$sarnobu, $bu, $raruu, $hcrin, $sarnfqa, $rardnf, $rarnfqa, $iuscp, $sce, $scp, $urr] = explode("\n", $detail);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('incomingq', 'GAUGE', 0)
|
||||
->addDataset('activeq', 'GAUGE', 0)
|
||||
@ -54,7 +55,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('scp', 'GAUGE', 0)
|
||||
->addDataset('urr', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'incomingq' => $incomingq,
|
||||
'activeq' => $activeq,
|
||||
'deferredq' => $deferredq,
|
||||
@ -89,9 +90,9 @@ $fields = array(
|
||||
'iuscp' => $iuscp,
|
||||
'sce' => $sce,
|
||||
'scp' => $scp,
|
||||
'urr' => $urr
|
||||
);
|
||||
'urr' => $urr,
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $mailq, $fields);
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
$name = 'postgres';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
@ -6,15 +7,15 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
echo "postgres";
|
||||
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.8.112.111.115.116.103.114.101.115';
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.8.112.111.115.116.103.114.101.115';
|
||||
$postgres = snmp_walk($device, $oid, $options);
|
||||
|
||||
list($backends, $commits, $rollbacks, $read, $hit, $idxscan, $idxtupread, $idxtupfetch, $idxblksread,
|
||||
$idxblkshit, $seqscan, $seqtupread, $ret, $fetch, $ins, $upd, $del) = explode("\n", $postgres);
|
||||
[$backends, $commits, $rollbacks, $read, $hit, $idxscan, $idxtupread, $idxtupfetch, $idxblksread,
|
||||
$idxblkshit, $seqscan, $seqtupread, $ret, $fetch, $ins, $upd, $del] = explode("\n", $postgres);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$metrics = array();
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$metrics = [];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('backends', 'GAUGE', 0)
|
||||
@ -35,7 +36,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('upd', 'DERIVE', 0)
|
||||
->addDataset('del', 'DERIVE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'backends' => $backends,
|
||||
'commits' => $commits,
|
||||
'rollbacks' => $rollbacks,
|
||||
@ -52,27 +53,27 @@ $fields = array(
|
||||
'fetch' => $fetch,
|
||||
'ins' => $ins,
|
||||
'upd' => $upd,
|
||||
'del' => $del
|
||||
);
|
||||
'del' => $del,
|
||||
];
|
||||
$metrics['none'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//process each database
|
||||
$db_lines=explode("\n", $postgres);
|
||||
$db_lines_int=17;
|
||||
$found_dbs=array();
|
||||
$db_lines = explode("\n", $postgres);
|
||||
$db_lines_int = 17;
|
||||
$found_dbs = [];
|
||||
|
||||
while (isset($db_lines[$db_lines_int])) {
|
||||
list($backends, $commits, $rollbacks, $read, $hit, $idxscan, $idxtupread, $idxtupfetch, $idxblksread,
|
||||
$idxblkshit, $seqscan, $seqtupread, $ret, $fetch, $ins, $upd, $del, $dbname) = explode(" ", $db_lines[$db_lines_int]);
|
||||
[$backends, $commits, $rollbacks, $read, $hit, $idxscan, $idxtupread, $idxtupfetch, $idxblksread,
|
||||
$idxblkshit, $seqscan, $seqtupread, $ret, $fetch, $ins, $upd, $del, $dbname] = explode(" ", $db_lines[$db_lines_int]);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $dbname);
|
||||
$rrd_name = ['app', $name, $app_id, $dbname];
|
||||
|
||||
$found_dbs[]=$dbname;
|
||||
$found_dbs[] = $dbname;
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'backends' => $backends,
|
||||
'commits' => $commits,
|
||||
'rollbacks' => $rollbacks,
|
||||
@ -89,11 +90,11 @@ while (isset($db_lines[$db_lines_int])) {
|
||||
'fetch' => $fetch,
|
||||
'ins' => $ins,
|
||||
'upd' => $upd,
|
||||
'del' => $del
|
||||
);
|
||||
'del' => $del,
|
||||
];
|
||||
|
||||
$metrics[$dbname] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
$db_lines_int++;
|
||||
@ -103,22 +104,22 @@ update_application($app, $postgres, $metrics);
|
||||
//
|
||||
// component processing for postgres
|
||||
//
|
||||
$device_id=$device['device_id'];
|
||||
$device_id = $device['device_id'];
|
||||
|
||||
$options=array(
|
||||
'filter' => array(
|
||||
'device_id' => array('=', $device_id),
|
||||
'type' => array('=', 'postgres'),
|
||||
),
|
||||
);
|
||||
$options = [
|
||||
'filter' => [
|
||||
'device_id' => ['=', $device_id],
|
||||
'type' => ['=', 'postgres'],
|
||||
],
|
||||
];
|
||||
|
||||
$component=new LibreNMS\Component();
|
||||
$pg_components=$component->getComponents($device_id, $options);
|
||||
$component = new LibreNMS\Component();
|
||||
$pg_components = $component->getComponents($device_id, $options);
|
||||
|
||||
if (empty($found_dbs)) {
|
||||
if (isset($pg_components[$device_id])) {
|
||||
foreach ($pg_components[$device_id] as $component_id => $_unused) {
|
||||
$component->deleteComponent($component_id);
|
||||
$component->deleteComponent($component_id);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -32,9 +32,9 @@ d_echo($name);
|
||||
$powerdns_dnsdist = snmp_walk($device, $oid, $options);
|
||||
|
||||
if (is_string($powerdns_dnsdist)) {
|
||||
list($cache_hits, $cache_miss, $downstream_err, $downstream_timeout, $dynamic_block_size, $dynamic_blocked, $queries_count, $queries_recursive, $queries_empty, $queries_drop_no_policy, $queries_drop_nc, $queries_drop_nc_answer, $queries_self_answer, $queries_serv_fail, $queries_failure, $queries_acl_drop, $rule_drop, $rule_nxdomain, $rule_refused, $latency_100, $latency_1000, $latency_10000, $latency_1000000, $latency_slow, $latency_0_1, $latency_1_10, $latency_10_50, $latency_50_100, $latency_100_1000) = explode("\n", $powerdns_dnsdist);
|
||||
[$cache_hits, $cache_miss, $downstream_err, $downstream_timeout, $dynamic_block_size, $dynamic_blocked, $queries_count, $queries_recursive, $queries_empty, $queries_drop_no_policy, $queries_drop_nc, $queries_drop_nc_answer, $queries_self_answer, $queries_serv_fail, $queries_failure, $queries_acl_drop, $rule_drop, $rule_nxdomain, $rule_refused, $latency_100, $latency_1000, $latency_10000, $latency_1000000, $latency_slow, $latency_0_1, $latency_1_10, $latency_10_50, $latency_50_100, $latency_100_1000] = explode("\n", $powerdns_dnsdist);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('cache_hits', 'COUNTER', 0)
|
||||
@ -67,8 +67,7 @@ if (is_string($powerdns_dnsdist)) {
|
||||
->addDataset('latency_50_100', 'COUNTER', 0)
|
||||
->addDataset('latency_100_1000', 'COUNTER', 0);
|
||||
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'cache_hits' => $cache_hits,
|
||||
'cache_miss' => $cache_miss,
|
||||
'downstream_err' => $downstream_err,
|
||||
@ -98,9 +97,9 @@ if (is_string($powerdns_dnsdist)) {
|
||||
'latency_10_50' => $latency_10_50,
|
||||
'latency_50_100' => $latency_50_100,
|
||||
'latency_100_1000' => $latency_100_1000,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $powerdns_dnsdist, $fields);
|
||||
}
|
||||
|
@ -51,8 +51,8 @@ if ($agent_data['app'][$name]) {
|
||||
$data = stripslashes(snmp_get($device, $oid, '-Oqv'));
|
||||
}
|
||||
|
||||
if (!empty($data)) {
|
||||
$ds_list = array(
|
||||
if (! empty($data)) {
|
||||
$ds_list = [
|
||||
'all-outqueries' => 'DERIVE',
|
||||
'answers-slow' => 'DERIVE',
|
||||
'answers0-1' => 'DERIVE',
|
||||
@ -111,10 +111,10 @@ if (!empty($data)) {
|
||||
'unreachables' => 'DERIVE',
|
||||
'uptime' => 'DERIVE',
|
||||
'user-msec' => 'DERIVE',
|
||||
);
|
||||
];
|
||||
|
||||
//decode and flatten the data
|
||||
$stats = array();
|
||||
$stats = [];
|
||||
foreach (json_decode($data, true) as $stat) {
|
||||
$stats[$stat['name']] = $stat['value'];
|
||||
}
|
||||
@ -122,7 +122,7 @@ if (!empty($data)) {
|
||||
|
||||
// only the stats we store in rrd
|
||||
$rrd_def = new RrdDefinition();
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
foreach ($ds_list as $key => $type) {
|
||||
$rrd_def->addDataset($key, $type, 0);
|
||||
|
||||
@ -133,7 +133,7 @@ if (!empty($data)) {
|
||||
}
|
||||
}
|
||||
|
||||
$rrd_name = array('app', 'powerdns', 'recursor', $app_id);
|
||||
$rrd_name = ['app', 'powerdns', 'recursor', $app_id];
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $data, $fields);
|
||||
|
@ -50,15 +50,16 @@ if (isset($agent_data) && isset($agent_data['app'][$name])) {
|
||||
} catch (JsonAppParsingFailedException $e) {
|
||||
$legacy = $e->getOutput();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($legacy)) {
|
||||
// Legacy script, build compatible array
|
||||
list(
|
||||
[
|
||||
$powerdns['corrupt-packets'],
|
||||
$powerdns['deferred-cache-inserts'],
|
||||
$powerdns['deferred-cache-lookup'],
|
||||
@ -81,7 +82,7 @@ if (isset($legacy)) {
|
||||
$powerdns['udp4-queries'],
|
||||
$powerdns['udp6-answers'],
|
||||
$powerdns['udp6-queries'],
|
||||
) = explode("\n", $legacy);
|
||||
] = explode("\n", $legacy);
|
||||
}
|
||||
|
||||
d_echo($powerdns);
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if (!function_exists('proxmox_port_exists')) {
|
||||
if (! function_exists('proxmox_port_exists')) {
|
||||
/**
|
||||
* Check if a port on a Proxmox VM exists
|
||||
* @param string $p Port name
|
||||
* @param string $c Clustername
|
||||
* @param integer $i VM ID
|
||||
* @return integer|boolean The port-ID if the port exists, false if it doesn't exist
|
||||
* @param int $i VM ID
|
||||
* @return int|bool The port-ID if the port exists, false if it doesn't exist
|
||||
*/
|
||||
function proxmox_port_exists($i, $c, $p)
|
||||
{
|
||||
@ -20,22 +20,22 @@ if (!function_exists('proxmox_port_exists')) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('proxmox_vm_exists')) {
|
||||
if (! function_exists('proxmox_vm_exists')) {
|
||||
/**
|
||||
* Check if a Proxmox VM exists
|
||||
* @param integer $i VM ID
|
||||
* @param int $i VM ID
|
||||
* @param string $c Clustername
|
||||
* @param array $pmxcache Reference to the Proxmox VM Cache
|
||||
* @return boolean true if the VM exists, false if it doesn't
|
||||
* @return bool true if the VM exists, false if it doesn't
|
||||
*/
|
||||
function proxmox_vm_exists($i, $c, &$pmxcache)
|
||||
{
|
||||
|
||||
if (isset($pmxcache[$c][$i]) && $pmxcache[$c][$i] > 0) {
|
||||
return true;
|
||||
}
|
||||
if ($row = dbFetchRow("SELECT id FROM proxmox WHERE vmid = ? AND cluster = ?", [$i, $c])) {
|
||||
$pmxcache[$c][$i] = (integer)$row['id'];
|
||||
$pmxcache[$c][$i] = (int) $row['id'];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -46,11 +46,11 @@ if (!function_exists('proxmox_vm_exists')) {
|
||||
$name = 'proxmox';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
if (\LibreNMS\Config::get('enable_proxmox') && !empty($agent_data['app'][$name])) {
|
||||
if (\LibreNMS\Config::get('enable_proxmox') && ! empty($agent_data['app'][$name])) {
|
||||
$proxmox = $agent_data['app'][$name];
|
||||
} elseif (\LibreNMS\Config::get('enable_proxmox')) {
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.7.112.114.111.120.109.111.120';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.7.112.114.111.120.109.111.120';
|
||||
$proxmox = snmp_get($device, $oid, $options);
|
||||
$proxmox = preg_replace('/^.+\n/', '', $proxmox);
|
||||
$proxmox = str_replace("<<<app-proxmox>>>\n", '', $proxmox);
|
||||
@ -60,33 +60,33 @@ if ($proxmox) {
|
||||
$pmxlines = explode("\n", $proxmox);
|
||||
$pmxcluster = array_shift($pmxlines);
|
||||
dbUpdate(
|
||||
array('device_id' => $device['device_id'], 'app_type' => $name, 'app_instance' => $pmxcluster),
|
||||
['device_id' => $device['device_id'], 'app_type' => $name, 'app_instance' => $pmxcluster],
|
||||
'applications',
|
||||
'`device_id` = ? AND `app_type` = ?',
|
||||
array($device['device_id'], $name)
|
||||
[$device['device_id'], $name]
|
||||
);
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
if (count($pmxlines) > 0) {
|
||||
$pmxcache = array();
|
||||
$pmxcache = [];
|
||||
|
||||
foreach ($pmxlines as $vm) {
|
||||
$vm = str_replace('"', '', $vm);
|
||||
list($vmid, $vmport, $vmpin, $vmpout, $vmdesc) = explode('/', $vm, 5);
|
||||
print "Proxmox ($pmxcluster): $vmdesc: $vmpin/$vmpout/$vmport\n";
|
||||
[$vmid, $vmport, $vmpin, $vmpout, $vmdesc] = explode('/', $vm, 5);
|
||||
echo "Proxmox ($pmxcluster): $vmdesc: $vmpin/$vmpout/$vmport\n";
|
||||
|
||||
$rrd_proxmox_name = array(
|
||||
$rrd_proxmox_name = [
|
||||
'pmxcluster' => $pmxcluster,
|
||||
'vmid' => $vmid,
|
||||
'vmport' => $vmport
|
||||
);
|
||||
'vmport' => $vmport,
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('INOCTETS', 'DERIVE', 0, 12500000000)
|
||||
->addDataset('OUTOCTETS', 'DERIVE', 0, 12500000000);
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'INOCTETS' => $vmpin,
|
||||
'OUTOCTETS' => $vmpout
|
||||
);
|
||||
'OUTOCTETS' => $vmpout,
|
||||
];
|
||||
|
||||
$proxmox_metric_prefix = "pmxcluster{$pmxcluster}_vmid{$vmid}_vmport$vmport";
|
||||
$metrics[$proxmox_metric_prefix] = $fields;
|
||||
@ -94,29 +94,29 @@ if ($proxmox) {
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
if (proxmox_vm_exists($vmid, $pmxcluster, $pmxcache) === true) {
|
||||
dbUpdate(array(
|
||||
dbUpdate([
|
||||
'device_id' => $device['device_id'],
|
||||
'last_seen' => array('NOW()'),
|
||||
'description' => $vmdesc
|
||||
), $name, '`vmid` = ? AND `cluster` = ?', array($vmid, $pmxcluster));
|
||||
'last_seen' => ['NOW()'],
|
||||
'description' => $vmdesc,
|
||||
], $name, '`vmid` = ? AND `cluster` = ?', [$vmid, $pmxcluster]);
|
||||
} else {
|
||||
$pmxcache[$pmxcluster][$vmid] = dbInsert(array(
|
||||
$pmxcache[$pmxcluster][$vmid] = dbInsert([
|
||||
'cluster' => $pmxcluster,
|
||||
'vmid' => $vmid,
|
||||
'description' => $vmdesc,
|
||||
'device_id' => $device['device_id']
|
||||
), $name);
|
||||
'device_id' => $device['device_id'],
|
||||
], $name);
|
||||
}
|
||||
|
||||
if ($portid = proxmox_port_exists($vmid, $pmxcluster, $vmport) !== false) {
|
||||
dbUpdate(
|
||||
array('last_seen' => array('NOW()')),
|
||||
['last_seen' => ['NOW()']],
|
||||
'proxmox_ports',
|
||||
'`vm_id` = ? AND `port` = ?',
|
||||
array($pmxcache[$pmxcluster][$vmid], $vmport)
|
||||
[$pmxcache[$pmxcluster][$vmid], $vmport]
|
||||
);
|
||||
} else {
|
||||
dbInsert(array('vm_id' => $pmxcache[$pmxcluster][$vmid], 'port' => $vmport), 'proxmox_ports');
|
||||
dbInsert(['vm_id' => $pmxcache[$pmxcluster][$vmid], 'port' => $vmport], 'proxmox_ports');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'puppet-agent';
|
||||
@ -12,57 +13,57 @@ try {
|
||||
} catch (JsonAppMissingKeysException $e) {
|
||||
$puppet_agent_data = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$puppet_changes = $puppet_agent_data['changes'];
|
||||
$puppet_events = $puppet_agent_data['events'];
|
||||
$puppet_resources = $puppet_agent_data['resources'];
|
||||
$puppet_time = $puppet_agent_data['time'];
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
|
||||
//
|
||||
// Changes Processing
|
||||
//
|
||||
$rrd_name = array('app', $name, $app_id, 'changes');
|
||||
$rrd_name = ['app', $name, $app_id, 'changes'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('total', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'total' => $puppet_changes['total'],
|
||||
);
|
||||
];
|
||||
$metrics['changes'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// Events Processing
|
||||
//
|
||||
$rrd_name = array('app', $name, $app_id, 'events');
|
||||
$rrd_name = ['app', $name, $app_id, 'events'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('success', 'GAUGE', 0)
|
||||
->addDataset('failure', 'GAUGE', 0)
|
||||
->addDataset('total', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'success' => $puppet_events['success'],
|
||||
'failure' => $puppet_events['failure'],
|
||||
'total' => $puppet_events['total'],
|
||||
);
|
||||
];
|
||||
$metrics['events'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// Resources Processing
|
||||
//
|
||||
$rrd_name = array('app', $name, $app_id, 'resources');
|
||||
$rrd_name = ['app', $name, $app_id, 'resources'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('changed', 'GAUGE', 0)
|
||||
->addDataset('corrective_change', 'GAUGE', 0)
|
||||
@ -74,7 +75,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('skipped', 'GAUGE', 0)
|
||||
->addDataset('total', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'changed' => $puppet_resources['changed'],
|
||||
'corrective_change' => $puppet_resources['corrective_change'],
|
||||
'failed' => $puppet_resources['failed'],
|
||||
@ -84,16 +85,16 @@ $fields = array(
|
||||
'scheduled' => $puppet_resources['scheduled'],
|
||||
'skipped' => $puppet_resources['skipped'],
|
||||
'total' => $puppet_resources['total'],
|
||||
);
|
||||
];
|
||||
$metrics['resources'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// Time Processing
|
||||
//
|
||||
$rrd_name = array('app', $name, $app_id, 'time');
|
||||
$rrd_name = ['app', $name, $app_id, 'time'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('catalog_application', 'GAUGE', 0)
|
||||
->addDataset('config_retrieval', 'GAUGE', 0)
|
||||
@ -105,7 +106,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('transaction_evaluation', 'GAUGE', 0)
|
||||
->addDataset('total', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'catalog_application' => $puppet_time['catalog_application'],
|
||||
'config_retrieval' => $puppet_time['config_retrieval'],
|
||||
'convert_catalog' => $puppet_time['convert_catalog'],
|
||||
@ -115,25 +116,25 @@ $fields = array(
|
||||
'schedule' => $puppet_time['schedule'],
|
||||
'transaction_evaluation' => $puppet_time['transaction_evaluation'],
|
||||
'total' => $puppet_time['total'],
|
||||
);
|
||||
];
|
||||
$metrics['time'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
//
|
||||
// Last Rung Processing
|
||||
//
|
||||
$rrd_name = array('app', $name, $app_id, 'last_run');
|
||||
$rrd_name = ['app', $name, $app_id, 'last_run'];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('last_run', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
'last_run' => round(intval($puppet_time['last_run'])/60, 0), # diff seconds to minutes
|
||||
);
|
||||
$fields = [
|
||||
'last_run' => round(intval($puppet_time['last_run']) / 60, 0), // diff seconds to minutes
|
||||
];
|
||||
$metrics['last_run'] = $fields;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
update_application($app, $output, $metrics);
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'pureftpd';
|
||||
@ -13,8 +13,9 @@ try {
|
||||
} catch (JsonAppMissingKeysException $e) {
|
||||
$pureftpd_data = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -48,47 +49,47 @@ foreach ($pureftpd_data as $client) {
|
||||
}
|
||||
}
|
||||
|
||||
$metrics = array();
|
||||
#PureFTPd - Connections
|
||||
$metrics = [];
|
||||
//PureFTPd - Connections
|
||||
$dataset = 'connections';
|
||||
$rrd_name = array('app', $name, $app_id, $dataset);
|
||||
$rrd_name = ['app', $name, $app_id, $dataset];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('download', 'GAUGE', 0)
|
||||
->addDataset('upload', 'GAUGE', 0)
|
||||
->addDataset('idle', 'GAUGE', 0);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'download' => $dl_connections,
|
||||
'upload' => $ul_connections,
|
||||
'idle' => $idle_connections
|
||||
);
|
||||
'idle' => $idle_connections,
|
||||
];
|
||||
$metrics[$dataset] = $fields;
|
||||
$tags = array('name' => $dataset, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $dataset, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#PureFTPd - connected Users
|
||||
//PureFTPd - connected Users
|
||||
$dataset = 'users';
|
||||
$rrd_name = array('app', $name, $app_id, $dataset);
|
||||
$rrd_name = ['app', $name, $app_id, $dataset];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('total', 'GAUGE', 0);
|
||||
$fields = array (
|
||||
'total' => $users_connected
|
||||
);
|
||||
$fields = [
|
||||
'total' => $users_connected,
|
||||
];
|
||||
$metrics[$dataset] = $fields;
|
||||
$tags = array('name' => $dataset, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $dataset, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#PureFTPd - Bitrate
|
||||
//PureFTPd - Bitrate
|
||||
$dataset = 'bitrate';
|
||||
$rrd_name = array('app', $name, $app_id, $dataset);
|
||||
$rrd_name = ['app', $name, $app_id, $dataset];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('download', 'GAUGE', 0)
|
||||
->addDataset('upload', 'GAUGE', 0);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'download' => $dl_bitrate,
|
||||
'upload' => $ul_bitrate,
|
||||
);
|
||||
];
|
||||
$metrics[$dataset] = $fields;
|
||||
$tags = array('name' => $dataset, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $dataset, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
update_application($app, $output, $metrics);
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'redis';
|
||||
@ -12,8 +13,9 @@ try {
|
||||
} catch (JsonAppMissingKeysException $e) {
|
||||
$redis_data = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -21,72 +23,68 @@ $client_data = $redis_data['Clients'];
|
||||
$memory_data = $redis_data['Memory'];
|
||||
$stats_data = $redis_data['Stats'];
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
|
||||
$category = 'clients';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'connected' => $client_data['connected_clients'],
|
||||
'blocked' => $client_data['blocked_clients'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('connected', 'GAUGE', 0)
|
||||
->addDataset('blocked', 'GAUGE', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'memory';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'active' => $memory_data['allocator'],
|
||||
'allocated' => $memory_data['allocator_allocated'],
|
||||
'resident' => $memory_data['allocator_resident'],
|
||||
'frag_bytes' => $memory_data['allocator_frag_bytes'],
|
||||
'rss_bytes' => $memory_data['allocator_rss_bytes'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('active', 'GAUGE', 0)
|
||||
->addDataset('allocated', 'GAUGE', 0)
|
||||
->addDataset('resident', 'GAUGE', 0)
|
||||
->addDataset('frag_bytes', 'GAUGE', 0)
|
||||
->addDataset('rss_bytes', 'GAUGE', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'objects';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'pending' => $memory_data['lazyfree_pending_objects'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('pending', 'GAUGE', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'fragmentation';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'bytes' => $memory_data['mem_fragmentation_bytes'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('bytes', 'GAUGE', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'usage';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'allocated' => $memory_data['used_memory'],
|
||||
'dataset' => $memory_data['used_memory_dataset'],
|
||||
'lua' => $memory_data['used_memory_lua'],
|
||||
@ -95,7 +93,7 @@ $fields = array(
|
||||
'rss' => $memory_data['used_memory_rss'],
|
||||
'scripts' => $memory_data['used_memory_scripts'],
|
||||
'startup' => $memory_data['used_memory_startup'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('allocated', 'COUNTER', 0)
|
||||
->addDataset('dataset', 'GAUGE', 0)
|
||||
@ -105,104 +103,98 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('rss', 'GAUGE', 0)
|
||||
->addDataset('scripts', 'GAUGE', 0)
|
||||
->addDataset('startup', 'GAUGE', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'defrag';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'hits' => $stats_data['active_defrag_hits'],
|
||||
'misses' => $stats_data['active_defrag_misses'],
|
||||
'key_hits' => $stats_data['active_defrag_key_hits'],
|
||||
'key_misses' => $stats_data['active_defrag_key_misses'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('hits', 'GAUGE', 0)
|
||||
->addDataset('misses', 'GAUGE', 0)
|
||||
->addDataset('key_hits', 'GAUGE', 0)
|
||||
->addDataset('key_misses', 'GAUGE', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'keyspace';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'hits' => $stats_data['keyspace_hits'],
|
||||
'misses' => $stats_data['keyspace_misses'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('hits', 'COUNTER', 0)
|
||||
->addDataset('misses', 'COUNTER', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'sync';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'full' => $stats_data['sync_full'],
|
||||
'ok' => $stats_data['sync_partial_ok'],
|
||||
'err' => $stats_data['sync_partial_err'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('full', 'GAUGE', 0)
|
||||
->addDataset('ok', 'GAUGE', 0)
|
||||
->addDataset('err', 'GAUGE', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'commands';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'processed' => $stats_data['total_commands_processed'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('processed', 'COUNTER', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'connections';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'received' => $stats_data['total_connections_received'],
|
||||
'rejected' => $stats_data['rejected_connections'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('received', 'COUNTER', 0)
|
||||
->addDataset('rejected', 'COUNTER', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
$category = 'net';
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'input_bytes' => $stats_data['total_net_input_bytes'],
|
||||
'output_bytes' => $stats_data['total_net_output_bytes'],
|
||||
);
|
||||
];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('input_bytes', 'COUNTER', 0)
|
||||
->addDataset('output_bytes', 'COUNTER', 0);
|
||||
$rrd_name = array('app', $name, $app_id, $category);
|
||||
$rrd_name = ['app', $name, $app_id, $category];
|
||||
|
||||
$metrics[$category] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
update_application($app, $output, $metrics);
|
||||
|
@ -40,7 +40,7 @@ if ($agent_data['app'][$name]) {
|
||||
|
||||
$sock = fsockopen($device['hostname'], 42217, $errno, $errstr, 5);
|
||||
|
||||
if (!$sock) {
|
||||
if (! $sock) {
|
||||
$socket = \LibreNMS\Config::get('rrdcached');
|
||||
if (substr($socket, 0, 6) == 'unix:/') {
|
||||
$socket_file = substr($socket, 5);
|
||||
@ -57,7 +57,7 @@ if ($agent_data['app'][$name]) {
|
||||
$data .= fgets($sock, 128);
|
||||
if ($max == -1) {
|
||||
$tmp_max = explode(' ', $data);
|
||||
$max = $tmp_max[0]+1;
|
||||
$max = $tmp_max[0] + 1;
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
@ -67,7 +67,7 @@ if ($agent_data['app'][$name]) {
|
||||
}
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('queue_length', 'GAUGE', 0)
|
||||
->addDataset('updates_received', 'COUNTER', 0)
|
||||
@ -79,7 +79,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('journal_bytes', 'COUNTER', 0)
|
||||
->addDataset('journal_rotate', 'COUNTER', 0);
|
||||
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
foreach (explode("\n", $data) as $line) {
|
||||
$split = explode(': ', $line);
|
||||
if (count($split) == 2) {
|
||||
|
@ -31,7 +31,7 @@ d_echo($name);
|
||||
$sdfsinfo = snmp_walk($device, $oid, $options);
|
||||
|
||||
if (is_string($sdfsinfo)) {
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('files', 'GAUGE', 0)
|
||||
@ -46,9 +46,9 @@ if (is_string($sdfsinfo)) {
|
||||
->addDataset('actual_savings', 'GAUGE', 0)
|
||||
->addDataset('comp_rate', 'GAUGE', 0);
|
||||
|
||||
list($files, $vol_capacity, $vol_logic_size, $vol_max_load, $dup_data, $blocks_unique, $blocks_compressed, $cluster_copies, $dedup_rate, $actual_savings, $comp_rate) = explode(" ", $sdfsinfo);
|
||||
[$files, $vol_capacity, $vol_logic_size, $vol_max_load, $dup_data, $blocks_unique, $blocks_compressed, $cluster_copies, $dedup_rate, $actual_savings, $comp_rate] = explode(" ", $sdfsinfo);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'files' => $files,
|
||||
'vol_capacity' => $vol_capacity,
|
||||
'vol_logic_size' => $vol_logic_size,
|
||||
@ -60,9 +60,9 @@ if (is_string($sdfsinfo)) {
|
||||
'dedup_rate' => $dedup_rate,
|
||||
'actual_savings' => $actual_savings,
|
||||
'comp_rate' => $comp_rate,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
update_application($app, $sdfsinfo, $fields);
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'seafile';
|
||||
@ -12,8 +13,9 @@ try {
|
||||
} catch (JsonAppMissingKeysException $e) {
|
||||
$seafile_data = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -23,7 +25,7 @@ $client_platform = $seafile_data['devices']['platform'];
|
||||
$group_data = $seafile_data['groups'];
|
||||
$sysinfo_data = $seafile_data['sysinfo'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('enabled', 'GAUGE', 0)
|
||||
->addDataset('libraries', 'GAUGE', 0)
|
||||
@ -31,31 +33,30 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('size_consumption', 'GAUGE', 0);
|
||||
$category = 'acc';
|
||||
|
||||
$metrics = array();
|
||||
# handling accounts
|
||||
$metrics = [];
|
||||
// handling accounts
|
||||
foreach ($account_data as $data) {
|
||||
$owner_name = str_replace(' ', '_', $data['owner']);
|
||||
$enabled = $data['is_active'] ? 1: 0;
|
||||
$enabled = $data['is_active'] ? 1 : 0;
|
||||
$libraries = $data['repos'];
|
||||
$trashed_libraries = $data['trash_repos'];
|
||||
$size_consumption = $data['usage'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $category, $owner_name);
|
||||
$rrd_name = ['app', $name, $app_id, $category, $owner_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'enabled' => $enabled,
|
||||
'libraries' => $libraries,
|
||||
'trashed_libraries' => $trashed_libraries,
|
||||
'size_consumption' => $size_consumption
|
||||
);
|
||||
'size_consumption' => $size_consumption,
|
||||
];
|
||||
|
||||
$metrics[$owner_name.'_'.$category] = $fields;
|
||||
$tags = array('name' => $owner_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$metrics[$owner_name . '_' . $category] = $fields;
|
||||
$tags = ['name' => $owner_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
|
||||
|
||||
# handling groups
|
||||
// handling groups
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('count', 'GAUGE', 0);
|
||||
$category = 'grp';
|
||||
@ -63,18 +64,17 @@ $category = 'grp';
|
||||
$group_name = 'groups';
|
||||
$group_count = $group_data['count'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $category, $group_name);
|
||||
$rrd_name = ['app', $name, $app_id, $category, $group_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'count' => $group_count,
|
||||
);
|
||||
];
|
||||
|
||||
$metrics[$group_name.'_'.$category] = $fields;
|
||||
$tags = array('name' => $group_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$metrics[$group_name . '_' . $category] = $fields;
|
||||
$tags = ['name' => $group_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
|
||||
# handling client version
|
||||
// handling client version
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('version', 'GAUGE', 0);
|
||||
$category = 'cltver';
|
||||
@ -83,19 +83,18 @@ foreach ($client_version as $data) {
|
||||
$version_name = $data['client_version'];
|
||||
$version_count = $data['clients'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $category, $version_name);
|
||||
$rrd_name = ['app', $name, $app_id, $category, $version_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'version' => $version_count,
|
||||
);
|
||||
];
|
||||
|
||||
$metrics[$version_name.'_'.$category] = $fields;
|
||||
$tags = array('name' => $version_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$metrics[$version_name . '_' . $category] = $fields;
|
||||
$tags = ['name' => $version_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
|
||||
|
||||
# handling client platform
|
||||
// handling client platform
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('platform', 'GAUGE', 0);
|
||||
$category = 'cltos';
|
||||
@ -104,19 +103,18 @@ foreach ($client_platform as $data) {
|
||||
$os_name = $data['os_name'];
|
||||
$os_count = $data['clients'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $category, $os_name);
|
||||
$rrd_name = ['app', $name, $app_id, $category, $os_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'platform' => $os_count,
|
||||
);
|
||||
];
|
||||
|
||||
$metrics[$os_name.'_'.$category] = $fields;
|
||||
$tags = array('name' => $os_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$metrics[$os_name . '_' . $category] = $fields;
|
||||
$tags = ['name' => $os_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
}
|
||||
|
||||
|
||||
# handling sysinfo
|
||||
// handling sysinfo
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('connected', 'GAUGE', 0);
|
||||
$category = 'sysinfo';
|
||||
@ -124,14 +122,14 @@ $category = 'sysinfo';
|
||||
$sysinfo_name = 'devices';
|
||||
$sysinfo_connected_devices = $sysinfo_data['current_connected_devices_count'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $category, $sysinfo_name);
|
||||
$rrd_name = ['app', $name, $app_id, $category, $sysinfo_name];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'connected' => $sysinfo_connected_devices,
|
||||
);
|
||||
];
|
||||
|
||||
$metrics[$sysinfo_name.'_'.$category] = $fields;
|
||||
$tags = array('name' => $sysinfo_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$metrics[$sysinfo_name . '_' . $category] = $fields;
|
||||
$tags = ['name' => $sysinfo_name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
update_application($app, $output, $metrics);
|
||||
|
@ -8,22 +8,22 @@ $name = 'shoutcast';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.9.115.104.111.117.116.99.97.115.116';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.9.115.104.111.117.116.99.97.115.116';
|
||||
$shoutcast = snmp_get($device, $oid, $options);
|
||||
|
||||
echo ' shoutcast';
|
||||
|
||||
$servers = explode("\n", $shoutcast);
|
||||
|
||||
$metrics = array();
|
||||
$metrics = [];
|
||||
foreach ($servers as $item => $server) {
|
||||
$server = trim($server);
|
||||
|
||||
if (!empty($server)) {
|
||||
if (! empty($server)) {
|
||||
$data = explode(';', $server);
|
||||
list($host, $port) = explode(':', $data['0'], 2);
|
||||
[$host, $port] = explode(':', $data['0'], 2);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $host . '_' . $port);
|
||||
$rrd_name = ['app', $name, $app_id, $host . '_' . $port];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('bitrate', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('traf_in', 'GAUGE', 0, 125000000000)
|
||||
@ -34,7 +34,7 @@ foreach ($servers as $item => $server) {
|
||||
->addDataset('max', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('unique', 'GAUGE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'bitrate' => $data['1'],
|
||||
'traf_in' => $data['2'],
|
||||
'traf_out' => $data['3'],
|
||||
@ -43,7 +43,7 @@ foreach ($servers as $item => $server) {
|
||||
'peak' => $data['6'],
|
||||
'max' => $data['7'],
|
||||
'unique' => $data['8'],
|
||||
);
|
||||
];
|
||||
$metrics[$server] = $fields;
|
||||
|
||||
$tags = compact('name', 'app_id', 'host', 'port', 'rrd_name', 'rrd_def');
|
||||
|
@ -2,18 +2,18 @@
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
echo('SMART');
|
||||
echo 'SMART';
|
||||
|
||||
$name = 'smart';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.5.115.109.97.114.116';
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.5.115.109.97.114.116';
|
||||
$output = snmp_walk($device, $oid, $options);
|
||||
|
||||
$lines = explode("\n", $output);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('id5', 'GAUGE', 0)
|
||||
->addDataset('id10', 'GAUGE', 0)
|
||||
@ -40,14 +40,14 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('conveyance', 'GAUGE', 0)
|
||||
->addDataset('selective', 'GAUGE', 0);
|
||||
|
||||
$int=0;
|
||||
$metrics = array();
|
||||
$int = 0;
|
||||
$metrics = [];
|
||||
while (isset($lines[$int])) {
|
||||
list($disk, $id5, $id10, $id173, $id177, $id183, $id184, $id187, $id188, $id190, $id194,
|
||||
[$disk, $id5, $id10, $id173, $id177, $id183, $id184, $id187, $id188, $id190, $id194,
|
||||
$id196, $id197, $id198, $id199, $id231, $id233, $completed, $interrupted, $read_failure,
|
||||
$unknown_failure, $extended, $short, $conveyance, $selective)=explode(",", $lines[$int]);
|
||||
$unknown_failure, $extended, $short, $conveyance, $selective] = explode(",", $lines[$int]);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id, $disk);
|
||||
$rrd_name = ['app', $name, $app_id, $disk];
|
||||
|
||||
$fields = [
|
||||
'id5' => is_numeric($id5) ? $id5 : null,
|
||||
@ -73,32 +73,31 @@ while (isset($lines[$int])) {
|
||||
'extended' => is_numeric($extended) ? $extended : null,
|
||||
'short' => is_numeric($short) ? $short : null,
|
||||
'conveyance' => is_numeric($conveyance) ? $conveyance : null,
|
||||
'selective' => is_numeric($selective) ? $selective : null
|
||||
'selective' => is_numeric($selective) ? $selective : null,
|
||||
];
|
||||
|
||||
$metrics[$disk] = $fields;
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
$int++;
|
||||
}
|
||||
|
||||
|
||||
# smart enhancement id9
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
// smart enhancement id9
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('id9', 'GAUGE', 0);
|
||||
|
||||
$int=0;
|
||||
$int = 0;
|
||||
while (isset($lines[$int])) {
|
||||
list($disk, , , , , , , , , , , , , , , , , , , , , , , , , $id9)=explode(",", $lines[$int]);
|
||||
[$disk, , , , , , , , , , , , , , , , , , , , , , , , , $id9] = explode(",", $lines[$int]);
|
||||
|
||||
$rrd_name = array('app', $name.'_id9', $app_id, $disk);
|
||||
$rrd_name = ['app', $name . '_id9', $app_id, $disk];
|
||||
|
||||
$fields = ['id9' => $id9];
|
||||
$metrics[$disk]['id9'] = $id9;
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
$int++;
|
||||
|
@ -5,7 +5,7 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
$name = 'squid';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
$oids=array(
|
||||
$oids = [
|
||||
'.1.3.6.1.4.1.3495.1.2.5.1.0',
|
||||
'.1.3.6.1.4.1.3495.1.2.5.2.0',
|
||||
'.1.3.6.1.4.1.3495.1.2.5.3.0',
|
||||
@ -43,9 +43,9 @@ $oids=array(
|
||||
'.1.3.6.1.4.1.3495.1.3.2.2.1.9.60',
|
||||
'.1.3.6.1.4.1.3495.1.3.2.2.1.10.1',
|
||||
'.1.3.6.1.4.1.3495.1.3.2.2.1.10.5',
|
||||
'.1.3.6.1.4.1.3495.1.3.2.2.1.10.60'
|
||||
);
|
||||
$returnedoids=snmp_get_multi_oid($device, $oids);
|
||||
'.1.3.6.1.4.1.3495.1.3.2.2.1.10.60',
|
||||
];
|
||||
$returnedoids = snmp_get_multi_oid($device, $oids);
|
||||
|
||||
$memmaxsize = $returnedoids['.1.3.6.1.4.1.3495.1.2.5.1.0'];
|
||||
$swapmaxsize = $returnedoids['.1.3.6.1.4.1.3495.1.2.5.2.0'];
|
||||
@ -86,7 +86,7 @@ $requestbyteratio1 = $returnedoids['.1.3.6.1.4.1.3495.1.3.2.2.1.10.1'];
|
||||
$requestbyteratio5 = $returnedoids['.1.3.6.1.4.1.3495.1.3.2.2.1.10.5'];
|
||||
$requestbyteratio60 = $returnedoids['.1.3.6.1.4.1.3495.1.3.2.2.1.10.60'];
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('memmaxsize', 'GAUGE', 0)
|
||||
@ -127,12 +127,12 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('reqbyteratio5', 'GAUGE', 0)
|
||||
->addDataset('reqbyteratio60', 'GAUGE', 0);
|
||||
|
||||
$memmaxsize=$memmaxsize*1000;
|
||||
$swapmaxsize=$swapmaxsize*1000;
|
||||
$swaphighwm=$swaphighwm*1000;
|
||||
$swaplowwm=$swaplowwm*1000;
|
||||
$memmaxsize = $memmaxsize * 1000;
|
||||
$swapmaxsize = $swapmaxsize * 1000;
|
||||
$swaphighwm = $swaphighwm * 1000;
|
||||
$swaplowwm = $swaplowwm * 1000;
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
"memmaxsize" => $memmaxsize,
|
||||
"swapmaxsize" => $swapmaxsize,
|
||||
"swaphighwm" => $swaphighwm,
|
||||
@ -170,9 +170,9 @@ $fields = array(
|
||||
"reqbyteratio1" => $requestbyteratio1,
|
||||
"reqbyteratio5" => $requestbyteratio5,
|
||||
"reqbyteratio60" => $requestbyteratio60,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
$tags = ['name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
$squid_app_status = ($returnedoids == false) ? false : 'Data ok';
|
||||
|
@ -28,9 +28,9 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'tinydns';
|
||||
$app_id = $app['app_id'];
|
||||
if (!empty($agent_data['app'][$name]) && $app_id > 0) {
|
||||
if (! empty($agent_data['app'][$name]) && $app_id > 0) {
|
||||
echo ' tinydns';
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('a', 'COUNTER', 0, 125000000000)
|
||||
->addDataset('ns', 'COUNTER', 0, 125000000000)
|
||||
@ -53,12 +53,12 @@ if (!empty($agent_data['app'][$name]) && $app_id > 0) {
|
||||
->addDataset('badclass', 'COUNTER', 0, 125000000000)
|
||||
->addDataset('noquery', 'COUNTER', 0, 125000000000);
|
||||
|
||||
list(
|
||||
[
|
||||
$a, $ns, $cname, $soa, $ptr, $hinfo, $mx, $txt, $rp, $sig, $key, $aaaa, $axfr, $any,
|
||||
$total, $other, $notauth, $notimpl, $badclass, $noquery
|
||||
) = explode(':', $agent_data['app'][$name]);
|
||||
] = explode(':', $agent_data['app'][$name]);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'a' => $a,
|
||||
'ns' => $ns,
|
||||
'cname' => $cname,
|
||||
@ -78,8 +78,8 @@ if (!empty($agent_data['app'][$name]) && $app_id > 0) {
|
||||
'notauth' => $notauth,
|
||||
'notimpl' => $notimpl,
|
||||
'badclass' => $badclass,
|
||||
'noquery' => $noquery
|
||||
);
|
||||
'noquery' => $noquery,
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -4,23 +4,23 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'unbound';
|
||||
$app_id = $app['app_id'];
|
||||
if (!empty($agent_data['app'][$name])) {
|
||||
if (! empty($agent_data['app'][$name])) {
|
||||
$rawdata = $agent_data['app'][$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.7.117.110.98.111.117.110.100';
|
||||
$rawdata = snmp_get($device, $oid, $options);
|
||||
$oid = '.1.3.6.1.4.1.8072.1.3.2.3.1.2.7.117.110.98.111.117.110.100';
|
||||
$rawdata = snmp_get($device, $oid, $options);
|
||||
}
|
||||
#Format Data
|
||||
//Format Data
|
||||
$lines = explode("\n", $rawdata);
|
||||
$unbound = array();
|
||||
$metrics = array();
|
||||
$unbound = [];
|
||||
$metrics = [];
|
||||
foreach ($lines as $line) {
|
||||
list($var,$value) = explode('=', $line);
|
||||
[$var,$value] = explode('=', $line);
|
||||
$unbound[$var] = $value;
|
||||
}
|
||||
#Unbound Queries
|
||||
$rrd_name = array('app', $name,'queries',$app_id);
|
||||
//Unbound Queries
|
||||
$rrd_name = ['app', $name, 'queries', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('type0', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('A', 'DERIVE', 0, 125000000000)
|
||||
@ -40,7 +40,7 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('SPF', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('ANY', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('other', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'type0' => $unbound['num.query.type.TYPE0'],
|
||||
'a' => $unbound['num.query.type.A'],
|
||||
'ns' => $unbound['num.query.type.NS'],
|
||||
@ -58,66 +58,66 @@ $fields = array (
|
||||
'dnskey' => $unbound['num.query.type.DNSKEY'],
|
||||
'spf' => $unbound['num.query.type.SPF'],
|
||||
'any' => $unbound['num.query.type.ANY'],
|
||||
'other' => $unbound['num.query.type.other']
|
||||
);
|
||||
'other' => $unbound['num.query.type.other'],
|
||||
];
|
||||
$metrics['queries'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
#Unbound Cache
|
||||
$rrd_name = array('app', $name,'cache',$app_id);
|
||||
//Unbound Cache
|
||||
$rrd_name = ['app', $name, 'cache', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('queries', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('hits', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('misses', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'queries' => $unbound['total.num.queries'],
|
||||
'hits' => $unbound['total.num.cachehits'],
|
||||
'misses' => $unbound['total.num.cachemiss']
|
||||
);
|
||||
'misses' => $unbound['total.num.cachemiss'],
|
||||
];
|
||||
$metrics['cache'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
#Unbound Operations - Total opcodes and three valuable return codes
|
||||
$rrd_name = array('app', $name,'operations',$app_id);
|
||||
//Unbound Operations - Total opcodes and three valuable return codes
|
||||
$rrd_name = ['app', $name, 'operations', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('opcodeQuery', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('rcodeNOERROR', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('rcodeNXDOMAIN', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('rcodeNodata', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'opcodeQuery' => $unbound['num.query.opcode.QUERY'],
|
||||
'rcodeNOERROR' => $unbound['num.answer.rcode.NOERROR'],
|
||||
'rcodeNXDOMAIN' => $unbound['num.answer.rcode.NXDOMAIN'],
|
||||
'rcodeNodata' => $unbound['num.answer.rcode.nodata']
|
||||
);
|
||||
'rcodeNodata' => $unbound['num.answer.rcode.nodata'],
|
||||
];
|
||||
$metrics['operations'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#Unbound requestlist
|
||||
$rrd_name = array('app', $name,'requestlist',$app_id);
|
||||
|
||||
//Unbound requestlist
|
||||
$rrd_name = ['app', $name, 'requestlist', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('max', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('overwritten', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('exceeded', 'DERIVE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'max' => $unbound['total.requestlist.max'],
|
||||
'overwritten' => $unbound['total.requestlist.overwritten'],
|
||||
'exceeded' => $unbound['total.requestlist.exceeded']
|
||||
);
|
||||
'exceeded' => $unbound['total.requestlist.exceeded'],
|
||||
];
|
||||
$metrics['requestlist'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
||||
#Unbound recursiontime
|
||||
$rrd_name = array('app', $name,'recursiontime',$app_id);
|
||||
//Unbound recursiontime
|
||||
$rrd_name = ['app', $name, 'recursiontime', $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('avg', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('median', 'GAUGE', 0, 125000000000);
|
||||
$fields = array (
|
||||
$fields = [
|
||||
'avg' => $unbound['total.recursion.time.avg'],
|
||||
'median' => $unbound['total.recursion.time.median']
|
||||
);
|
||||
'median' => $unbound['total.recursion.time.median'],
|
||||
];
|
||||
$metrics['recursiontime'] = $fields;
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -19,42 +19,43 @@
|
||||
* @author Cercel Valentin <crc@nuamchefazi.ro>
|
||||
*/
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppParsingFailedException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
//NET-SNMP-EXTEND-MIB::nsExtendOutputFull."ups-apcups"
|
||||
$name = 'ups-apcups';
|
||||
$app_id = $app['app_id'];
|
||||
|
||||
echo ' '.$name;
|
||||
echo ' ' . $name;
|
||||
|
||||
try {
|
||||
$json_return=json_app_get($device, $name);
|
||||
$json_return = json_app_get($device, $name);
|
||||
} catch (JsonAppParsingFailedException $e) {
|
||||
// Legacy script, build compatible array
|
||||
$legacy = trim($e->getOutput());
|
||||
|
||||
// pull apart the legacy info and create the basic required hash with it
|
||||
list ($line_volt, $load, $charge, $remaining, $bat_volt, $line_nominal, $bat_nominal) = explode("\n", $legacy);
|
||||
$json_return=array(
|
||||
'data' => array(
|
||||
[$line_volt, $load, $charge, $remaining, $bat_volt, $line_nominal, $bat_nominal] = explode("\n", $legacy);
|
||||
$json_return = [
|
||||
'data' => [
|
||||
'charge' => $charge,
|
||||
'time_remaining' => $remaining,
|
||||
'battery_nominal' => $bat_nominal,
|
||||
'battery_voltage' => $bat_volt,
|
||||
'input_voltage' => $line_volt,
|
||||
'nominal_voltage' => $line_nominal,
|
||||
'load' => $load
|
||||
)
|
||||
);
|
||||
'load' => $load,
|
||||
],
|
||||
];
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('charge', 'GAUGE', 0, 100)
|
||||
->addDataset('time_remaining', 'GAUGE', 0)
|
||||
@ -64,15 +65,15 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('nominal_voltage', 'GAUGE', 0)
|
||||
->addDataset('load', 'GAUGE', 0, 100);
|
||||
|
||||
$fields = array(
|
||||
'charge' => $json_return['data']['charge'],
|
||||
'time_remaining' => $json_return['data']['time_remaining'],
|
||||
'battery_nominal' => $json_return['data']['battery_nominal'],
|
||||
'battery_voltage' => $json_return['data']['battery_voltage'],
|
||||
'input_voltage' => $json_return['data']['input_voltage'],
|
||||
'nominal_voltage' => $json_return['data']['nominal_voltage'],
|
||||
'load' => $json_return['data']['load'],
|
||||
);
|
||||
$fields = [
|
||||
'charge' => $json_return['data']['charge'],
|
||||
'time_remaining' => $json_return['data']['time_remaining'],
|
||||
'battery_nominal' => $json_return['data']['battery_nominal'],
|
||||
'battery_voltage' => $json_return['data']['battery_voltage'],
|
||||
'input_voltage' => $json_return['data']['input_voltage'],
|
||||
'nominal_voltage' => $json_return['data']['nominal_voltage'],
|
||||
'load' => $json_return['data']['load'],
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'app', $tags, $fields);
|
||||
|
@ -33,17 +33,17 @@ $ups_nut = snmp_get($device, $oid, '-Oqv');
|
||||
|
||||
// If "extend" (used above) fails, try "exec" support.
|
||||
// Note, exec always splits outputs on newline, so need to use snmp_walk (not a single SNMP entry!)
|
||||
if (!$ups_nut) {
|
||||
if (! $ups_nut) {
|
||||
// Data is in an array, due to how "exec" works with ups-nut.sh output, so snmp_walk to retrieve it
|
||||
$oid = '.1.3.6.1.4.1.2021.7890.2.101';
|
||||
$ups_nut=snmp_walk($device, $oid, '-Oqv');
|
||||
$ups_nut = snmp_walk($device, $oid, '-Oqv');
|
||||
}
|
||||
//print_r(array_values(explode("\n", $ups_nut)));
|
||||
|
||||
echo ' '.$name;
|
||||
echo ' ' . $name;
|
||||
|
||||
// (2020-05-13, Jon.W) Added ups status data and updated ups-nut.sh script.
|
||||
list (
|
||||
[
|
||||
$charge,
|
||||
$battery_low,
|
||||
$remaining,
|
||||
@ -66,9 +66,9 @@ list (
|
||||
$UPSUPSBuck,
|
||||
$UPSUPSBoost,
|
||||
$UPSForcedShutdown
|
||||
) = explode("\n", $ups_nut);
|
||||
] = explode("\n", $ups_nut);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('charge', 'GAUGE', 0, 100)
|
||||
->addDataset('battery_low', 'GAUGE', 0, 100)
|
||||
@ -79,37 +79,37 @@ $rrd_def = RrdDefinition::make()
|
||||
->addDataset('input_voltage', 'GAUGE', 0)
|
||||
->addDataset('load', 'GAUGE', 0, 100);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'charge' => $charge,
|
||||
'battery_low' => $battery_low,
|
||||
'time_remaining' => $remaining/60,
|
||||
'time_remaining' => $remaining / 60,
|
||||
'battery_voltage' => $bat_volt,
|
||||
'battery_nominal' => $bat_nom,
|
||||
'line_nominal' => $line_nom,
|
||||
'input_voltage' => $input_volt,
|
||||
'load' => $load
|
||||
);
|
||||
'load' => $load,
|
||||
];
|
||||
|
||||
$sensors = [
|
||||
['state_name' => 'UPSOnLine' , 'value' => $UPSOnLine],
|
||||
['state_name' => 'UPSOnBattery' , 'value' => $UPSOnBattery],
|
||||
['state_name' => 'UPSLowBattery' , 'value' => $UPSLowBattery],
|
||||
['state_name' => 'UPSHighBattery' , 'value' => $UPSHighBattery],
|
||||
['state_name' => 'UPSBatteryReplace' , 'value' => $UPSBatteryReplace],
|
||||
['state_name' => 'UPSBatteryCharging' , 'value' => $UPSBatteryCharging],
|
||||
['state_name' => 'UPSOnLine', 'value' => $UPSOnLine],
|
||||
['state_name' => 'UPSOnBattery', 'value' => $UPSOnBattery],
|
||||
['state_name' => 'UPSLowBattery', 'value' => $UPSLowBattery],
|
||||
['state_name' => 'UPSHighBattery', 'value' => $UPSHighBattery],
|
||||
['state_name' => 'UPSBatteryReplace', 'value' => $UPSBatteryReplace],
|
||||
['state_name' => 'UPSBatteryCharging', 'value' => $UPSBatteryCharging],
|
||||
['state_name' => 'UPSBatteryDischarging', 'value' => $UPSBatteryDischarging],
|
||||
['state_name' => 'UPSUPSBypass' , 'value' => $UPSUPSBypass],
|
||||
['state_name' => 'UPSUPSBypass', 'value' => $UPSUPSBypass],
|
||||
['state_name' => 'UPSRuntimeCalibration', 'value' => $UPSRuntimeCalibration],
|
||||
['state_name' => 'UPSOffline' , 'value' => $UPSOffline],
|
||||
['state_name' => 'UPSUPSOverloaded' , 'value' => $UPSUPSOverloaded],
|
||||
['state_name' => 'UPSUPSBuck' , 'value' => $UPSUPSBuck],
|
||||
['state_name' => 'UPSUPSBoost' , 'value' => $UPSUPSBoost],
|
||||
['state_name' => 'UPSForcedShutdown' , 'value' => $UPSForcedShutdown]
|
||||
['state_name' => 'UPSOffline', 'value' => $UPSOffline],
|
||||
['state_name' => 'UPSUPSOverloaded', 'value' => $UPSUPSOverloaded],
|
||||
['state_name' => 'UPSUPSBuck', 'value' => $UPSUPSBuck],
|
||||
['state_name' => 'UPSUPSBoost', 'value' => $UPSUPSBoost],
|
||||
['state_name' => 'UPSForcedShutdown', 'value' => $UPSForcedShutdown],
|
||||
];
|
||||
|
||||
foreach ($sensors as $index => $sensor) {
|
||||
$rrd_def->addDataset($sensor['state_name'], 'GAUGE', 0);
|
||||
$fields[$sensor['state_name']]= $sensor['value'];
|
||||
$fields[$sensor['state_name']] = $sensor['value'];
|
||||
}
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
|
@ -7,7 +7,7 @@ $app_id = $app['app_id'];
|
||||
|
||||
echo "$name, app_id=$app_id ";
|
||||
|
||||
if (!empty($agent_data[$name])) {
|
||||
if (! empty($agent_data[$name])) {
|
||||
$rawdata = $agent_data[$name];
|
||||
} else {
|
||||
$options = '-Oqv';
|
||||
@ -17,30 +17,30 @@ if (!empty($agent_data[$name])) {
|
||||
$rawdata = snmp_get($device, $oid, $options, $mib);
|
||||
}
|
||||
|
||||
# Format Data
|
||||
// Format Data
|
||||
$lines = explode("\n", $rawdata);
|
||||
|
||||
$voip = array();
|
||||
$voip = [];
|
||||
|
||||
foreach ($lines as $line) {
|
||||
list($var,$value) = explode('=', $line);
|
||||
[$var,$value] = explode('=', $line);
|
||||
$voip[$var] = $value;
|
||||
}
|
||||
|
||||
unset($lines);
|
||||
|
||||
$rrd_name = array('app', $name, $app_id);
|
||||
$rrd_name = ['app', $name, $app_id];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('cpu', 'GAUGE', 0, 100)
|
||||
->addDataset('kbyte', 'GAUGE', 0, 125000000000)
|
||||
->addDataset('openfiles', 'GAUGE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
'cpu' => (float)$voip['CPU Load'],
|
||||
'kbyte' => (int)$voip['Used Memory'],
|
||||
'openfiles' => (int)$voip['Open files']
|
||||
);
|
||||
$fields = [
|
||||
'cpu' => (float) $voip['CPU Load'],
|
||||
'kbyte' => (int) $voip['Used Memory'],
|
||||
'openfiles' => (int) $voip['Open files'],
|
||||
];
|
||||
|
||||
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\Exceptions\JsonAppException;
|
||||
use LibreNMS\Exceptions\JsonAppMissingKeysException;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$name = 'zfs';
|
||||
@ -10,7 +10,7 @@ $app_id = $app['app_id'];
|
||||
echo $name;
|
||||
|
||||
// Is set to false later if missing keys are found.
|
||||
$not_legacy=1;
|
||||
$not_legacy = 1;
|
||||
|
||||
try {
|
||||
$zfs = json_app_get($device, $name, 1)['data'];
|
||||
@ -18,8 +18,9 @@ try {
|
||||
//old version with out the data key
|
||||
$zfs = $e->getParsedJson();
|
||||
} catch (JsonAppException $e) {
|
||||
echo PHP_EOL . $name . ':' .$e->getCode().':'. $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode().':'.$e->getMessage(), []); // Set empty metrics and error message
|
||||
echo PHP_EOL . $name . ':' . $e->getCode() . ':' . $e->getMessage() . PHP_EOL;
|
||||
update_application($app, $e->getCode() . ':' . $e->getMessage(), []); // Set empty metrics and error message
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -180,22 +181,22 @@ foreach ($zfs['pools'] as $pool) {
|
||||
//
|
||||
// component processing for ZFS
|
||||
//
|
||||
$device_id=$device['device_id'];
|
||||
$options= [
|
||||
$device_id = $device['device_id'];
|
||||
$options = [
|
||||
'filter' => [
|
||||
'device_id' => ['=', $device_id],
|
||||
'type' => ['=', 'zfs'],
|
||||
],
|
||||
];
|
||||
|
||||
$component=new LibreNMS\Component();
|
||||
$components=$component->getComponents($device_id, $options);
|
||||
$component = new LibreNMS\Component();
|
||||
$components = $component->getComponents($device_id, $options);
|
||||
|
||||
// if no pools, delete zfs components
|
||||
if (empty($pools)) {
|
||||
if (isset($components[$device_id])) {
|
||||
foreach ($components[$device_id] as $component_id => $_unused) {
|
||||
$component->deleteComponent($component_id);
|
||||
$component->deleteComponent($component_id);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -7,27 +7,25 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
|
||||
// Build SNMP Cache Array
|
||||
// stuff about the controller
|
||||
$switch_info_oids = array(
|
||||
$switch_info_oids = [
|
||||
'wlsxSwitchRole',
|
||||
'wlsxSwitchMasterIp',
|
||||
);
|
||||
$switch_counter_oids = array(
|
||||
];
|
||||
$switch_counter_oids = [
|
||||
'wlsxSwitchTotalNumAccessPoints.0',
|
||||
'wlsxSwitchTotalNumStationsAssociated.0',
|
||||
);
|
||||
];
|
||||
|
||||
|
||||
$switch_apinfo_oids = array(
|
||||
$switch_apinfo_oids = [
|
||||
'wlsxWlanRadioEntry',
|
||||
'wlanAPChInterferenceIndex',
|
||||
);
|
||||
$switch_apname_oids = array('wlsxWlanRadioEntry.16');
|
||||
|
||||
];
|
||||
$switch_apname_oids = ['wlsxWlanRadioEntry.16'];
|
||||
|
||||
// initialize arrays to avoid overwriting them in foreach loops below
|
||||
$aruba_stats = array();
|
||||
$aruba_apstats = array();
|
||||
$aruba_apnames = array();
|
||||
$aruba_stats = [];
|
||||
$aruba_apstats = [];
|
||||
$aruba_apnames = [];
|
||||
|
||||
$aruba_oids = array_merge($switch_info_oids, $switch_counter_oids);
|
||||
echo 'Caching Oids: ';
|
||||
@ -46,7 +44,6 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
$aruba_apnames = snmpwalk_cache_numerical_oid($device, $oid, $aruba_apnames, 'WLSX-WLAN-MIB');
|
||||
}
|
||||
|
||||
|
||||
echo "\n";
|
||||
|
||||
$rrd_name = 'aruba-controller';
|
||||
@ -54,50 +51,48 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
->addDataset('NUMAPS', 'GAUGE', 0, 12500000000)
|
||||
->addDataset('NUMCLIENTS', 'GAUGE', 0, 12500000000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'NUMAPS' => $aruba_stats[0]['wlsxSwitchTotalNumAccessPoints'],
|
||||
'NUMCLIENTS' => $aruba_stats[0]['wlsxSwitchTotalNumStationsAssociated'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_name', 'rrd_def');
|
||||
data_update($device, 'aruba-controller', $tags, $fields);
|
||||
|
||||
|
||||
$ap_db = dbFetchRows('SELECT * FROM `access_points` WHERE `device_id` = ?', array($device['device_id']));
|
||||
|
||||
$ap_db = dbFetchRows('SELECT * FROM `access_points` WHERE `device_id` = ?', [$device['device_id']]);
|
||||
|
||||
foreach ($aruba_apnames as $key1 => $value1) {
|
||||
foreach ($value1 as $key => $value) {
|
||||
$radioid = str_replace('.1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.16.', '', $key);
|
||||
$name = $value;
|
||||
$type = $aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.2.$radioid"];
|
||||
$channel = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.3.$radioid"] + 0);
|
||||
$txpow = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.4.$radioid"] + 0)/2;
|
||||
$radioutil = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.6.$radioid"] + 0);
|
||||
$radioid = str_replace('.1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.16.', '', $key);
|
||||
$name = $value;
|
||||
$type = $aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.2.$radioid"];
|
||||
$channel = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.3.$radioid"] + 0);
|
||||
$txpow = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.4.$radioid"] + 0) / 2;
|
||||
$radioutil = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.6.$radioid"] + 0);
|
||||
$numasoclients = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.7.$radioid"] + 0);
|
||||
$nummonclients = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.8.$radioid"] + 0);
|
||||
$numactbssid = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.9.$radioid"] + 0);
|
||||
$nummonbssid = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.10.$radioid"] + 0);
|
||||
$interference = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.3.1.6.1.11.$radioid"] + 0);
|
||||
$numactbssid = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.9.$radioid"] + 0);
|
||||
$nummonbssid = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.2.1.5.1.10.$radioid"] + 0);
|
||||
$interference = ($aruba_apstats[$key1][".1.3.6.1.4.1.14823.2.2.1.5.3.1.6.1.11.$radioid"] + 0);
|
||||
|
||||
$radionum = substr($radioid, (strlen($radioid) - 1), 1);
|
||||
|
||||
d_echo($key.PHP_EOL);
|
||||
d_echo($value.PHP_EOL);
|
||||
d_echo('* radioid: '.$radioid.PHP_EOL);
|
||||
d_echo(' radionum: '.$radionum.PHP_EOL);
|
||||
d_echo(' name: '.$name.PHP_EOL);
|
||||
d_echo(' type: '.$type.PHP_EOL);
|
||||
d_echo(' channel: '.$channel.PHP_EOL);
|
||||
d_echo(' txpow: '.$txpow.PHP_EOL);
|
||||
d_echo(' radioutil: '.$radioutil.PHP_EOL);
|
||||
d_echo(' numasoclients: '.$numasoclients.PHP_EOL);
|
||||
d_echo(' interference: '.$interference.PHP_EOL);
|
||||
d_echo($key . PHP_EOL);
|
||||
d_echo($value . PHP_EOL);
|
||||
d_echo('* radioid: ' . $radioid . PHP_EOL);
|
||||
d_echo(' radionum: ' . $radionum . PHP_EOL);
|
||||
d_echo(' name: ' . $name . PHP_EOL);
|
||||
d_echo(' type: ' . $type . PHP_EOL);
|
||||
d_echo(' channel: ' . $channel . PHP_EOL);
|
||||
d_echo(' txpow: ' . $txpow . PHP_EOL);
|
||||
d_echo(' radioutil: ' . $radioutil . PHP_EOL);
|
||||
d_echo(' numasoclients: ' . $numasoclients . PHP_EOL);
|
||||
d_echo(' interference: ' . $interference . PHP_EOL);
|
||||
d_echo(PHP_EOL);
|
||||
|
||||
// if there is a numeric channel, assume the rest of the data is valid, I guess
|
||||
if (is_numeric($channel)) {
|
||||
$rrd_name = array('arubaap', $name.$radionum);
|
||||
$rrd_name = ['arubaap', $name . $radionum];
|
||||
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('channel', 'GAUGE', 0, 200)
|
||||
@ -108,7 +103,7 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
->addDataset('numasoclients', 'GAUGE', 0, 500)
|
||||
->addDataset('interference', 'GAUGE', 0, 2000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'channel' => $channel,
|
||||
'txpow' => $txpow,
|
||||
'radioutil' => $radioutil,
|
||||
@ -116,43 +111,40 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
'nummonbssid' => $nummonbssid,
|
||||
'numasoclients' => $numasoclients,
|
||||
'interference' => $interference,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array(
|
||||
$tags = [
|
||||
'name' => $name,
|
||||
'radionum' => $radionum,
|
||||
'rrd_name' => $rrd_name,
|
||||
'rrd_def' => $rrd_def
|
||||
);
|
||||
'rrd_def' => $rrd_def,
|
||||
];
|
||||
|
||||
data_update($device, 'aruba', $tags, $fields);
|
||||
}
|
||||
|
||||
// generate the mac address
|
||||
$macparts = explode('.', $radioid, -1);
|
||||
$mac = '';
|
||||
$mac = '';
|
||||
foreach ($macparts as $part) {
|
||||
$mac .= sprintf('%02x', $part).':';
|
||||
$mac .= sprintf('%02x', $part) . ':';
|
||||
}
|
||||
|
||||
$mac = rtrim($mac, ':');
|
||||
|
||||
|
||||
$foundid = 0;
|
||||
|
||||
for ($z = 0; $z < sizeof($ap_db); $z++) {
|
||||
if ($ap_db[$z]['name'] == $name && $ap_db[$z]['radio_number'] == $radionum) {
|
||||
$foundid = $ap_db[$z]['accesspoint_id'];
|
||||
$foundid = $ap_db[$z]['accesspoint_id'];
|
||||
$ap_db[$z]['seen'] = 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ($foundid == 0) {
|
||||
$ap_id = dbInsert(
|
||||
array(
|
||||
[
|
||||
'channel' => $channel,
|
||||
'deleted' => 0,
|
||||
'device_id' => $device['device_id'],
|
||||
@ -166,13 +158,13 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
'radio_number' => $radionum,
|
||||
'radioutil' => $radioutil,
|
||||
'txpow' => $txpow,
|
||||
'type' => $type
|
||||
),
|
||||
'type' => $type,
|
||||
],
|
||||
'access_points'
|
||||
);
|
||||
} else {
|
||||
dbUpdate(
|
||||
array(
|
||||
[
|
||||
'channel' => $channel,
|
||||
'deleted' => 0,
|
||||
'interference' => $interference,
|
||||
@ -185,11 +177,11 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
'radio_number' => $radionum,
|
||||
'radioutil' => $radioutil,
|
||||
'txpow' => $txpow,
|
||||
'type' => $type
|
||||
),
|
||||
'type' => $type,
|
||||
],
|
||||
'access_points',
|
||||
'`accesspoint_id` = ?',
|
||||
array($foundid)
|
||||
[$foundid]
|
||||
);
|
||||
}
|
||||
}//end foreach
|
||||
@ -197,8 +189,8 @@ if ($device['type'] == 'wireless' && $device['os'] == 'arubaos') {
|
||||
|
||||
// mark APs which are not on this controller anymore as deleted
|
||||
for ($z = 0; $z < sizeof($ap_db); $z++) {
|
||||
if (!isset($ap_db[$z]['seen']) && $ap_db[$z]['deleted'] == 0) {
|
||||
dbUpdate(array('deleted' => 1), 'access_points', '`accesspoint_id` = ?', array($ap_db[$z]['accesspoint_id']));
|
||||
if (! isset($ap_db[$z]['seen']) && $ap_db[$z]['deleted'] == 0) {
|
||||
dbUpdate(['deleted' => 1], 'access_points', '`accesspoint_id` = ?', [$ap_db[$z]['accesspoint_id']]);
|
||||
}
|
||||
}
|
||||
}//end if
|
||||
|
@ -5,40 +5,40 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$os->enableGraph('availability');
|
||||
|
||||
$col = dbFetchColumn('SELECT duration FROM availability WHERE device_id = ?', array($device['device_id']));
|
||||
$col = dbFetchColumn('SELECT duration FROM availability WHERE device_id = ?', [$device['device_id']]);
|
||||
foreach (Config::get('graphing.availability') as $duration) {
|
||||
if (!in_array($duration, $col)) {
|
||||
if (! in_array($duration, $col)) {
|
||||
$data = ['device_id' => $device['device_id'],
|
||||
'duration' => $duration];
|
||||
'duration' => $duration, ];
|
||||
dbInsert($data, 'availability');
|
||||
}
|
||||
}
|
||||
|
||||
echo 'Availability: ' . PHP_EOL;
|
||||
|
||||
foreach (dbFetchRows('SELECT * FROM availability WHERE device_id = ?', array($device['device_id'])) as $row) {
|
||||
foreach (dbFetchRows('SELECT * FROM availability WHERE device_id = ?', [$device['device_id']]) as $row) {
|
||||
//delete not more interested availabilities
|
||||
if (!in_array($row['duration'], Config::get('graphing.availability'))) {
|
||||
dbDelete('availability', 'availability_id=?', array($row['availability_id']));
|
||||
if (! in_array($row['duration'], Config::get('graphing.availability'))) {
|
||||
dbDelete('availability', 'availability_id=?', [$row['availability_id']]);
|
||||
continue;
|
||||
}
|
||||
|
||||
$avail = \LibreNMS\Device\Availability::availability($device, $row['duration']);
|
||||
$human_time = \LibreNMS\Util\Time::humanTime($row['duration']);
|
||||
|
||||
$rrd_name = array('availability', $row['duration']);
|
||||
$rrd_name = ['availability', $row['duration']];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('availability', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
'availability' => $avail,
|
||||
);
|
||||
$fields = [
|
||||
'availability' => $avail,
|
||||
];
|
||||
|
||||
$tags = array('name' => $row['duration'], 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
|
||||
data_update($device, 'availability', $tags, $fields);
|
||||
$tags = ['name' => $row['duration'], 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name];
|
||||
data_update($device, 'availability', $tags, $fields);
|
||||
|
||||
dbUpdate(array('availability_perc' => $avail), 'availability', '`availability_id` = ?', array($row['availability_id']));
|
||||
dbUpdate(['availability_perc' => $avail], 'availability', '`availability_id` = ?', [$row['availability_id']]);
|
||||
|
||||
echo $human_time . ' : ' . $avail . '%'. PHP_EOL;
|
||||
echo $human_time . ' : ' . $avail . '%' . PHP_EOL;
|
||||
}
|
||||
unset($duration);
|
||||
|
@ -6,19 +6,19 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
use LibreNMS\Util\IP;
|
||||
|
||||
if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$peers = dbFetchRows('SELECT * FROM `bgpPeers` AS B LEFT JOIN `vrfs` AS V ON `B`.`vrf_id` = `V`.`vrf_id` WHERE `B`.`device_id` = ?', array($device['device_id']));
|
||||
$peers = dbFetchRows('SELECT * FROM `bgpPeers` AS B LEFT JOIN `vrfs` AS V ON `B`.`vrf_id` = `V`.`vrf_id` WHERE `B`.`device_id` = ?', [$device['device_id']]);
|
||||
|
||||
if (!empty($peers)) {
|
||||
if (! empty($peers)) {
|
||||
if ($device['os'] == 'junos') {
|
||||
$peer_data_check = snmpwalk_cache_long_oid($device, 'jnxBgpM2PeerIndex', '.1.3.6.1.4.1.2636.5.1.1.2.1.1.1.14', $peer_data_tmp, 'BGP4-V2-MIB-JUNIPER', 'junos');
|
||||
} elseif ($device['os_group'] === 'arista') {
|
||||
$peer_data_check = snmpwalk_cache_oid($device, 'aristaBgp4V2PeerRemoteAs', array(), 'ARISTA-BGP4V2-MIB');
|
||||
$peer_data_check = snmpwalk_cache_oid($device, 'aristaBgp4V2PeerRemoteAs', [], 'ARISTA-BGP4V2-MIB');
|
||||
} elseif ($device['os'] === 'timos') {
|
||||
$peer_data_check = snmpwalk_cache_multi_oid($device, 'tBgpInstanceRowStatus', [], 'TIMETRA-BGP-MIB', 'nokia');
|
||||
} elseif ($device['os'] === 'vrp') {
|
||||
$peer_data_check = snmpwalk_cache_multi_oid($device, 'hwBgpPeerEntry', [], 'HUAWEI-BGP-VPN-MIB', 'huawei');
|
||||
} else {
|
||||
$peer_data_check = snmpwalk_cache_oid($device, 'cbgpPeer2RemoteAs', array(), 'CISCO-BGP4-MIB');
|
||||
$peer_data_check = snmpwalk_cache_oid($device, 'cbgpPeer2RemoteAs', [], 'CISCO-BGP4-MIB');
|
||||
}
|
||||
|
||||
foreach ($peers as $peer) {
|
||||
@ -35,7 +35,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
// --- Collect BGP data ---
|
||||
if (count($peer_data_check) > 0) {
|
||||
if ($device['os'] == 'junos') {
|
||||
if (!isset($junos)) {
|
||||
if (! isset($junos)) {
|
||||
echo "\nCaching Oids...";
|
||||
|
||||
foreach ($peer_data_check as $hash => $index) {
|
||||
@ -43,7 +43,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$exploded_ip = explode('.', $peer_ip_snmp);
|
||||
if (count($exploded_ip) > 11) {
|
||||
// ipv6
|
||||
$tmp_peer_ip = (string)IP::parse(snmp2ipv6($peer_ip_snmp), true);
|
||||
$tmp_peer_ip = (string) IP::parse(snmp2ipv6($peer_ip_snmp), true);
|
||||
} else {
|
||||
// ipv4
|
||||
$tmp_peer_ip = implode('.', array_slice($exploded_ip, -4));
|
||||
@ -53,7 +53,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($peer_data_tmp)) {
|
||||
if (! isset($peer_data_tmp)) {
|
||||
$peer_data_tmp = snmpwalk_cache_long_oid($device, 'jnxBgpM2PeerState', '.1.3.6.1.4.1.2636.5.1.1.2.1.1.1.2', $peer_data_tmp, 'BGP4-V2-MIB-JUNIPER', 'junos');
|
||||
$peer_data_tmp = snmpwalk_cache_long_oid($device, 'jnxBgpM2PeerStatus', '.1.3.6.1.4.1.2636.5.1.1.2.1.1.1.3', $peer_data_tmp, 'BGP4-V2-MIB-JUNIPER', 'junos');
|
||||
$peer_data_tmp = snmpwalk_cache_long_oid($device, 'jnxBgpM2PeerInUpdates', '.1.3.6.1.4.1.2636.5.1.1.2.6.1.1.1', $peer_data_tmp, 'BGP4-V2-MIB-JUNIPER', 'junos');
|
||||
@ -69,7 +69,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
d_echo($peer_data_tmp);
|
||||
}
|
||||
|
||||
$peer_hash = $junos[(string)$peer_ip]['hash'];
|
||||
$peer_hash = $junos[(string) $peer_ip]['hash'];
|
||||
$peer_data = [];
|
||||
$peer_data['bgpPeerState'] = $peer_data_tmp[$peer_hash]['jnxBgpM2PeerState'];
|
||||
$peer_data['bgpPeerAdminStatus'] = $peer_data_tmp[$peer_hash]['jnxBgpM2PeerStatus'];
|
||||
@ -92,7 +92,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
d_echo("State = {$peer_data['bgpPeerState']} - AdminStatus: {$peer_data['bgpPeerAdminStatus']}\n");
|
||||
} elseif ($device['os'] == 'vrp') {
|
||||
echo "\nCaching Oids VRP...";
|
||||
if (!isset($bgpPeers)) {
|
||||
if (! isset($bgpPeers)) {
|
||||
//if not available, we timeout each time, to be fixed when split
|
||||
$bgpPeersCache = snmpwalk_cache_oid($device, 'hwBgpPeerEntry', [], 'HUAWEI-BGP-VPN-MIB', 'huawei');
|
||||
$bgpPeersStats = snmpwalk_cache_oid($device, 'hwBgpPeerStatisticTable', [], 'HUAWEI-BGP-VPN-MIB', 'huawei', '-OQUbs');
|
||||
@ -107,7 +107,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
if (strlen($address) > 15) {
|
||||
$address = IP::fromHexString($address)->compressed();
|
||||
}
|
||||
if (!isset($bgpPeers[$address][$vrfInstance])) {
|
||||
if (! isset($bgpPeers[$address][$vrfInstance])) {
|
||||
$bgpPeers[$address][$vrfInstance] = [];
|
||||
}
|
||||
$bgpPeers[$address][$vrfInstance] = array_merge($bgpPeers[$address][$vrfInstance], $value);
|
||||
@ -128,10 +128,10 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
//d_echo($bgpPeersStats);
|
||||
}
|
||||
//d_echo($bgpPeers);
|
||||
$address = (string)$peer_ip;
|
||||
$address = (string) $peer_ip;
|
||||
$bgpPeer = $bgpPeers[$address];
|
||||
$peer_data = [];
|
||||
if (count(array_keys($bgpPeer))==1) { // We have only one vrf with a peer with this IP
|
||||
if (count(array_keys($bgpPeer)) == 1) { // We have only one vrf with a peer with this IP
|
||||
$vrfInstance = array_keys($bgpPeer)[0];
|
||||
$peer_data['bgpPeerState'] = $bgpPeers[$address][$vrfInstance]['hwBgpPeerState'];
|
||||
$peer_data['bgpPeerInUpdates'] = $bgpPeers[$address][$vrfInstance]['hwBgpPeerInUpdateMsgs'];
|
||||
@ -165,21 +165,21 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$peer_data['bgpPeerLastErrorSubCode'] = intval($error_data[1]);
|
||||
unset($peer_data['bgpPeerLastError']);
|
||||
} elseif ($device['os'] == 'timos') {
|
||||
if (!isset($bgpPeers)) {
|
||||
if (! isset($bgpPeers)) {
|
||||
echo "\nCaching Oids...";
|
||||
$bgpPeersCache = snmpwalk_cache_multi_oid($device, 'tBgpPeerNgTable', [], 'TIMETRA-BGP-MIB', 'nokia');
|
||||
$bgpPeersCache = snmpwalk_cache_multi_oid($device, 'tBgpPeerNgOperEntry', $bgpPeersCache, 'TIMETRA-BGP-MIB', 'nokia');
|
||||
foreach ($bgpPeersCache as $key => $value) {
|
||||
$oid = explode(".", $key);
|
||||
$vrfInstance = $oid[0];
|
||||
$address = str_replace($oid[0].".".$oid[1].".", '', $key);
|
||||
$address = str_replace($oid[0] . "." . $oid[1] . ".", '', $key);
|
||||
if (strlen($address) > 15) {
|
||||
$address = IP::fromHexString($address)->compressed();
|
||||
}
|
||||
$bgpPeers[$vrfInstance][$address] = $value;
|
||||
}
|
||||
}
|
||||
$address = (string)$peer_ip;
|
||||
$address = (string) $peer_ip;
|
||||
$tmpTime = $bgpPeers[$vrfOid][$address]['tBgpPeerNgLastChanged'];
|
||||
$tmpTime = explode(".", $tmpTime);
|
||||
$tmpTime = explode(":", $tmpTime[0]);
|
||||
@ -195,7 +195,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$peer_data['bgpPeerInTotalMessages'] = $bgpPeers[$vrfOid][$address]['tBgpPeerNgOperMsgOctetsRcvd']; // That are actually only octets available,
|
||||
$peer_data['bgpPeerOutTotalMessages'] = $bgpPeers[$vrfOid][$address]['tBgpPeerNgOperMsgOctetsSent']; // not messages
|
||||
$peer_data['bgpPeerFsmEstablishedTime'] = $establishedTime;
|
||||
// ToDo, It seems that bgpPeer(In|Out)Updates, bgpPeerInUpdateElapsedTime and bgpLocalAddr are actually not available over SNMP
|
||||
// ToDo, It seems that bgpPeer(In|Out)Updates, bgpPeerInUpdateElapsedTime and bgpLocalAddr are actually not available over SNMP
|
||||
} else {
|
||||
$bgp_peer_ident = $peer_ip->toSnmpIndex();
|
||||
$ip_ver = $peer_ip->getFamily();
|
||||
@ -224,7 +224,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
'aristaBgp4V2PeerLastErrorCodeReceived' => 'bgpPeerLastErrorCode',
|
||||
'aristaBgp4V2PeerLastErrorSubCodeReceived' => 'bgpPeerLastErrorSubCode',
|
||||
'aristaBgp4V2PeerLastErrorReceivedText' => 'bgpPeerLastErrorText',
|
||||
];
|
||||
];
|
||||
} else {
|
||||
$peer_identifier = $ip_type . '.' . $ip_len . '.' . $bgp_peer_ident;
|
||||
$mib = 'CISCO-BGP4-MIB';
|
||||
@ -270,7 +270,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$peer_data_raw = snmp_get_multi($device, $get_oids, '-OQUs', $mib);
|
||||
$peer_data_raw = reset($peer_data_raw); // get the first element of the array
|
||||
|
||||
$peer_data = array();
|
||||
$peer_data = [];
|
||||
|
||||
foreach ($oid_map as $source => $target) {
|
||||
$v = isset($peer_data_raw[$source]) ? $peer_data_raw[$source] : '';
|
||||
@ -302,23 +302,23 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
|
||||
// --- Send event log notices ---
|
||||
if ($peer_data['bgpPeerFsmEstablishedTime']) {
|
||||
if (!(is_array(\LibreNMS\Config::get('alerts.bgp.whitelist'))
|
||||
&& !in_array($peer['bgpPeerRemoteAs'], \LibreNMS\Config::get('alerts.bgp.whitelist')))
|
||||
if (! (is_array(\LibreNMS\Config::get('alerts.bgp.whitelist'))
|
||||
&& ! in_array($peer['bgpPeerRemoteAs'], \LibreNMS\Config::get('alerts.bgp.whitelist')))
|
||||
&& ($peer_data['bgpPeerFsmEstablishedTime'] < $peer['bgpPeerFsmEstablishedTime']
|
||||
|| $peer_data['bgpPeerState'] != $peer['bgpPeerState'])
|
||||
) {
|
||||
if ($peer['bgpPeerState'] == $peer_data['bgpPeerState']) {
|
||||
log_event('BGP Session Flap: ' . $peer['bgpPeerIdentifier'] . ' (AS' . $peer['bgpPeerRemoteAs'] . '), last error: '. describe_bgp_error_code($peer['bgpPeerLastErrorCode'], $peer['bgpPeerLastErrorSubCode']), $device, 'bgpPeer', 4, $peer_ip);
|
||||
log_event('BGP Session Flap: ' . $peer['bgpPeerIdentifier'] . ' (AS' . $peer['bgpPeerRemoteAs'] . '), last error: ' . describe_bgp_error_code($peer['bgpPeerLastErrorCode'], $peer['bgpPeerLastErrorSubCode']), $device, 'bgpPeer', 4, $peer_ip);
|
||||
} elseif ($peer_data['bgpPeerState'] == 'established') {
|
||||
log_event('BGP Session Up: ' . $peer['bgpPeerIdentifier'] . ' (AS' . $peer['bgpPeerRemoteAs'] . ')', $device, 'bgpPeer', 1, $peer_ip);
|
||||
} elseif ($peer['bgpPeerState'] == 'established') {
|
||||
log_event('BGP Session Down: ' . $peer['bgpPeerIdentifier'] . ' (AS' . $peer['bgpPeerRemoteAs'] . '), last error: '. describe_bgp_error_code($peer['bgpPeerLastErrorCode'], $peer['bgpPeerLastErrorSubCode']), $device, 'bgpPeer', 5, $peer_ip);
|
||||
log_event('BGP Session Down: ' . $peer['bgpPeerIdentifier'] . ' (AS' . $peer['bgpPeerRemoteAs'] . '), last error: ' . describe_bgp_error_code($peer['bgpPeerLastErrorCode'], $peer['bgpPeerLastErrorSubCode']), $device, 'bgpPeer', 5, $peer_ip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- Update rrd data ---
|
||||
$peer_rrd_name = safename('bgp-'.$peer['bgpPeerIdentifier']);
|
||||
$peer_rrd_name = safename('bgp-' . $peer['bgpPeerIdentifier']);
|
||||
$peer_rrd_def = RrdDefinition::make()
|
||||
->addDataset('bgpPeerOutUpdates', 'COUNTER', null, 100000000000)
|
||||
->addDataset('bgpPeerInUpdates', 'COUNTER', null, 100000000000)
|
||||
@ -341,7 +341,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$tags = [
|
||||
'bgpPeerIdentifier' => $peer['bgpPeerIdentifier'],
|
||||
'rrd_name' => $peer_rrd_name,
|
||||
'rrd_def' => $peer_rrd_def
|
||||
'rrd_def' => $peer_rrd_def,
|
||||
];
|
||||
data_update($device, 'bgp', $tags, $fields);
|
||||
|
||||
@ -351,18 +351,18 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
|
||||
if ($peer['update']) {
|
||||
if ($vrfId) {
|
||||
dbUpdate($peer['update'], 'bgpPeers', '`device_id` = ? AND `bgpPeerIdentifier` = ? AND `vrf_id` = ?', array($device['device_id'], $peer['bgpPeerIdentifier'], $vrfId));
|
||||
dbUpdate($peer['update'], 'bgpPeers', '`device_id` = ? AND `bgpPeerIdentifier` = ? AND `vrf_id` = ?', [$device['device_id'], $peer['bgpPeerIdentifier'], $vrfId]);
|
||||
} else {
|
||||
dbUpdate($peer['update'], 'bgpPeers', '`device_id` = ? AND `bgpPeerIdentifier` = ?', array($device['device_id'], $peer['bgpPeerIdentifier']));
|
||||
dbUpdate($peer['update'], 'bgpPeers', '`device_id` = ? AND `bgpPeerIdentifier` = ?', [$device['device_id'], $peer['bgpPeerIdentifier']]);
|
||||
}
|
||||
}
|
||||
|
||||
// --- Populate cbgp data ---
|
||||
if ($device['os_group'] == 'vrp' || $device['os_group'] == 'cisco' || $device['os'] == 'junos' || $device['os_group'] === 'arista') {
|
||||
// Poll each AFI/SAFI for this peer (using CISCO-BGP4-MIB or BGP4-V2-JUNIPER MIB)
|
||||
$peer_afis = dbFetchRows('SELECT * FROM bgpPeers_cbgp WHERE `device_id` = ? AND bgpPeerIdentifier = ?', array($device['device_id'], $peer['bgpPeerIdentifier']));
|
||||
$peer_afis = dbFetchRows('SELECT * FROM bgpPeers_cbgp WHERE `device_id` = ? AND bgpPeerIdentifier = ?', [$device['device_id'], $peer['bgpPeerIdentifier']]);
|
||||
foreach ($peer_afis as $peer_afi) {
|
||||
$afi = $peer_afi['afi'];
|
||||
$afi = $peer_afi['afi'];
|
||||
$safi = $peer_afi['safi'];
|
||||
d_echo("$afi $safi\n");
|
||||
|
||||
@ -372,10 +372,10 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$ip_ver = $peer_ip->getFamily();
|
||||
if ($ip_ver == 'ipv6') {
|
||||
$ip_type = 2;
|
||||
$ip_len = 16;
|
||||
$ip_len = 16;
|
||||
} else {
|
||||
$ip_type = 1;
|
||||
$ip_len = 4;
|
||||
$ip_len = 4;
|
||||
}
|
||||
|
||||
$ip_cast = 1;
|
||||
@ -387,10 +387,10 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
$ip_cast = 128;
|
||||
}
|
||||
|
||||
$check = snmp_get($device, 'cbgpPeer2AcceptedPrefixes.'.$ip_type.'.'.$ip_len.'.'.$bgp_peer_ident.'.'.$ip_type.'.'.$ip_cast, '', 'CISCO-BGP4-MIB');
|
||||
$check = snmp_get($device, 'cbgpPeer2AcceptedPrefixes.' . $ip_type . '.' . $ip_len . '.' . $bgp_peer_ident . '.' . $ip_type . '.' . $ip_cast, '', 'CISCO-BGP4-MIB');
|
||||
|
||||
if (!empty($check)) {
|
||||
$cgp_peer_identifier = $ip_type.'.'.$ip_len.'.'.$bgp_peer_ident.'.'.$ip_type.'.'.$ip_cast;
|
||||
if (! empty($check)) {
|
||||
$cgp_peer_identifier = $ip_type . '.' . $ip_len . '.' . $bgp_peer_ident . '.' . $ip_type . '.' . $ip_cast;
|
||||
$cbgp2_oids = [
|
||||
'cbgpPeer2AcceptedPrefixes.' . $cgp_peer_identifier,
|
||||
'cbgpPeer2DeniedPrefixes.' . $cgp_peer_identifier,
|
||||
@ -402,7 +402,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
'cbgpPeer2WithdrawnPrefixes.' . $cgp_peer_identifier,
|
||||
];
|
||||
$cbgp_data_tmp = snmp_get_multi($device, $cbgp2_oids, '-OQUs', 'CISCO-BGP4-MIB');
|
||||
$ident = "$ip_ver.\"".$peer['bgpPeerIdentifier'].'"'.'.'.$ip_type.'.'.$ip_cast;
|
||||
$ident = "$ip_ver.\"" . $peer['bgpPeerIdentifier'] . '"' . '.' . $ip_type . '.' . $ip_cast;
|
||||
|
||||
$key = key($cbgp_data_tmp); // get key of item
|
||||
$cbgp_data = [
|
||||
@ -444,37 +444,37 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
}//end if
|
||||
|
||||
if ($device['os'] == 'junos') {
|
||||
$afis['ipv4'] = 1;
|
||||
$afis['ipv6'] = 2;
|
||||
$afis['l2vpn'] = 25;
|
||||
$safis['unicast'] = 1;
|
||||
$safis['multicast'] = 2;
|
||||
$afis['ipv4'] = 1;
|
||||
$afis['ipv6'] = 2;
|
||||
$afis['l2vpn'] = 25;
|
||||
$safis['unicast'] = 1;
|
||||
$safis['multicast'] = 2;
|
||||
$safis['unicastAndMulticast'] = 3;
|
||||
$safis['labeledUnicast'] = 4;
|
||||
$safis['mvpn'] = 5;
|
||||
$safis['vpls'] = 65;
|
||||
$safis['evpn'] = 70;
|
||||
$safis['vpn'] = 128;
|
||||
$safis['rtfilter'] = 132;
|
||||
$safis['flow'] = 133;
|
||||
$safis['labeledUnicast'] = 4;
|
||||
$safis['mvpn'] = 5;
|
||||
$safis['vpls'] = 65;
|
||||
$safis['evpn'] = 70;
|
||||
$safis['vpn'] = 128;
|
||||
$safis['rtfilter'] = 132;
|
||||
$safis['flow'] = 133;
|
||||
|
||||
if (!isset($j_prefixes)) {
|
||||
if (! isset($j_prefixes)) {
|
||||
$j_prefixes = snmpwalk_cache_multi_oid($device, 'jnxBgpM2PrefixInPrefixesAccepted', $j_prefixes, 'BGP4-V2-MIB-JUNIPER', 'junos', '-OQnU');
|
||||
$j_prefixes = snmpwalk_cache_multi_oid($device, 'jnxBgpM2PrefixInPrefixesRejected', $j_prefixes, 'BGP4-V2-MIB-JUNIPER', 'junos', '-OQnU');
|
||||
$j_prefixes = snmpwalk_cache_multi_oid($device, 'jnxBgpM2PrefixOutPrefixes', $j_prefixes, 'BGP4-V2-MIB-JUNIPER', 'junos', '-OQnU');
|
||||
d_echo($j_prefixes);
|
||||
}
|
||||
|
||||
$cbgpPeerAcceptedPrefixes = array_shift($j_prefixes['1.3.6.1.4.1.2636.5.1.1.2.6.2.1.8.'.$junos[(string)$peer_ip]['index'].".$afis[$afi].".$safis[$safi]]);
|
||||
$cbgpPeerDeniedPrefixes = array_shift($j_prefixes['1.3.6.1.4.1.2636.5.1.1.2.6.2.1.9.'.$junos[(string)$peer_ip]['index'].".$afis[$afi].".$safis[$safi]]);
|
||||
$cbgpPeerAdvertisedPrefixes = array_shift($j_prefixes['1.3.6.1.4.1.2636.5.1.1.2.6.2.1.10.'.$junos[(string)$peer_ip]['index'].".$afis[$afi].".$safis[$safi]]);
|
||||
$cbgpPeerAcceptedPrefixes = array_shift($j_prefixes['1.3.6.1.4.1.2636.5.1.1.2.6.2.1.8.' . $junos[(string) $peer_ip]['index'] . ".$afis[$afi]." . $safis[$safi]]);
|
||||
$cbgpPeerDeniedPrefixes = array_shift($j_prefixes['1.3.6.1.4.1.2636.5.1.1.2.6.2.1.9.' . $junos[(string) $peer_ip]['index'] . ".$afis[$afi]." . $safis[$safi]]);
|
||||
$cbgpPeerAdvertisedPrefixes = array_shift($j_prefixes['1.3.6.1.4.1.2636.5.1.1.2.6.2.1.10.' . $junos[(string) $peer_ip]['index'] . ".$afis[$afi]." . $safis[$safi]]);
|
||||
}//end if
|
||||
|
||||
if ($device['os_group'] === 'arista') {
|
||||
$safis['unicast'] = 1;
|
||||
$safis['unicast'] = 1;
|
||||
$safis['multicast'] = 2;
|
||||
$afis['ipv4'] = 1;
|
||||
$afis['ipv6'] = 2;
|
||||
$afis['ipv4'] = 1;
|
||||
$afis['ipv6'] = 2;
|
||||
if (preg_match('/:/', $peer['bgpPeerIdentifier'])) {
|
||||
$tmp_peer = str_replace(':', '', $peer['bgpPeerIdentifier']);
|
||||
$tmp_peer = preg_replace('/([\w\d]{2})/', '\1:', $tmp_peer);
|
||||
@ -495,28 +495,28 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
|
||||
// only works in global routing table, as the vpnInstanceId is not available
|
||||
// for now in the VRF discovery of VRP devices
|
||||
$key4 = $vrfInstance.'.'.$afi.'.'.$safi.'.ipv4.'.$peer['bgpPeerIdentifier'];
|
||||
$key6 = $vrfInstance.'.'.$afi.'.'.$safi.'.ipv6.'.$peer['bgpPeerIdentifier'];
|
||||
$key4 = $vrfInstance . '.' . $afi . '.' . $safi . '.ipv4.' . $peer['bgpPeerIdentifier'];
|
||||
$key6 = $vrfInstance . '.' . $afi . '.' . $safi . '.ipv6.' . $peer['bgpPeerIdentifier'];
|
||||
|
||||
if (isset($vrpPrefixes[$key4])) {
|
||||
$cbgpPeerAcceptedPrefixes = $vrpPrefixes[$key4]['hwBgpPeerPrefixRcvCounter'];
|
||||
$cbgpPeerAdvertisedPrefixes = $vrpPrefixes[$key4]['hwBgpPeerPrefixAdvCounter'];
|
||||
$cbgpPeerAdvertisedPrefixes = $vrpPrefixes[$key4]['hwBgpPeerPrefixAdvCounter'];
|
||||
}
|
||||
if (isset($vrpPrefixes[$key6])) {
|
||||
$cbgpPeerAcceptedPrefixes = $vrpPrefixes[$key6]['hwBgpPeerPrefixRcvCounter'];
|
||||
$cbgpPeerAdvertisedPrefixes = $vrpPrefixes[$key6]['hwBgpPeerPrefixAdvCounter'];
|
||||
$cbgpPeerAdvertisedPrefixes = $vrpPrefixes[$key6]['hwBgpPeerPrefixAdvCounter'];
|
||||
}
|
||||
}
|
||||
|
||||
// Validate data
|
||||
$cbgpPeerAcceptedPrefixes = set_numeric($cbgpPeerAcceptedPrefixes);
|
||||
$cbgpPeerDeniedPrefixes = set_numeric($cbgpPeerDeniedPrefixes);
|
||||
$cbgpPeerPrefixAdminLimit = set_numeric($cbgpPeerPrefixAdminLimit);
|
||||
$cbgpPeerPrefixThreshold = set_numeric($cbgpPeerPrefixThreshold);
|
||||
$cbgpPeerAcceptedPrefixes = set_numeric($cbgpPeerAcceptedPrefixes);
|
||||
$cbgpPeerDeniedPrefixes = set_numeric($cbgpPeerDeniedPrefixes);
|
||||
$cbgpPeerPrefixAdminLimit = set_numeric($cbgpPeerPrefixAdminLimit);
|
||||
$cbgpPeerPrefixThreshold = set_numeric($cbgpPeerPrefixThreshold);
|
||||
$cbgpPeerPrefixClearThreshold = set_numeric($cbgpPeerPrefixClearThreshold);
|
||||
$cbgpPeerAdvertisedPrefixes = set_numeric($cbgpPeerAdvertisedPrefixes);
|
||||
$cbgpPeerSuppressedPrefixes = set_numeric($cbgpPeerSuppressedPrefixes);
|
||||
$cbgpPeerWithdrawnPrefixes = set_numeric($cbgpPeerWithdrawnPrefixes);
|
||||
$cbgpPeerAdvertisedPrefixes = set_numeric($cbgpPeerAdvertisedPrefixes);
|
||||
$cbgpPeerSuppressedPrefixes = set_numeric($cbgpPeerSuppressedPrefixes);
|
||||
$cbgpPeerWithdrawnPrefixes = set_numeric($cbgpPeerWithdrawnPrefixes);
|
||||
|
||||
$cbgpPeers_cbgp_fields = [
|
||||
'AcceptedPrefixes' => $cbgpPeerAcceptedPrefixes,
|
||||
@ -544,7 +544,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
];
|
||||
|
||||
foreach ($oids as $oid) {
|
||||
$tmp_prev = set_numeric($peer_afi[$oid]);
|
||||
$tmp_prev = set_numeric($peer_afi[$oid]);
|
||||
$tmp_delta = $cbgpPeers_cbgp_fields[$oid] - $tmp_prev;
|
||||
if ($peer_afi[$oid . '_delta'] != $tmp_delta) {
|
||||
$peer['c_update'][$oid . '_delta'] = $tmp_delta;
|
||||
@ -563,7 +563,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
);
|
||||
}
|
||||
|
||||
$cbgp_rrd_name = safename('cbgp-'.$peer['bgpPeerIdentifier'].".$afi.$safi");
|
||||
$cbgp_rrd_name = safename('cbgp-' . $peer['bgpPeerIdentifier'] . ".$afi.$safi");
|
||||
$cbgp_rrd_def = RrdDefinition::make()
|
||||
->addDataset('AcceptedPrefixes', 'GAUGE', null, 100000000000)
|
||||
->addDataset('DeniedPrefixes', 'GAUGE', null, 100000000000)
|
||||
@ -584,7 +584,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
|
||||
'afi' => $afi,
|
||||
'safi' => $safi,
|
||||
'rrd_name' => $cbgp_rrd_name,
|
||||
'rrd_def' => $cbgp_rrd_def
|
||||
'rrd_def' => $cbgp_rrd_def,
|
||||
];
|
||||
data_update($device, 'cbgp', $tags, $fields);
|
||||
} //end foreach
|
||||
|
@ -3,22 +3,22 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if ($device['os_group'] == 'cisco') {
|
||||
// FIXME - seems to be broken. IPs appear with leading zeroes.
|
||||
$ipsec_array = snmpwalk_cache_oid($device, 'cipSecTunnelEntry', array(), 'CISCO-IPSEC-FLOW-MONITOR-MIB');
|
||||
if (!empty($ipsec_array)) {
|
||||
$ike_array = snmpwalk_cache_oid($device, 'cikeTunnelEntry', array(), 'CISCO-IPSEC-FLOW-MONITOR-MIB');
|
||||
// FIXME - seems to be broken. IPs appear with leading zeroes.
|
||||
$ipsec_array = snmpwalk_cache_oid($device, 'cipSecTunnelEntry', [], 'CISCO-IPSEC-FLOW-MONITOR-MIB');
|
||||
if (! empty($ipsec_array)) {
|
||||
$ike_array = snmpwalk_cache_oid($device, 'cikeTunnelEntry', [], 'CISCO-IPSEC-FLOW-MONITOR-MIB');
|
||||
}
|
||||
|
||||
$tunnels_db = dbFetchRows('SELECT * FROM `ipsec_tunnels` WHERE `device_id` = ?', array($device['device_id']));
|
||||
$tunnels_db = dbFetchRows('SELECT * FROM `ipsec_tunnels` WHERE `device_id` = ?', [$device['device_id']]);
|
||||
foreach ($tunnels_db as $tunnel) {
|
||||
if (empty($tunnel['peer_addr']) && empty($tunnel['local_addr'])) {
|
||||
dbDelete('ipsec_tunnels', '`tunnel_id` = ?', array($tunnel['tunnel_id']));
|
||||
dbDelete('ipsec_tunnels', '`tunnel_id` = ?', [$tunnel['tunnel_id']]);
|
||||
}
|
||||
|
||||
$tunnels[$tunnel['peer_addr']] = $tunnel;
|
||||
}
|
||||
|
||||
$valid_tunnels = array();
|
||||
$valid_tunnels = [];
|
||||
|
||||
foreach ($ipsec_array as $index => $tunnel) {
|
||||
$tunnel = array_merge($tunnel, $ike_array[$tunnel['cipSecTunIkeTunnelIndex']]);
|
||||
@ -29,7 +29,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
|
||||
$address = $tunnel['cikeTunRemoteValue'];
|
||||
|
||||
$oids = array(
|
||||
$oids = [
|
||||
'cipSecTunInOctets',
|
||||
'cipSecTunInDecompOctets',
|
||||
'cipSecTunInPkts',
|
||||
@ -47,33 +47,33 @@ if ($device['os_group'] == 'cisco') {
|
||||
'cipSecTunOutAuthFails',
|
||||
'cipSecTunOutEncrypts',
|
||||
'cipSecTunOutEncryptFails',
|
||||
);
|
||||
];
|
||||
|
||||
$db_oids = array(
|
||||
$db_oids = [
|
||||
'cipSecTunStatus' => 'tunnel_status',
|
||||
'cikeTunLocalName' => 'tunnel_name',
|
||||
'cikeTunLocalValue' => 'local_addr',
|
||||
);
|
||||
];
|
||||
|
||||
if (!is_array($tunnels[$tunnel['cikeTunRemoteValue']]) && !empty($tunnel['cikeTunRemoteValue'])) {
|
||||
$tunnel_id = dbInsert(array(
|
||||
if (! is_array($tunnels[$tunnel['cikeTunRemoteValue']]) && ! empty($tunnel['cikeTunRemoteValue'])) {
|
||||
$tunnel_id = dbInsert([
|
||||
'device_id' => $device['device_id'],
|
||||
'peer_addr' => $tunnel['cikeTunRemoteValue'],
|
||||
'local_addr' => $tunnel['cikeTunLocalValue'],
|
||||
'tunnel_name' => $tunnel['cikeTunLocalName']
|
||||
), 'ipsec_tunnels');
|
||||
'tunnel_name' => $tunnel['cikeTunLocalName'],
|
||||
], 'ipsec_tunnels');
|
||||
$valid_tunnels[] = $tunnel_id;
|
||||
} else {
|
||||
foreach ($db_oids as $db_oid => $db_value) {
|
||||
$db_update[$db_value] = $tunnel[$db_oid];
|
||||
}
|
||||
|
||||
if (!empty($tunnels[$tunnel['cikeTunRemoteValue']]['tunnel_id'])) {
|
||||
if (! empty($tunnels[$tunnel['cikeTunRemoteValue']]['tunnel_id'])) {
|
||||
$updated = dbUpdate(
|
||||
$db_update,
|
||||
'ipsec_tunnels',
|
||||
'`tunnel_id` = ?',
|
||||
array($tunnels[$tunnel['cikeTunRemoteValue']]['tunnel_id'])
|
||||
[$tunnels[$tunnel['cikeTunRemoteValue']]['tunnel_id']]
|
||||
);
|
||||
$valid_tunnels[] = $tunnels[$tunnel['cikeTunRemoteValue']]['tunnel_id'];
|
||||
}
|
||||
@ -92,7 +92,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
$tunnel['cipSecTunOutUncompOctets'] = $tunnel['cipSecTunHcOutUncompOctets'];
|
||||
}
|
||||
|
||||
$rrd_name = array('ipsectunnel', $address);
|
||||
$rrd_name = ['ipsectunnel', $address];
|
||||
$rrd_def = new RrdDefinition();
|
||||
$rrd_def->disableNameChecking();
|
||||
foreach ($oids as $oid) {
|
||||
@ -100,7 +100,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
$rrd_def->addDataset($oid_ds, 'COUNTER', null, 1000000000);
|
||||
}
|
||||
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
|
||||
foreach ($oids as $oid) {
|
||||
if (is_numeric($tunnel[$oid])) {
|
||||
@ -119,7 +119,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
}
|
||||
}//end foreach
|
||||
|
||||
if (!empty($valid_tunnels)) {
|
||||
if (! empty($valid_tunnels)) {
|
||||
d_echo($valid_tunnels);
|
||||
dbDelete(
|
||||
'ipsec_tunnels',
|
||||
|
@ -3,8 +3,8 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if ($device['os_group'] == 'cisco') {
|
||||
$rserver_array = snmpwalk_cache_oid($device, 'cesServerFarmRserverTable', array(), 'CISCO-ENHANCED-SLB-MIB');
|
||||
$rserver_db = dbFetchRows('SELECT * FROM `loadbalancer_rservers` WHERE `device_id` = ?', array($device['device_id']));
|
||||
$rserver_array = snmpwalk_cache_oid($device, 'cesServerFarmRserverTable', [], 'CISCO-ENHANCED-SLB-MIB');
|
||||
$rserver_db = dbFetchRows('SELECT * FROM `loadbalancer_rservers` WHERE `device_id` = ?', [$device['device_id']]);
|
||||
|
||||
foreach ($rserver_db as $serverfarm) {
|
||||
$serverfarms[$serverfarm['farm_id']] = $serverfarm;
|
||||
@ -13,23 +13,23 @@ if ($device['os_group'] == 'cisco') {
|
||||
foreach ($rserver_array as $index => $serverfarm) {
|
||||
$farm_id = preg_replace('@\d+\."(.*?)"\.\d+@', '\\1', $index);
|
||||
|
||||
$oids = array(
|
||||
$oids = [
|
||||
'cesServerFarmRserverTotalConns',
|
||||
'cesServerFarmRserverCurrentConns',
|
||||
'cesServerFarmRserverFailedConns',
|
||||
);
|
||||
];
|
||||
|
||||
$db_oids = array(
|
||||
$db_oids = [
|
||||
$farm_id => 'farm_id',
|
||||
'cesServerFarmRserverStateDescr' => 'StateDescr',
|
||||
);
|
||||
];
|
||||
|
||||
if (!is_array($serverfarms[$farm_id])) {
|
||||
$rserver_id = dbInsert(array(
|
||||
if (! is_array($serverfarms[$farm_id])) {
|
||||
$rserver_id = dbInsert([
|
||||
'device_id' => $device['device_id'],
|
||||
'farm_id' => $farm_id,
|
||||
'StateDescr' => $serverfarm['cesServerFarmRserverStateDescr']
|
||||
), 'loadbalancer_rservers');
|
||||
'StateDescr' => $serverfarm['cesServerFarmRserverStateDescr'],
|
||||
], 'loadbalancer_rservers');
|
||||
} else {
|
||||
foreach ($db_oids as $db_oid => $db_value) {
|
||||
$db_update[$db_value] = $serverfarm[$db_oid];
|
||||
@ -38,7 +38,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
$updated = dbUpdate($db_update, 'loadbalancer_rservers', '`rserver_id` = ?', $serverfarm['cesServerFarmRserverFailedConns']['farm_id']);
|
||||
}
|
||||
|
||||
$rrd_name = array('rserver', $serverfarms[$farm_id]['rserver_id']);
|
||||
$rrd_name = ['rserver', $serverfarms[$farm_id]['rserver_id']];
|
||||
|
||||
$rrd_def = new RrdDefinition();
|
||||
foreach ($oids as $oid) {
|
||||
@ -46,7 +46,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
$rrd_def->addDataset($oid_ds, 'GAUGE', -1, 100000000);
|
||||
}
|
||||
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
|
||||
foreach ($oids as $oid) {
|
||||
if (is_numeric($serverfarm[$oid])) {
|
||||
|
@ -3,8 +3,8 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if ($device['os_group'] == 'cisco') {
|
||||
$serverfarm_array = snmpwalk_cache_oid($device, 'slbVServerInfoTable', array(), 'CISCO-SLB-MIB');
|
||||
$serverfarm_db = dbFetchRows('SELECT * FROM `loadbalancer_vservers` WHERE `device_id` = ?', array($device['device_id']));
|
||||
$serverfarm_array = snmpwalk_cache_oid($device, 'slbVServerInfoTable', [], 'CISCO-SLB-MIB');
|
||||
$serverfarm_db = dbFetchRows('SELECT * FROM `loadbalancer_vservers` WHERE `device_id` = ?', [$device['device_id']]);
|
||||
|
||||
foreach ($serverfarm_db as $vserver) {
|
||||
$classmaps[$vserver['classmap']] = $vserver;
|
||||
@ -14,28 +14,28 @@ if ($device['os_group'] == 'cisco') {
|
||||
$classmap = str_replace('class-map-', '', $vserver['slbVServerClassMap']);
|
||||
$classmap_id = str_replace('9.', '', $index);
|
||||
|
||||
$oids = array(
|
||||
$oids = [
|
||||
'slbVServerNumberOfConnections',
|
||||
'slbVServerDroppedConnections',
|
||||
'slbVServerClientPacketCounts',
|
||||
'slbVServerClientByteCounts',
|
||||
'slbVServerPacketCounts',
|
||||
'slbVServerByteCounts',
|
||||
);
|
||||
];
|
||||
|
||||
$db_oids = array(
|
||||
$db_oids = [
|
||||
$classmap_id => 'classmap_id',
|
||||
$classmap => 'classmap',
|
||||
'slbVServerState' => 'serverstate',
|
||||
);
|
||||
];
|
||||
|
||||
if (!is_array($classmaps[$classmap])) {
|
||||
$classmap_in = dbInsert(array(
|
||||
if (! is_array($classmaps[$classmap])) {
|
||||
$classmap_in = dbInsert([
|
||||
'device_id' => $device['device_id'],
|
||||
'classmap_id' => $classmap_id,
|
||||
'classmap' => $classmap,
|
||||
'serverstate' => $vserver['slbVServerState']
|
||||
), 'loadbalancer_vservers');
|
||||
'serverstate' => $vserver['slbVServerState'],
|
||||
], 'loadbalancer_vservers');
|
||||
} else {
|
||||
foreach ($db_oids as $db_oid => $db_value) {
|
||||
$db_update[$db_value] = $vserver[$db_oid];
|
||||
@ -44,14 +44,14 @@ if ($device['os_group'] == 'cisco') {
|
||||
$updated = dbUpdate($db_update, 'loadbalancer_vservers', '`classmap_id` = ?', $vserver['slbVServerState']['classmap']);
|
||||
}
|
||||
|
||||
$rrd_name = array('vserver', $classmap_id);
|
||||
$rrd_name = ['vserver', $classmap_id];
|
||||
$rrd_def = new RrdDefinition();
|
||||
foreach ($oids as $oid) {
|
||||
$oid_ds = str_replace('slbVServer', '', $oid);
|
||||
$rrd_def->addDataset($oid_ds, 'COUNTER', null, 1000000000);
|
||||
}
|
||||
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
foreach ($oids as $oid) {
|
||||
if (is_numeric($vserver[$oid])) {
|
||||
$value = $vserver[$oid];
|
||||
|
@ -14,17 +14,17 @@
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if ($device['os_group'] == 'cisco' && ( $device['os'] == 'asa' || $device['os'] == 'ftd' ) && $device['type'] == 'firewall') {
|
||||
$oid_list = 'cfwConnectionStatValue.protoIp.currentInUse';
|
||||
$temp_data = snmpwalk_cache_double_oid($device, $oid_list, array(), 'CISCO-FIREWALL-MIB');
|
||||
if ($device['os_group'] == 'cisco' && ($device['os'] == 'asa' || $device['os'] == 'ftd') && $device['type'] == 'firewall') {
|
||||
$oid_list = 'cfwConnectionStatValue.protoIp.currentInUse';
|
||||
$temp_data = snmpwalk_cache_double_oid($device, $oid_list, [], 'CISCO-FIREWALL-MIB');
|
||||
foreach ($temp_data as $oid => $result) {
|
||||
$oid = substr(strchr($oid, '.'), 1);
|
||||
$oid = substr(strchr($oid, '.'), 1);
|
||||
$data[$oid]['data'] = $result['cfwConnectionStatValue'];
|
||||
$asa_db = dbFetchCell('SELECT `ciscoASA_id` FROM `ciscoASA` WHERE `device_id` = ? AND `oid` = ?', array($device['device_id'], $oid));
|
||||
if (!is_numeric($asa_db)) {
|
||||
$asa_db = dbInsert(array('device_id' => $device['device_id'], 'oid' => $oid, 'data' => $result['cfwConnectionStatValue']), 'ciscoASA');
|
||||
$asa_db = dbFetchCell('SELECT `ciscoASA_id` FROM `ciscoASA` WHERE `device_id` = ? AND `oid` = ?', [$device['device_id'], $oid]);
|
||||
if (! is_numeric($asa_db)) {
|
||||
$asa_db = dbInsert(['device_id' => $device['device_id'], 'oid' => $oid, 'data' => $result['cfwConnectionStatValue']], 'ciscoASA');
|
||||
} else {
|
||||
$asa_db = dbUpdate(array('data' => $result['cfwConnectionStatValue']), 'ciscoASA', 'device_id=?', array($device['device_id']));
|
||||
$asa_db = dbUpdate(['data' => $result['cfwConnectionStatValue']], 'ciscoASA', 'device_id=?', [$device['device_id']]);
|
||||
}
|
||||
|
||||
$data[$oid]['db_id'] = $asa_db;
|
||||
@ -32,9 +32,9 @@ if ($device['os_group'] == 'cisco' && ( $device['os'] == 'asa' || $device['os']
|
||||
|
||||
if ($data['currentInUse']) {
|
||||
$rrd_def = RrdDefinition::make()->addDataset('connections', 'GAUGE', 0);
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'connections' => $data['currentInUse']['data'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'asa_conns', $tags, $fields);
|
||||
|
@ -17,9 +17,9 @@ if ($device['os_group'] == "cisco") {
|
||||
$tmp_module = 'Cisco-CBQOS';
|
||||
|
||||
$component = new LibreNMS\Component();
|
||||
$options['filter']['type'] = array('=',$tmp_module);
|
||||
$options['filter']['disabled'] = array('=',0);
|
||||
$options['filter']['ignore'] = array('=',0);
|
||||
$options['filter']['type'] = ['=', $tmp_module];
|
||||
$options['filter']['disabled'] = ['=', 0];
|
||||
$options['filter']['ignore'] = ['=', 0];
|
||||
$components = $component->getComponents($device['device_id'], $options);
|
||||
|
||||
// We only care about our device id.
|
||||
@ -40,7 +40,7 @@ if ($device['os_group'] == "cisco") {
|
||||
$ifIndex = $array['ifindex'];
|
||||
$spid = $array['sp-id'];
|
||||
$spobj = $array['sp-obj'];
|
||||
$rrd_name = array('port', $ifIndex, 'cbqos', $spid, $spobj);
|
||||
$rrd_name = ['port', $ifIndex, 'cbqos', $spid, $spobj];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('postbits', 'COUNTER', 0)
|
||||
->addDataset('bufferdrops', 'COUNTER', 0)
|
||||
@ -50,24 +50,24 @@ if ($device['os_group'] == "cisco") {
|
||||
->addDataset('droppkts', 'COUNTER', 0);
|
||||
|
||||
// Let's print some debugging info.
|
||||
d_echo("\n\nComponent: ".$key."\n");
|
||||
d_echo(" Class-Map: ".$array['label']."\n");
|
||||
d_echo(" SPID.SPOBJ: ".$array['sp-id'].".".$array['sp-obj']."\n");
|
||||
d_echo(" PostBytes: 1.3.6.1.4.1.9.9.166.1.15.1.1.10.".$array['sp-id'].".".$array['sp-obj']." = ".$tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.10'][$array['sp-id']][$array['sp-obj']]."\n");
|
||||
d_echo(" BufferDrops: 1.3.6.1.4.1.9.9.166.1.15.1.1.21.".$array['sp-id'].".".$array['sp-obj']." = ".$tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.21'][$array['sp-id']][$array['sp-obj']]."\n");
|
||||
d_echo(" QOSDrops: 1.3.6.1.4.1.9.9.166.1.15.1.1.17.".$array['sp-id'].".".$array['sp-obj']." = ".$tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.17'][$array['sp-id']][$array['sp-obj']]."\n");
|
||||
d_echo(" PreBytes: 1.3.6.1.4.1.9.9.166.1.15.1.1.6.".$array['sp-id'].".".$array['sp-obj']." = ".$tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.6'][$array['sp-id']][$array['sp-obj']]."\n");
|
||||
d_echo(" PrePkts: 1.3.6.1.4.1.9.9.166.1.15.1.1.3.".$array['sp-id'].".".$array['sp-obj']." = ".$tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.3'][$array['sp-id']][$array['sp-obj']]."\n");
|
||||
d_echo(" DropPkts: 1.3.6.1.4.1.9.9.166.1.15.1.1.14.".$array['sp-id'].".".$array['sp-obj']." = ".$tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.14'][$array['sp-id']][$array['sp-obj']]."\n");
|
||||
d_echo("\n\nComponent: " . $key . "\n");
|
||||
d_echo(" Class-Map: " . $array['label'] . "\n");
|
||||
d_echo(" SPID.SPOBJ: " . $array['sp-id'] . "." . $array['sp-obj'] . "\n");
|
||||
d_echo(" PostBytes: 1.3.6.1.4.1.9.9.166.1.15.1.1.10." . $array['sp-id'] . "." . $array['sp-obj'] . " = " . $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.10'][$array['sp-id']][$array['sp-obj']] . "\n");
|
||||
d_echo(" BufferDrops: 1.3.6.1.4.1.9.9.166.1.15.1.1.21." . $array['sp-id'] . "." . $array['sp-obj'] . " = " . $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.21'][$array['sp-id']][$array['sp-obj']] . "\n");
|
||||
d_echo(" QOSDrops: 1.3.6.1.4.1.9.9.166.1.15.1.1.17." . $array['sp-id'] . "." . $array['sp-obj'] . " = " . $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.17'][$array['sp-id']][$array['sp-obj']] . "\n");
|
||||
d_echo(" PreBytes: 1.3.6.1.4.1.9.9.166.1.15.1.1.6." . $array['sp-id'] . "." . $array['sp-obj'] . " = " . $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.6'][$array['sp-id']][$array['sp-obj']] . "\n");
|
||||
d_echo(" PrePkts: 1.3.6.1.4.1.9.9.166.1.15.1.1.3." . $array['sp-id'] . "." . $array['sp-obj'] . " = " . $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.3'][$array['sp-id']][$array['sp-obj']] . "\n");
|
||||
d_echo(" DropPkts: 1.3.6.1.4.1.9.9.166.1.15.1.1.14." . $array['sp-id'] . "." . $array['sp-obj'] . " = " . $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.14'][$array['sp-id']][$array['sp-obj']] . "\n");
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'postbits' => $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.10'][$array['sp-id']][$array['sp-obj']],
|
||||
'bufferdrops' => $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.21'][$array['sp-id']][$array['sp-obj']],
|
||||
'qosdrops' => $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.17'][$array['sp-id']][$array['sp-obj']],
|
||||
'prebits' => $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.6'][$array['sp-id']][$array['sp-obj']],
|
||||
'prepkts' => $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.3'][$array['sp-id']][$array['sp-obj']],
|
||||
'droppkts' => $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.14'][$array['sp-id']][$array['sp-obj']]
|
||||
);
|
||||
'droppkts' => $tblcbQosClassMapStats['1.3.6.1.4.1.9.9.166.1.15.1.1.14'][$array['sp-id']][$array['sp-obj']],
|
||||
];
|
||||
|
||||
$tags = compact('rrd_name', 'rrd_def', 'ifIndex', 'spid', 'spobj');
|
||||
data_update($device, 'cbqos', $tags, $fields);
|
||||
|
@ -3,22 +3,22 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if ($device['os_group'] == 'cisco') {
|
||||
$cefs = array();
|
||||
$cefs = snmpwalk_cache_threepart_oid($device, 'CISCO-CEF-MIB::cefSwitchingStatsEntry', $cefs, 'CISCO-CEF-MIB');
|
||||
$cefs = [];
|
||||
$cefs = snmpwalk_cache_threepart_oid($device, 'CISCO-CEF-MIB::cefSwitchingStatsEntry', $cefs, 'CISCO-CEF-MIB');
|
||||
$polled = time();
|
||||
|
||||
$cefs_query = dbFetchRows('SELECT * FROM `cef_switching` WHERE `device_id` = ?', array($device['device_id']));
|
||||
$cefs_query = dbFetchRows('SELECT * FROM `cef_switching` WHERE `device_id` = ?', [$device['device_id']]);
|
||||
foreach ($cefs_query as $ceftmp) {
|
||||
$cef_id = $device['device_id'].'-'.$ceftmp['entPhysicalIndex'].'-'.$ceftmp['afi'].'-'.$ceftmp['cef_index'];
|
||||
$cef_id = $device['device_id'] . '-' . $ceftmp['entPhysicalIndex'] . '-' . $ceftmp['afi'] . '-' . $ceftmp['cef_index'];
|
||||
$cefs_db[$cef_id] = $ceftmp['cef_switching_id'];
|
||||
}
|
||||
|
||||
d_echo($cefs);
|
||||
|
||||
if (is_array($cefs)) {
|
||||
if (!is_array($entity_array)) {
|
||||
if (! is_array($entity_array)) {
|
||||
echo 'Caching OIDs: ';
|
||||
$entity_array = array();
|
||||
$entity_array = [];
|
||||
echo ' entPhysicalDescr';
|
||||
$entity_array = snmpwalk_cache_multi_oid($device, 'entPhysicalDescr', $entity_array, 'ENTITY-MIB');
|
||||
echo ' entPhysicalName';
|
||||
@ -28,26 +28,26 @@ if ($device['os_group'] == 'cisco') {
|
||||
}
|
||||
|
||||
foreach ($cefs as $entity => $afis) {
|
||||
$entity_name = $entity_array[$entity]['entPhysicalName'].' - '.$entity_array[$entity]['entPhysicalModelName'];
|
||||
$entity_name = $entity_array[$entity]['entPhysicalName'] . ' - ' . $entity_array[$entity]['entPhysicalModelName'];
|
||||
echo "\n$entity $entity_name\n";
|
||||
foreach ($afis as $afi => $paths) {
|
||||
echo " |- $afi\n";
|
||||
foreach ($paths as $index => $cef_stat) {
|
||||
echo ' | |-'.$index.': '.$cef_stat['cefSwitchingPath'];
|
||||
echo ' | |-' . $index . ': ' . $cef_stat['cefSwitchingPath'];
|
||||
|
||||
$cef_id = $device['device_id'].'-'.$entity.'-'.$afi.'-'.$index;
|
||||
$cef_id = $device['device_id'] . '-' . $entity . '-' . $afi . '-' . $index;
|
||||
|
||||
// if (dbFetchCell("SELECT COUNT(*) FROM `cef_switching` WHERE `device_id` = ? AND `entPhysicalIndex` = ? AND `afi` = ? AND `cef_index` = ?", array($device['device_id'], $entity, $afi, $path)) != "1")
|
||||
if (!isset($cefs_db[$cef_id])) {
|
||||
dbInsert(array('device_id' => $device['device_id'], 'entPhysicalIndex' => $entity, 'afi' => $afi, 'cef_index' => $index, 'cef_path' => $cef_stat['cefSwitchingPath']), 'cef_switching');
|
||||
if (! isset($cefs_db[$cef_id])) {
|
||||
dbInsert(['device_id' => $device['device_id'], 'entPhysicalIndex' => $entity, 'afi' => $afi, 'cef_index' => $index, 'cef_path' => $cef_stat['cefSwitchingPath']], 'cef_switching');
|
||||
echo '+';
|
||||
}
|
||||
|
||||
unset($cefs_db[$cef_id]);
|
||||
|
||||
$cef_entry = dbFetchRow('SELECT * FROM `cef_switching` WHERE `device_id` = ? AND `entPhysicalIndex` = ? AND `afi` = ? AND `cef_index` = ?', array($device['device_id'], $entity, $afi, $index));
|
||||
$cef_entry = dbFetchRow('SELECT * FROM `cef_switching` WHERE `device_id` = ? AND `entPhysicalIndex` = ? AND `afi` = ? AND `cef_index` = ?', [$device['device_id'], $entity, $afi, $index]);
|
||||
|
||||
$rrd_name = array('cefswitching', $entity, $afi, $index);
|
||||
$rrd_name = ['cefswitching', $entity, $afi, $index];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('drop', 'DERIVE', 0, 1000000)
|
||||
->addDataset('punt', 'DERIVE', 0, 1000000)
|
||||
@ -67,22 +67,22 @@ if ($device['os_group'] == 'cisco') {
|
||||
}
|
||||
|
||||
// FIXME -- memcached
|
||||
$cef_stat['update']['drop'] = $cef_stat['cefSwitchingDrop'];
|
||||
$cef_stat['update']['punt'] = $cef_stat['cefSwitchingPunt'];
|
||||
$cef_stat['update']['punt2host'] = $cef_stat['cefSwitchingPunt2Host'];
|
||||
$cef_stat['update']['drop_prev'] = $cef_entry['drop'];
|
||||
$cef_stat['update']['punt_prev'] = $cef_entry['punt'];
|
||||
$cef_stat['update']['drop'] = $cef_stat['cefSwitchingDrop'];
|
||||
$cef_stat['update']['punt'] = $cef_stat['cefSwitchingPunt'];
|
||||
$cef_stat['update']['punt2host'] = $cef_stat['cefSwitchingPunt2Host'];
|
||||
$cef_stat['update']['drop_prev'] = $cef_entry['drop'];
|
||||
$cef_stat['update']['punt_prev'] = $cef_entry['punt'];
|
||||
$cef_stat['update']['punt2host_prev'] = $cef_entry['punt2host'];
|
||||
$cef_stat['update']['updated'] = $polled;
|
||||
$cef_stat['update']['updated_prev'] = $cef_entry['updated'];
|
||||
$cef_stat['update']['updated'] = $polled;
|
||||
$cef_stat['update']['updated_prev'] = $cef_entry['updated'];
|
||||
|
||||
dbUpdate($cef_stat['update'], 'cef_switching', '`device_id` = ? AND `entPhysicalIndex` = ? AND `afi` = ? AND `cef_index` = ?', array($device['device_id'], $entity, $afi, $index));
|
||||
dbUpdate($cef_stat['update'], 'cef_switching', '`device_id` = ? AND `entPhysicalIndex` = ? AND `afi` = ? AND `cef_index` = ?', [$device['device_id'], $entity, $afi, $index]);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'drop' => $cef_stat['cefSwitchingDrop'],
|
||||
'punt' => $cef_stat['cefSwitchingPunt'],
|
||||
'hostpunt' => $cef_stat['cefSwitchingPunt2Host'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('entity', 'afi', 'index', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'cefswitching', $tags, $fields);
|
||||
@ -96,8 +96,8 @@ if ($device['os_group'] == 'cisco') {
|
||||
// FIXME - need to delete old ones. FIXME REALLY.
|
||||
print_r($cefs_db);
|
||||
|
||||
foreach ((array)$cefs_db as $cef_switching_id) {
|
||||
dbDelete('cef_switching', '`cef_switching_id` = ?', array($cef_switching_id));
|
||||
foreach ((array) $cefs_db as $cef_switching_id) {
|
||||
dbDelete('cef_switching', '`cef_switching_id` = ?', [$cef_switching_id]);
|
||||
echo '-';
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
->addDataset('NoSaFails', 'COUNTER', 0, 100000000000)
|
||||
->addDataset('SysCapFails', 'COUNTER', 0, 100000000000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'Tunnels' => $data['cipSecGlobalActiveTunnels'],
|
||||
'InOctets' => $data['cipSecGlobalInOctets'],
|
||||
'OutOctets' => $data['cipSecGlobalOutOctets'],
|
||||
@ -100,7 +100,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
'ProtocolUseFails' => $data['cipSecGlobalProtocolUseFails'],
|
||||
'NoSaFails' => $data['cipSecGlobalNoSaFails'],
|
||||
'SysCapFails' => $data['cipSecGlobalSysCapFails'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'cipsec_flow', $tags, $fields);
|
||||
|
@ -3,16 +3,16 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if ($device['os_group'] == 'cisco') {
|
||||
$acc_rows = dbFetchRows('SELECT *, A.poll_time AS poll_time FROM `mac_accounting` as A, `ports` AS I where A.port_id = I.port_id AND I.device_id = ?', array($device['device_id']));
|
||||
$acc_rows = dbFetchRows('SELECT *, A.poll_time AS poll_time FROM `mac_accounting` as A, `ports` AS I where A.port_id = I.port_id AND I.device_id = ?', [$device['device_id']]);
|
||||
|
||||
if (!empty($acc_rows)) {
|
||||
$cip_oids = array(
|
||||
if (! empty($acc_rows)) {
|
||||
$cip_oids = [
|
||||
'cipMacHCSwitchedBytes',
|
||||
'cipMacHCSwitchedPkts',
|
||||
);
|
||||
$cip_array = array();
|
||||
];
|
||||
$cip_array = [];
|
||||
|
||||
foreach (array_merge($cip_oids, array('cipMacSwitchedBytes', 'cipMacSwitchedPkts')) as $oid) {
|
||||
foreach (array_merge($cip_oids, ['cipMacSwitchedBytes', 'cipMacSwitchedPkts']) as $oid) {
|
||||
echo "$oid ";
|
||||
$cip_array = snmpwalk_cache_cip($device, $oid, $cip_array, 'CISCO-IP-STAT-MIB');
|
||||
}
|
||||
@ -20,19 +20,19 @@ if ($device['os_group'] == 'cisco') {
|
||||
// Normalize cip_array
|
||||
$cip_array = array_map(function ($entries) {
|
||||
return array_map(function ($entry) {
|
||||
$new_entry = array();
|
||||
|
||||
foreach (array('Bytes', 'Pkts') as $unit) {
|
||||
$returned_oid = (array_key_exists('cipMacHCSwitched'.$unit, $entry)) ? 'cipMacHCSwitched' : 'cipMacSwitched';
|
||||
$new_value = array();
|
||||
|
||||
foreach ($entry[$returned_oid.$unit] as $key => $value) {
|
||||
$new_entry = [];
|
||||
|
||||
foreach (['Bytes', 'Pkts'] as $unit) {
|
||||
$returned_oid = (array_key_exists('cipMacHCSwitched' . $unit, $entry)) ? 'cipMacHCSwitched' : 'cipMacSwitched';
|
||||
$new_value = [];
|
||||
|
||||
foreach ($entry[$returned_oid . $unit] as $key => $value) {
|
||||
$new_value[$key] = intval($value);
|
||||
}
|
||||
|
||||
$new_entry['cipMacHCSwitched'.$unit] = $new_value;
|
||||
|
||||
$new_entry['cipMacHCSwitched' . $unit] = $new_value;
|
||||
}
|
||||
|
||||
|
||||
return $new_entry;
|
||||
}, $entries);
|
||||
}, $cip_array);
|
||||
@ -64,7 +64,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
|
||||
// Update metrics
|
||||
foreach ($cip_oids as $oid) {
|
||||
foreach (array('input', 'output') as $dir) {
|
||||
foreach (['input', 'output'] as $dir) {
|
||||
$oid_dir = $oid . '_' . $dir;
|
||||
$acc['update'][$oid_dir] = $this_ma[$oid][$dir];
|
||||
$acc['update'][$oid_dir . '_prev'] = $acc[$oid_dir];
|
||||
@ -81,7 +81,7 @@ if ($device['os_group'] == 'cisco') {
|
||||
|
||||
d_echo("\n" . $acc['hostname'] . ' ' . $acc['ifDescr'] . " $mac -> $b_in:$b_out:$p_in:$p_out ");
|
||||
|
||||
$rrd_name = array('cip', $ifIndex, $mac);
|
||||
$rrd_name = ['cip', $ifIndex, $mac];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('IN', 'COUNTER', 0, 12500000000)
|
||||
->addDataset('OUT', 'COUNTER', 0, 12500000000)
|
||||
@ -89,19 +89,19 @@ if ($device['os_group'] == 'cisco') {
|
||||
->addDataset('POUT', 'COUNTER', 0, 12500000000);
|
||||
|
||||
// FIXME - use memcached to make sure these values don't go backwards?
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'IN' => $b_in,
|
||||
'OUT' => $b_out,
|
||||
'PIN' => $p_in,
|
||||
'POUT' => $p_out,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('ifIndex', 'mac', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'cip', $tags, $fields);
|
||||
|
||||
if ($acc['update']) {
|
||||
// Do Updates
|
||||
dbUpdate($acc['update'], 'mac_accounting', '`ma_id` = ?', array($acc['ma_id']));
|
||||
dbUpdate($acc['update'], 'mac_accounting', '`ma_id` = ?', [$acc['ma_id']]);
|
||||
} //end if
|
||||
}//end if
|
||||
}//end foreach
|
||||
|
@ -15,7 +15,7 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
if ($device['os_group'] == "cisco") {
|
||||
// Define some error messages
|
||||
$error_vpn = array();
|
||||
$error_vpn = [];
|
||||
$error_vpn[0] = "Other";
|
||||
$error_vpn[1] = "Configuration changed";
|
||||
$error_vpn[2] = "Control Group information is unavailable";
|
||||
@ -37,7 +37,7 @@ if ($device['os_group'] == "cisco") {
|
||||
$error_vpn[18] = "Changing device ID";
|
||||
$error_vpn[19] = "Cleanup in progress";
|
||||
|
||||
$error_aed = array();
|
||||
$error_aed = [];
|
||||
$error_aed[0] = "Other";
|
||||
$error_aed[1] = "Overlay is Down";
|
||||
$error_aed[2] = "Site ID is not configured";
|
||||
@ -50,7 +50,7 @@ if ($device['os_group'] == "cisco") {
|
||||
$error_aed[9] = "Overlay state down event in progress";
|
||||
$error_aed[10] = "ISIS control group sync pending";
|
||||
|
||||
$error_overlay = array();
|
||||
$error_overlay = [];
|
||||
$error_overlay[1] = "active";
|
||||
$error_overlay[2] = "notInService";
|
||||
$error_overlay[3] = "notReady";
|
||||
@ -61,8 +61,8 @@ if ($device['os_group'] == "cisco") {
|
||||
$tmp_module = 'Cisco-OTV';
|
||||
|
||||
$component = new LibreNMS\Component();
|
||||
$options['filter']['type'] = array('=',$tmp_module);
|
||||
$options['filter']['disabled'] = array('=',0);
|
||||
$options['filter']['type'] = ['=', $tmp_module];
|
||||
$options['filter']['disabled'] = ['=', 0];
|
||||
$components = $component->getComponents($device['device_id'], $options);
|
||||
|
||||
// We only care about our device id.
|
||||
@ -77,12 +77,12 @@ if ($device['os_group'] == "cisco") {
|
||||
$tblVlanEdgeDevIsAed = snmpwalk_array_num($device, '.1.3.6.1.4.1.9.9.810.1.2.2.1.6', 2);
|
||||
|
||||
// Let's create an array of each remote OTV endpoint and the count of MAC addresses that are reachable via.
|
||||
$count_mac = array();
|
||||
$count_mac = [];
|
||||
foreach ($tblRouteNextHopAddr as $k => $v) {
|
||||
$count_mac[$v]++;
|
||||
}
|
||||
// Let's log some debugging
|
||||
d_echo("\n\nMAC Addresses: ".print_r($count_mac, true));
|
||||
d_echo("\n\nMAC Addresses: " . print_r($count_mac, true));
|
||||
|
||||
// Loop through the components and extract the data.
|
||||
foreach ($components as $key => &$array) {
|
||||
@ -91,15 +91,15 @@ if ($device['os_group'] == "cisco") {
|
||||
$message = false;
|
||||
$vpn_state = $tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.3'][$array['index']];
|
||||
if ($vpn_state != 2) {
|
||||
$message .= "VPN Down: ".$error_vpn[$tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.4'][$array['index']]];
|
||||
$message .= "VPN Down: " . $error_vpn[$tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.4'][$array['index']]];
|
||||
}
|
||||
$aed_state = $tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.13'][$array['index']];
|
||||
if ($aed_state == 2) {
|
||||
$message .= "AED Down: ".$error_aed[$tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.14'][$array['index']]];
|
||||
$message .= "AED Down: " . $error_aed[$tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.14'][$array['index']]];
|
||||
}
|
||||
$overlay_state = $tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.23'][$array['index']];
|
||||
if ($overlay_state == 2) {
|
||||
$message .= "Overlay Down: ".$error_overlay[$tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.24'][$array['index']]];
|
||||
$message .= "Overlay Down: " . $error_overlay[$tblOverlayEntry['1.3.6.1.4.1.9.9.810.1.2.1.1.24'][$array['index']]];
|
||||
}
|
||||
|
||||
// If we have set a message, we have an error, activate alert.
|
||||
@ -120,30 +120,30 @@ if ($device['os_group'] == "cisco") {
|
||||
}
|
||||
|
||||
// Let's log some debugging
|
||||
d_echo("\n\nOverlay Component: ".$key."\n");
|
||||
d_echo(" Label: ".$array['label']."\n");
|
||||
d_echo(" Index: ".$array['index']."\n");
|
||||
d_echo(" Status: ".$array['status']."\n");
|
||||
d_echo(" Message: ".$array['error']."\n");
|
||||
d_echo(" VLAN Count: ".$count_vlan."\n");
|
||||
d_echo("\n\nOverlay Component: " . $key . "\n");
|
||||
d_echo(" Label: " . $array['label'] . "\n");
|
||||
d_echo(" Index: " . $array['index'] . "\n");
|
||||
d_echo(" Status: " . $array['status'] . "\n");
|
||||
d_echo(" Message: " . $array['error'] . "\n");
|
||||
d_echo(" VLAN Count: " . $count_vlan . "\n");
|
||||
|
||||
$label = $array['label'];
|
||||
$rrd_name = array('cisco', 'otv', $label, 'vlan');
|
||||
$rrd_name = ['cisco', 'otv', $label, 'vlan'];
|
||||
$rrd_def = RrdDefinition::make()->addDataset('count', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
'count' => $count_vlan
|
||||
);
|
||||
$fields = [
|
||||
'count' => $count_vlan,
|
||||
];
|
||||
|
||||
$tags = compact('label', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'cisco-otv-vlan', $tags, $fields);
|
||||
} elseif ($array['otvtype'] == 'adjacency') {
|
||||
$array['uptime'] = $tblAdjacencyDatabaseEntry['1.3.6.1.4.1.9.9.810.1.3.1.1.6.'.$array['index'].'.1.4.'.$array['endpoint']];
|
||||
$array['uptime'] = $tblAdjacencyDatabaseEntry['1.3.6.1.4.1.9.9.810.1.3.1.1.6.' . $array['index'] . '.1.4.' . $array['endpoint']];
|
||||
$message = false;
|
||||
if ($tblAdjacencyDatabaseEntry['1.3.6.1.4.1.9.9.810.1.3.1.1.5.'.$array['index'].'.1.4.'.$array['endpoint']] != 1) {
|
||||
if ($tblAdjacencyDatabaseEntry['1.3.6.1.4.1.9.9.810.1.3.1.1.5.' . $array['index'] . '.1.4.' . $array['endpoint']] != 1) {
|
||||
$message .= "Adjacency is Down\n";
|
||||
}
|
||||
if ($tblAdjacencyDatabaseEntry['1.3.6.1.4.1.9.9.810.1.3.1.1.6.'.$array['index'].'.1.4.'.$array['endpoint']] < $array['uptime']) {
|
||||
if ($tblAdjacencyDatabaseEntry['1.3.6.1.4.1.9.9.810.1.3.1.1.6.' . $array['index'] . '.1.4.' . $array['endpoint']] < $array['uptime']) {
|
||||
$message .= "Adjacency has been reset\n";
|
||||
}
|
||||
|
||||
@ -157,11 +157,11 @@ if ($device['os_group'] == "cisco") {
|
||||
}
|
||||
|
||||
// Let's log some debugging
|
||||
d_echo("\n\nAdjacency Component: ".$key."\n");
|
||||
d_echo(" Label: ".$array['label']."\n");
|
||||
d_echo(" Index: ".$array['index']."\n");
|
||||
d_echo(" Status: ".$array['status']."\n");
|
||||
d_echo(" Message: ".$array['error']."\n");
|
||||
d_echo("\n\nAdjacency Component: " . $key . "\n");
|
||||
d_echo(" Label: " . $array['label'] . "\n");
|
||||
d_echo(" Index: " . $array['index'] . "\n");
|
||||
d_echo(" Status: " . $array['status'] . "\n");
|
||||
d_echo(" Message: " . $array['error'] . "\n");
|
||||
} elseif ($array['otvtype'] == 'endpoint') {
|
||||
$count = 0;
|
||||
$endpoint = $array['endpoint'];
|
||||
@ -171,15 +171,15 @@ if ($device['os_group'] == "cisco") {
|
||||
}
|
||||
|
||||
// Let's log some debugging
|
||||
d_echo("\n\nEndpoint Component: ".$key."\n");
|
||||
d_echo(" Label: ".$array['label']."\n");
|
||||
d_echo(" MAC Count: ".$count."\n");
|
||||
d_echo("\n\nEndpoint Component: " . $key . "\n");
|
||||
d_echo(" Label: " . $array['label'] . "\n");
|
||||
d_echo(" MAC Count: " . $count . "\n");
|
||||
|
||||
$rrd_name = array('cisco', 'otv', $endpoint, 'mac');
|
||||
$rrd_name = ['cisco', 'otv', $endpoint, 'mac'];
|
||||
$rrd_def = RrdDefinition::make()->addDataset('count', 'GAUGE', 0);
|
||||
$fields = array(
|
||||
'count' => $count
|
||||
);
|
||||
$fields = [
|
||||
'count' => $count,
|
||||
];
|
||||
|
||||
$tags = compact('endpoint', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'cisco-otv-mac', $tags, $fields);
|
||||
|
@ -22,13 +22,13 @@ $module = 'cisco-qfp';
|
||||
/*
|
||||
* Fetch device components and filter ignored or disabled ones
|
||||
*/
|
||||
$options = array(
|
||||
'filter' => array(
|
||||
'type' => array('=', $module),
|
||||
'disabled' => array('=', 0),
|
||||
'ignore' => array('=', 0)
|
||||
)
|
||||
);
|
||||
$options = [
|
||||
'filter' => [
|
||||
'type' => ['=', $module],
|
||||
'disabled' => ['=', 0],
|
||||
'ignore' => ['=', 0],
|
||||
],
|
||||
];
|
||||
|
||||
$component = new LibreNMS\Component();
|
||||
$components = $component->getComponents($device['device_id'], $options);
|
||||
@ -39,17 +39,16 @@ $components = $components[$device['device_id']];
|
||||
* Use 5min for now but if in future LibreNMS polling interval is set through
|
||||
* config file we can use this to quickly select best time interval
|
||||
*/
|
||||
$time_interval_array = array(
|
||||
$time_interval_array = [
|
||||
'5sec' => 1,
|
||||
'1min' => 2,
|
||||
'5min' => 3,
|
||||
'1h' => 4
|
||||
);
|
||||
'1h' => 4,
|
||||
];
|
||||
|
||||
$ti = $time_interval_array['5min'];
|
||||
|
||||
|
||||
if (!empty($components) && is_array($components)) {
|
||||
if (! empty($components) && is_array($components)) {
|
||||
foreach ($components as $component_id => $tmp_component) {
|
||||
/*
|
||||
* Build OIDs and use snmpget to fetch multiple OIDs at once instead of snmpwalk
|
||||
@ -60,7 +59,7 @@ if (!empty($components) && is_array($components)) {
|
||||
* ceqfpUtilizationEntry table has `entPhysicalIndex` and `ceqfpUtilTimeInterval` indexes
|
||||
*/
|
||||
$util_oid_suffix = $qfp_index . '.' . $ti;
|
||||
$util_oids = array(
|
||||
$util_oids = [
|
||||
'InPriorityPps' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.2.' . $util_oid_suffix,
|
||||
'InPriorityBps' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.3.' . $util_oid_suffix,
|
||||
'InNonPriorityPps' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.4.' . $util_oid_suffix,
|
||||
@ -73,22 +72,22 @@ if (!empty($components) && is_array($components)) {
|
||||
'OutNonPriorityBps' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.11.' . $util_oid_suffix,
|
||||
'OutTotalPps' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.12.' . $util_oid_suffix,
|
||||
'OutTotalBps' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.13.' . $util_oid_suffix,
|
||||
'ProcessingLoad' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.14.' . $util_oid_suffix
|
||||
);
|
||||
'ProcessingLoad' => '.1.3.6.1.4.1.9.9.715.1.1.6.1.14.' . $util_oid_suffix,
|
||||
];
|
||||
|
||||
/*
|
||||
* ceqfpMemoryResourceEntry table has `entPhysicalIndex` and `ceqfpMemoryResType` indexes
|
||||
* ceqfpMemoryResType has the only one valid value (1: dram)
|
||||
*/
|
||||
$mem_oid_suffix = $qfp_index . '.1';
|
||||
$memory_oids = array(
|
||||
$memory_oids = [
|
||||
'RisingThreshold' => '.1.3.6.1.4.1.9.9.715.1.1.7.1.6.' . $mem_oid_suffix,
|
||||
'FallingThreshold' => '.1.3.6.1.4.1.9.9.715.1.1.7.1.7.' . $mem_oid_suffix,
|
||||
'LowFreeWatermark' => '.1.3.6.1.4.1.9.9.715.1.1.7.1.15.' . $mem_oid_suffix,
|
||||
'Total' => '.1.3.6.1.4.1.9.9.715.1.1.7.1.9.' . $mem_oid_suffix,
|
||||
'InUse' => '.1.3.6.1.4.1.9.9.715.1.1.7.1.11.' . $mem_oid_suffix,
|
||||
'Free' => '.1.3.6.1.4.1.9.9.715.1.1.7.1.13.' . $mem_oid_suffix
|
||||
);
|
||||
'Free' => '.1.3.6.1.4.1.9.9.715.1.1.7.1.13.' . $mem_oid_suffix,
|
||||
];
|
||||
|
||||
/*
|
||||
* Get SNMP data
|
||||
@ -100,7 +99,7 @@ if (!empty($components) && is_array($components)) {
|
||||
* Check if the oids exist
|
||||
* Possible FP linecard OIR between discovery and polling calls
|
||||
*/
|
||||
if (!empty($util_data) && !empty($memory_data)) {
|
||||
if (! empty($util_data) && ! empty($memory_data)) {
|
||||
$total_packets = $util_data[$util_oids['InTotalPps']] + $util_data[$util_oids['OutTotalPps']];
|
||||
$throughput = $util_data[$util_oids['InTotalBps']] + $util_data[$util_oids['OutTotalBps']];
|
||||
$average_packet = $throughput / 8 / $total_packets;
|
||||
@ -108,21 +107,21 @@ if (!empty($components) && is_array($components)) {
|
||||
* Create component data array for `component_prefs`
|
||||
* and update components
|
||||
*/
|
||||
$component_data = array(
|
||||
$component_data = [
|
||||
'utilization' => $util_data[$util_oids['ProcessingLoad']],
|
||||
'packets' => $total_packets,
|
||||
'throughput' => $throughput,
|
||||
'average_packet' => $average_packet,
|
||||
'memory_total' => $memory_data[$memory_oids['Total']],
|
||||
'memory_used' => $memory_data[$memory_oids['InUse']],
|
||||
'memory_free' => $memory_data[$memory_oids['Free']]
|
||||
);
|
||||
'memory_free' => $memory_data[$memory_oids['Free']],
|
||||
];
|
||||
$components[$component_id] = array_merge($components[$component_id], $component_data);
|
||||
|
||||
/*
|
||||
* Create Utilization RRDs
|
||||
*/
|
||||
$rrd_name = array($module, 'util', $qfp_index);
|
||||
$rrd_name = [$module, 'util', $qfp_index];
|
||||
$rrd_def = RrdDefinition::make();
|
||||
foreach ($util_oids as $name => $oid) {
|
||||
$rrd_def->addDataset($name, 'GAUGE', 0);
|
||||
@ -132,11 +131,10 @@ if (!empty($components) && is_array($components)) {
|
||||
data_update($device, $module, $tags, $rrd);
|
||||
unset($filename, $rrd_filename, $rrd_name, $rrd_def, $rrd);
|
||||
|
||||
|
||||
/*
|
||||
* Create Utilization RRDs
|
||||
*/
|
||||
$rrd_name = array($module, 'memory', $qfp_index);
|
||||
$rrd_name = [$module, 'memory', $qfp_index];
|
||||
$rrd_def = RrdDefinition::make();
|
||||
foreach ($memory_oids as $name => $oid) {
|
||||
$rrd_def->addDataset($name, 'GAUGE', 0);
|
||||
|
@ -34,12 +34,12 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
// CISCO-REMOTE-ACCESS-MONITOR-MIB::crasWebvpnPeakConcurrentSessions.0 = Gauge32: 9 Sessions
|
||||
if ($device['os_group'] == 'cisco') {
|
||||
$oid_list = ['crasEmailNumSessions.0', 'crasIPSecNumSessions.0', 'crasL2LNumSessions.0', 'crasLBNumSessions.0', 'crasSVCNumSessions.0', 'crasWebvpnNumSessions.0'];
|
||||
$data = snmp_get_multi($device, $oid_list, '-OUQs', 'CISCO-REMOTE-ACCESS-MONITOR-MIB');
|
||||
$data = $data[0];
|
||||
$data = snmp_get_multi($device, $oid_list, '-OUQs', 'CISCO-REMOTE-ACCESS-MONITOR-MIB');
|
||||
$data = $data[0];
|
||||
|
||||
// Some ASAs return 'No Such Object available on this agent at this OID'
|
||||
// for crasEmailNumSessions.0. Clamp this to 0.
|
||||
if (!is_numeric($data['crasEmailNumSessions'])) {
|
||||
if (! is_numeric($data['crasEmailNumSessions'])) {
|
||||
$data['crasEmailNumSessions'] = 0;
|
||||
}
|
||||
|
||||
@ -52,14 +52,14 @@ if ($device['os_group'] == 'cisco') {
|
||||
->addDataset('svc', 'GAUGE', 0)
|
||||
->addDataset('webvpn', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'email' => $data['crasEmailNumSessions'],
|
||||
'ipsec' => $data['crasIPSecNumSessions'],
|
||||
'l2l' => $data['crasL2LNumSessions'],
|
||||
'lb' => $data['crasLBNumSessions'],
|
||||
'svc' => $data['crasSVCNumSessions'],
|
||||
'webvpn' => $data['crasWebvpnNumSessions'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'cras_sessions', $tags, $fields);
|
||||
|
@ -3,7 +3,7 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
// Gather our SLA's from the DB.
|
||||
$slas = dbFetchRows('SELECT * FROM `slas` WHERE `device_id` = ? AND `deleted` = 0', array($device['device_id']));
|
||||
$slas = dbFetchRows('SELECT * FROM `slas` WHERE `device_id` = ? AND `deleted` = 0', [$device['device_id']]);
|
||||
|
||||
if (count($slas) > 0) {
|
||||
// We have SLA's, lets go!!!
|
||||
@ -12,7 +12,7 @@ if (count($slas) > 0) {
|
||||
$rttMonLatestRttOperTable = snmpwalk_array_num($device, '.1.3.6.1.4.1.9.9.42.1.2.10.1', 1);
|
||||
$rttMonLatestOper = snmpwalk_array_num($device, '.1.3.6.1.4.1.9.9.42.1.5', 1);
|
||||
|
||||
$uptime = snmp_get($device, 'sysUpTime.0', '-Otv');
|
||||
$uptime = snmp_get($device, 'sysUpTime.0', '-Otv');
|
||||
$time_offset = (time() - intval($uptime) / 100);
|
||||
|
||||
foreach ($slas as $sla) {
|
||||
@ -21,8 +21,8 @@ if (count($slas) > 0) {
|
||||
|
||||
// Lets process each SLA
|
||||
$unixtime = intval(($rttMonLatestRttOperTable['1.3.6.1.4.1.9.9.42.1.2.10.1.5'][$sla_nr] / 100 + $time_offset));
|
||||
$time = strftime('%Y-%m-%d %H:%M:%S', $unixtime);
|
||||
$update = array();
|
||||
$time = strftime('%Y-%m-%d %H:%M:%S', $unixtime);
|
||||
$update = [];
|
||||
|
||||
// Use Nagios Status codes.
|
||||
$opstatus = $rttMonLatestRttOperTable['1.3.6.1.4.1.9.9.42.1.2.10.1.2'][$sla_nr];
|
||||
@ -38,14 +38,14 @@ if (count($slas) > 0) {
|
||||
}
|
||||
|
||||
$rtt = $rttMonLatestRttOperTable['1.3.6.1.4.1.9.9.42.1.2.10.1.1'][$sla_nr];
|
||||
echo 'SLA '.$sla_nr.': '.$rtt_type.' '.$sla['owner'].' '.$sla['tag'].'... '.$rtt.'ms at '.$time.'\n';
|
||||
echo 'SLA ' . $sla_nr . ': ' . $rtt_type . ' ' . $sla['owner'] . ' ' . $sla['tag'] . '... ' . $rtt . 'ms at ' . $time . '\n';
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'rtt' => $rtt,
|
||||
);
|
||||
];
|
||||
|
||||
// The base RRD
|
||||
$rrd_name = array('sla', $sla_nr);
|
||||
$rrd_name = ['sla', $sla_nr];
|
||||
$rrd_def = RrdDefinition::make()->addDataset('rtt', 'GAUGE', 0, 300000);
|
||||
$tags = compact('sla_nr', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'sla', $tags, $fields);
|
||||
@ -53,20 +53,20 @@ if (count($slas) > 0) {
|
||||
// Let's gather some per-type fields.
|
||||
switch ($rtt_type) {
|
||||
case 'jitter':
|
||||
$jitter = array(
|
||||
$jitter = [
|
||||
'PacketLossSD' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.26'][$sla_nr],
|
||||
'PacketLossDS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.27'][$sla_nr],
|
||||
'PacketOutOfSequence' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.28'][$sla_nr],
|
||||
'PacketMIA' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.29'][$sla_nr],
|
||||
'PacketLateArrival' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.30'][$sla_nr],
|
||||
'MOS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.42'][$sla_nr]/100,
|
||||
'MOS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.42'][$sla_nr] / 100,
|
||||
'ICPIF' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.43'][$sla_nr],
|
||||
'OWAvgSD' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.49'][$sla_nr],
|
||||
'OWAvgDS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.50'][$sla_nr],
|
||||
'AvgSDJ' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.47'][$sla_nr],
|
||||
'AvgDSJ' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.2.1.48'][$sla_nr],
|
||||
);
|
||||
$rrd_name = array('sla', $sla_nr, $rtt_type);
|
||||
];
|
||||
$rrd_name = ['sla', $sla_nr, $rtt_type];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('PacketLossSD', 'GAUGE', 0)
|
||||
->addDataset('PacketLossDS', 'GAUGE', 0)
|
||||
@ -84,7 +84,7 @@ if (count($slas) > 0) {
|
||||
$fields = array_merge($fields, $jitter);
|
||||
break;
|
||||
case 'icmpjitter':
|
||||
$icmpjitter = array(
|
||||
$icmpjitter = [
|
||||
'PacketLoss' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.26'][$sla_nr],
|
||||
'PacketOosSD' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.28'][$sla_nr],
|
||||
'PacketOosDS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.29'][$sla_nr],
|
||||
@ -95,8 +95,8 @@ if (count($slas) > 0) {
|
||||
'LatencyOWAvgDS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.48'][$sla_nr],
|
||||
'JitterIAJOut' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.49'][$sla_nr],
|
||||
'JitterIAJIn' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.50'][$sla_nr],
|
||||
);
|
||||
$rrd_name = array('sla', $sla_nr, $rtt_type);
|
||||
];
|
||||
$rrd_name = ['sla', $sla_nr, $rtt_type];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('PacketLoss', 'GAUGE', 0)
|
||||
->addDataset('PacketOosSD', 'GAUGE', 0)
|
||||
@ -114,12 +114,12 @@ if (count($slas) > 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
d_echo("The following datasources were collected for #".$sla['sla_nr'].":\n");
|
||||
d_echo("The following datasources were collected for #" . $sla['sla_nr'] . ":\n");
|
||||
d_echo($fields);
|
||||
|
||||
// Update the DB if necessary
|
||||
if (count($update) > 0) {
|
||||
$updated = dbUpdate($update, 'slas', '`sla_id` = ?', array($sla['sla_id']));
|
||||
$updated = dbUpdate($update, 'slas', '`sla_id` = ?', [$sla['sla_id']]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -33,16 +33,16 @@ if ($device['os_group'] == "cisco") {
|
||||
->addDataset('total', 'GAUGE', 0)
|
||||
->addDataset('active', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'total' => $total,
|
||||
'active' => $active,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'cisco-iosdsp', $tags, $fields);
|
||||
|
||||
$os->enableGraph('cisco-iosdsp');
|
||||
echo(" Cisco IOS DSP ");
|
||||
echo " Cisco IOS DSP ";
|
||||
}
|
||||
unset($rrd_def, $total, $active, $tags, $fields);
|
||||
}
|
||||
|
@ -30,16 +30,16 @@ if ($device['os_group'] == "cisco") {
|
||||
->addDataset('total', 'GAUGE', 0)
|
||||
->addDataset('active', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'total' => $total,
|
||||
'active' => $active,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'cisco-iosmtp', $tags, $fields);
|
||||
|
||||
$os->enableGraph('cisco-iosmtp');
|
||||
echo (" Cisco IOS MTP ");
|
||||
echo " Cisco IOS MTP ";
|
||||
}
|
||||
unset($rrd_def, $total, $active, $available, $fields, $tags);
|
||||
}
|
||||
|
@ -40,16 +40,16 @@ if ($device['os_group'] == "cisco") {
|
||||
->addDataset('total', 'GAUGE', 0)
|
||||
->addDataset('active', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'total' => $total,
|
||||
'active' => $active,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'cisco-iospri', $tags, $fields);
|
||||
|
||||
$os->enableGraph('cisco-iospri');
|
||||
echo(" Cisco IOS PRI ");
|
||||
echo " Cisco IOS PRI ";
|
||||
}
|
||||
unset($rrd_def, $total, $active, $fields, $tags);
|
||||
}
|
||||
|
@ -30,16 +30,16 @@ if ($device['os_group'] == "cisco") {
|
||||
->addDataset('total', 'GAUGE', 0)
|
||||
->addDataset('active', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'total' => $total,
|
||||
'active' => $active,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'cisco-iosxcode', $tags, $fields);
|
||||
|
||||
$os->enableGraph('cisco-iosxcode');
|
||||
echo (" Cisco IOS Transcoder ");
|
||||
echo " Cisco IOS Transcoder ";
|
||||
}
|
||||
unset($rrd_def, $total, $active, $available, $fields, $tags);
|
||||
}
|
||||
|
@ -24,19 +24,19 @@ if ($device['os_group'] == "cisco") {
|
||||
->addDataset('sccp', 'GAUGE', 0)
|
||||
->addDataset('multicast', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'h323' => $output['h323']['cvCallVolConnActiveConnection'],
|
||||
'sip' => $output['sip']['cvCallVolConnActiveConnection'],
|
||||
'mgcp' => $output['mgcp']['cvCallVolConnActiveConnection'],
|
||||
'sccp' => $output['sccp']['cvCallVolConnActiveConnection'],
|
||||
'multicast' => $output['multicast']['cvCallVolConnActiveConnection'],
|
||||
);
|
||||
];
|
||||
d_echo($fields);
|
||||
$tags = compact('rrd_def');
|
||||
data_update($device, 'cisco-voice-ip', $tags, $fields);
|
||||
|
||||
$os->enableGraph('cisco-voice-ip');
|
||||
echo(" Cisco IOS Voice IP ");
|
||||
echo " Cisco IOS Voice IP ";
|
||||
unset($rrd_def, $active, $fields, $tags);
|
||||
}
|
||||
}
|
||||
|
@ -12,20 +12,19 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
if ($device['os_group'] == 'cisco') {
|
||||
$data = snmpwalk_cache_oid($device, 'cvpdnSystemEntry', null, 'CISCO-VPDN-MGMT-MIB');
|
||||
|
||||
foreach ((array)$data as $type => $vpdn) {
|
||||
foreach ((array) $data as $type => $vpdn) {
|
||||
if ($vpdn['cvpdnSystemTunnelTotal'] || $vpdn['cvpdnSystemSessionTotal']) {
|
||||
$rrd_name = array('vpdn', $type);
|
||||
$rrd_name = ['vpdn', $type];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('tunnels', 'GAUGE', 0)
|
||||
->addDataset('sessions', 'GAUGE', 0)
|
||||
->addDataset('denied', 'COUNTER', 0, 100000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'tunnels' => $vpdn['cvpdnSystemTunnelTotal'],
|
||||
'sessions' => $vpdn['cvpdnSystemSessionTotal'],
|
||||
'denied' => $vpdn['cvpdnSystemDeniedUsersTotal'],
|
||||
);
|
||||
|
||||
];
|
||||
|
||||
$tags = compact('type', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'vpdn', $tags, $fields);
|
||||
|
@ -18,14 +18,14 @@ use LibreNMS\Util\Time;
|
||||
|
||||
$snmpdata = snmp_get_multi_oid($device, ['sysUpTime.0', 'sysContact.0', 'sysName.0', 'sysObjectID.0', 'sysDescr.0'], '-OQnUt', 'SNMPv2-MIB');
|
||||
|
||||
$poll_device['sysUptime'] = $snmpdata['.1.3.6.1.2.1.1.3.0'];
|
||||
$poll_device['sysContact'] = str_replace("\n", '', $snmpdata['.1.3.6.1.2.1.1.4.0']);
|
||||
$poll_device['sysName'] = str_replace("\n", '', strtolower($snmpdata['.1.3.6.1.2.1.1.5.0']));
|
||||
$poll_device['sysUptime'] = $snmpdata['.1.3.6.1.2.1.1.3.0'];
|
||||
$poll_device['sysContact'] = str_replace("\n", '', $snmpdata['.1.3.6.1.2.1.1.4.0']);
|
||||
$poll_device['sysName'] = str_replace("\n", '', strtolower($snmpdata['.1.3.6.1.2.1.1.5.0']));
|
||||
$poll_device['sysObjectID'] = $snmpdata['.1.3.6.1.2.1.1.2.0'];
|
||||
$poll_device['sysDescr'] = str_replace(chr(218), "\n", $snmpdata['.1.3.6.1.2.1.1.1.0']);
|
||||
$poll_device['sysDescr'] = str_replace(chr(218), "\n", $snmpdata['.1.3.6.1.2.1.1.1.0']);
|
||||
|
||||
if (!empty($agent_data['uptime'])) {
|
||||
list($uptime) = explode(' ', $agent_data['uptime']);
|
||||
if (! empty($agent_data['uptime'])) {
|
||||
[$uptime] = explode(' ', $agent_data['uptime']);
|
||||
$uptime = round($uptime);
|
||||
echo "Using UNIX Agent Uptime ($uptime)\n";
|
||||
} else {
|
||||
@ -44,9 +44,9 @@ if ($uptime != 0 && Config::get("os.{$device['os']}.bad_uptime") !== true) {
|
||||
log_event('Device rebooted after ' . Time::formatInterval($device['uptime']) . " -> {$uptime}s", $device, 'reboot', 4, $device['uptime']);
|
||||
}
|
||||
|
||||
$tags = array(
|
||||
$tags = [
|
||||
'rrd_def' => RrdDefinition::make()->addDataset('uptime', 'GAUGE', 0),
|
||||
);
|
||||
];
|
||||
data_update($device, 'uptime', $tags, $uptime);
|
||||
|
||||
$os->enableGraph('uptime');
|
||||
@ -54,7 +54,7 @@ if ($uptime != 0 && Config::get("os.{$device['os']}.bad_uptime") !== true) {
|
||||
echo 'Uptime: ' . Time::formatInterval($uptime) . PHP_EOL;
|
||||
|
||||
$update_array['uptime'] = $uptime;
|
||||
$device['uptime'] = $uptime;
|
||||
$device['uptime'] = $uptime;
|
||||
}//end if
|
||||
|
||||
$poll_device['sysContact'] = str_replace('"', '', $poll_device['sysContact']);
|
||||
@ -64,10 +64,10 @@ if ($poll_device['sysContact'] == 'not set') {
|
||||
}
|
||||
|
||||
// Save results of various polled values to the database
|
||||
foreach (array('sysContact', 'sysObjectID', 'sysName', 'sysDescr') as $elem) {
|
||||
foreach (['sysContact', 'sysObjectID', 'sysName', 'sysDescr'] as $elem) {
|
||||
if ($poll_device[$elem] != $device[$elem]) {
|
||||
$update_array[$elem] = $poll_device[$elem];
|
||||
$device[$elem] = $poll_device[$elem];
|
||||
$device[$elem] = $poll_device[$elem];
|
||||
log_event("$elem -> " . $poll_device[$elem], $device, 'system', 3);
|
||||
}
|
||||
}
|
||||
|
@ -2,18 +2,18 @@
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
foreach (dbFetchRows("SELECT * FROM `customoids` WHERE `customoid_passed` = 1 AND `device_id` = ?", array($device['device_id'])) as $customoid) {
|
||||
foreach (dbFetchRows("SELECT * FROM `customoids` WHERE `customoid_passed` = 1 AND `device_id` = ?", [$device['device_id']]) as $customoid) {
|
||||
d_echo($customoid);
|
||||
|
||||
$prev_oid_value = $customoid['customoid_current'];
|
||||
|
||||
$rawdata = snmp_get($device, $customoid['customoid_oid'], '-Oqv');
|
||||
|
||||
$user_funcs = array(
|
||||
$user_funcs = [
|
||||
"celsius_to_fahrenheit",
|
||||
"fahrenheit_to_celsius",
|
||||
"uw_to_dbm"
|
||||
);
|
||||
"uw_to_dbm",
|
||||
];
|
||||
|
||||
if (is_numeric($rawdata)) {
|
||||
$os->enableGraph('customoid');
|
||||
@ -34,14 +34,14 @@ foreach (dbFetchRows("SELECT * FROM `customoids` WHERE `customoid_passed` = 1 AN
|
||||
$oid_value = $customoid['user_func']($oid_value);
|
||||
}
|
||||
|
||||
echo 'Custom OID '.$customoid['customoid_descr'].': ';
|
||||
echo $oid_value.' '.$customoid['customoid_unit']."\n";
|
||||
echo 'Custom OID ' . $customoid['customoid_descr'] . ': ';
|
||||
echo $oid_value . ' ' . $customoid['customoid_unit'] . "\n";
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'oid_value' => $oid_value,
|
||||
);
|
||||
];
|
||||
|
||||
$rrd_name = array('customoid', $customoid['customoid_descr']);
|
||||
$rrd_name = ['customoid', $customoid['customoid_descr']];
|
||||
if ($customoid['customoid_datatype'] == 'COUNTER') {
|
||||
$datatype = $customoid['customoid_datatype'];
|
||||
} else {
|
||||
@ -53,7 +53,7 @@ foreach (dbFetchRows("SELECT * FROM `customoids` WHERE `customoid_passed` = 1 AN
|
||||
$tags = compact('rrd_name', 'rrd_def');
|
||||
|
||||
data_update($device, 'customoid', $tags, $fields);
|
||||
dbUpdate(array('customoid_current' => $oid_value, 'lastupdate' => array('NOW()'), 'customoid_prev' => $prev_oid_value), 'customoids', '`customoid_id` = ?', array($customoid['customoid_id']));
|
||||
dbUpdate(['customoid_current' => $oid_value, 'lastupdate' => ['NOW()'], 'customoid_prev' => $prev_oid_value], 'customoids', '`customoid_id` = ?', [$customoid['customoid_id']]);
|
||||
}//end foreach
|
||||
|
||||
unset($customoid, $prev_oid_value, $rawdata, $user_funcs, $oid_value, $error, $fields, $rrd_def, $rrd_name, $tags);
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
$component = new LibreNMS\Component();
|
||||
$components = $component->getComponents($device['device_id'], array('type'=>'Cisco-CIMC'));
|
||||
$components = $component->getComponents($device['device_id'], ['type'=>'Cisco-CIMC']);
|
||||
|
||||
// We only care about our device id.
|
||||
$components = $components[$device['device_id']];
|
||||
@ -25,13 +25,13 @@ if (count($components > 0)) {
|
||||
// Make sure we have an array of data before we try to iterate over it
|
||||
if (is_array($tblUCSObjects)) {
|
||||
// First, let's extract any active faults, we will use them later.
|
||||
$faults = array();
|
||||
$faults = [];
|
||||
foreach ($tblUCSObjects as $oid => $data) {
|
||||
if (strstr($oid, '1.3.6.1.4.1.9.9.719.1.1.1.1.5.')) {
|
||||
$id = substr($oid, 30);
|
||||
$fobj = $tblUCSObjects['1.3.6.1.4.1.9.9.719.1.1.1.1.5.'.$id];
|
||||
$fobj = $tblUCSObjects['1.3.6.1.4.1.9.9.719.1.1.1.1.5.' . $id];
|
||||
$fobj = preg_replace('/^sys/', '/sys', $fobj);
|
||||
$faults[$fobj] = $tblUCSObjects['1.3.6.1.4.1.9.9.719.1.1.1.1.11.'.$id];
|
||||
$faults[$fobj] = $tblUCSObjects['1.3.6.1.4.1.9.9.719.1.1.1.1.11.' . $id];
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ if (count($components > 0)) {
|
||||
if ($tblUCSObjects[$array['statusoid']] != 1) {
|
||||
// Yes, report an error
|
||||
$array['status'] = 2;
|
||||
$array['error'] = "Error Operability Code: ".$tblUCSObjects[$array['statusoid']]."\n";
|
||||
$array['error'] = "Error Operability Code: " . $tblUCSObjects[$array['statusoid']] . "\n";
|
||||
} else {
|
||||
// No, unset any errors that may exist.
|
||||
$array['status'] = 0;
|
||||
@ -61,16 +61,16 @@ if (count($components > 0)) {
|
||||
if (strstr($key, $array['label'])) {
|
||||
// The fault is on this chassis.
|
||||
$array['status'] = 2;
|
||||
$array['error'] .= $value."\n";
|
||||
$array['error'] .= $value . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Print some debugging
|
||||
if ($array['status'] == 0) {
|
||||
d_echo($array['label']." - Ok\n");
|
||||
d_echo($array['label'] . " - Ok\n");
|
||||
} else {
|
||||
d_echo($array['label']." - ".$array['error']."\n");
|
||||
d_echo($array['label'] . " - " . $array['error'] . "\n");
|
||||
}
|
||||
} // End foreach components
|
||||
// Write the Components back to the DB.
|
||||
|
@ -4,7 +4,7 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
echo "Cisco Cat6xxx/76xx Crossbar : \n";
|
||||
|
||||
$mod_stats = snmpwalk_cache_oid($device, 'cc6kxbarModuleModeTable', array(), 'CISCO-CAT6K-CROSSBAR-MIB');
|
||||
$mod_stats = snmpwalk_cache_oid($device, 'cc6kxbarModuleModeTable', [], 'CISCO-CAT6K-CROSSBAR-MIB');
|
||||
|
||||
foreach ($mod_stats as $index => $entry) {
|
||||
$group = 'c6kxbar';
|
||||
@ -14,19 +14,19 @@ foreach ($mod_stats as $index => $entry) {
|
||||
}
|
||||
}
|
||||
|
||||
$chan_stats = snmpwalk_cache_oid($device, 'cc6kxbarModuleChannelTable', array(), 'CISCO-CAT6K-CROSSBAR-MIB');
|
||||
if (!empty($chan_stats)) {
|
||||
$chan_stats = snmpwalk_cache_oid($device, 'cc6kxbarModuleChannelTable', [], 'CISCO-CAT6K-CROSSBAR-MIB');
|
||||
if (! empty($chan_stats)) {
|
||||
$chan_stats = snmpwalk_cache_oid($device, 'cc6kxbarStatisticsTable', $chan_stats, 'CISCO-CAT6K-CROSSBAR-MIB');
|
||||
}
|
||||
|
||||
foreach ($chan_stats as $index => $entry) {
|
||||
list($index,$subindex) = explode('.', $index, 2);
|
||||
$group = 'c6kxbar';
|
||||
[$index,$subindex] = explode('.', $index, 2);
|
||||
$group = 'c6kxbar';
|
||||
foreach ($entry as $key => $value) {
|
||||
$entPhysical_state[$index][$subindex][$group][$key] = $value;
|
||||
}
|
||||
|
||||
$rrd_name = array('c6kxbar', $index, $subindex);
|
||||
$rrd_name = ['c6kxbar', $index, $subindex];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('inutil', 'GAUGE', 0, 100)
|
||||
->addDataset('oututil', 'GAUGE', 0, 100)
|
||||
@ -34,13 +34,13 @@ foreach ($chan_stats as $index => $entry) {
|
||||
->addDataset('outerrors', 'DERIVE', 0, 125000000000)
|
||||
->addDataset('inerrors', 'DERIVE', 0, 125000000000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'inutil' => $entry['cc6kxbarStatisticsInUtil'],
|
||||
'oututil' => $entry['cc6kxbarStatisticsOutUtil'],
|
||||
'outdropped' => $entry['cc6kxbarStatisticsOutDropped'],
|
||||
'outerrors' => $entry['cc6kxbarStatisticsOutErrors'],
|
||||
'inerrors' => $entry['cc6kxbarStatisticsInErrors'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('index', 'subindex', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'c6kxbar', $tags, $fields);
|
||||
|
@ -1,33 +1,33 @@
|
||||
<?php
|
||||
|
||||
// Set Entity state
|
||||
foreach (dbFetch('SELECT * FROM `entPhysical_state` WHERE `device_id` = ?', array($device['device_id'])) as $entity) {
|
||||
if (!isset($entPhysical_state[$entity['entPhysicalIndex']][$entity['subindex']][$entity['group']][$entity['key']])) {
|
||||
foreach (dbFetch('SELECT * FROM `entPhysical_state` WHERE `device_id` = ?', [$device['device_id']]) as $entity) {
|
||||
if (! isset($entPhysical_state[$entity['entPhysicalIndex']][$entity['subindex']][$entity['group']][$entity['key']])) {
|
||||
dbDelete(
|
||||
'entPhysical_state',
|
||||
'`device_id` = ? AND `entPhysicalIndex` = ? AND `subindex` = ? AND `group` = ? AND `key` = ?',
|
||||
array(
|
||||
[
|
||||
$device['device_id'],
|
||||
$entity['entPhysicalIndex'],
|
||||
$entity['subindex'],
|
||||
$entity['group'],
|
||||
$entity['key']
|
||||
)
|
||||
$entity['key'],
|
||||
]
|
||||
);
|
||||
} else {
|
||||
if ($entPhysical_state[$entity['entPhysicalIndex']][$entity['subindex']][$entity['group']][$entity['key']] != $entity['value']) {
|
||||
echo 'no match!' . ' ' . $entity['entPhysicalIndex'] . ' ' . $entity['subindex'] . ' ' . $entity['key'] . ': ' . $entPhysical_state[$entity['entPhysicalIndex']][$entity['subindex']][$entity['group']][$entity['key']] . ' ' . $entity['value'] . "\n";
|
||||
dbUpdate(
|
||||
array('value' => $entPhysical_state[$entity['entPhysicalIndex']][$entity['subindex']][$entity['group']][$entity['key']]),
|
||||
['value' => $entPhysical_state[$entity['entPhysicalIndex']][$entity['subindex']][$entity['group']][$entity['key']]],
|
||||
'entPhysical_state',
|
||||
'`device_id` = ? AND `entPhysicalIndex` = ? AND `subindex` = ? AND `group` = ? AND `key` = ?',
|
||||
array(
|
||||
$device['device_id'],
|
||||
$entity['entPhysicalIndex'],
|
||||
$entity['subindex'],
|
||||
$entity['group'],
|
||||
$entity['key']
|
||||
)
|
||||
[
|
||||
$device['device_id'],
|
||||
$entity['entPhysicalIndex'],
|
||||
$entity['subindex'],
|
||||
$entity['group'],
|
||||
$entity['key'],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
@ -37,11 +37,11 @@ foreach (dbFetch('SELECT * FROM `entPhysical_state` WHERE `device_id` = ?', arra
|
||||
|
||||
// End Set Entity Attrivs
|
||||
// Delete Entity state
|
||||
foreach ((array)$entPhysical_state as $epi => $entity) {
|
||||
foreach ((array) $entPhysical_state as $epi => $entity) {
|
||||
foreach ($entity as $subindex => $si) {
|
||||
foreach ($si as $group => $ti) {
|
||||
foreach ($ti as $key => $value) {
|
||||
dbInsert(array('device_id' => $device['device_id'], 'entPhysicalIndex' => $epi, 'subindex' => $subindex, 'group' => $group, 'key' => $key, 'value' => $value), 'entPhysical_state');
|
||||
dbInsert(['device_id' => $device['device_id'], 'entPhysicalIndex' => $epi, 'subindex' => $subindex, 'group' => $group, 'key' => $key, 'value' => $value], 'entPhysical_state');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -22,14 +22,13 @@
|
||||
* @copyright 2017 Tony Murray
|
||||
* @author Tony Murray <murraytony@gmail.com>
|
||||
*/
|
||||
|
||||
$entityStatesIndexes = dbFetchRows(
|
||||
'SELECT S.entity_state_id, S.entStateLastChanged, P.entPhysicalIndex FROM entityState AS S ' .
|
||||
'LEFT JOIN entPhysical AS P USING (entPhysical_id) WHERE S.device_id=?',
|
||||
array($device['device_id'])
|
||||
[$device['device_id']]
|
||||
);
|
||||
|
||||
if (!empty($entityStatesIndexes)) {
|
||||
if (! empty($entityStatesIndexes)) {
|
||||
echo "\nEntity States: ";
|
||||
|
||||
// index by entPhysicalIndex
|
||||
@ -40,20 +39,20 @@ if (!empty($entityStatesIndexes)) {
|
||||
foreach (current($entLC) as $index => $changed) {
|
||||
if ($changed) { // skip empty entries
|
||||
try {
|
||||
list($date, $time, $tz) = explode(',', $changed);
|
||||
[$date, $time, $tz] = explode(',', $changed);
|
||||
$lastChanged = new DateTime("$date $time", new DateTimeZone($tz));
|
||||
$dbLastChanged = new DateTime($entityStatesIndexes[$index]['entStateLastChanged']);
|
||||
if ($lastChanged != $dbLastChanged) {
|
||||
// data has changed, fetch it
|
||||
$new_states = snmp_get_multi(
|
||||
$device,
|
||||
array(
|
||||
[
|
||||
"entStateAdmin.$index",
|
||||
"entStateOper.$index",
|
||||
"entStateUsage.$index",
|
||||
"entStateAlarm.$index",
|
||||
"entStateStandby.$index"
|
||||
),
|
||||
"entStateStandby.$index",
|
||||
],
|
||||
'-OQUse',
|
||||
'ENTITY-STATE-MIB'
|
||||
);
|
||||
@ -69,16 +68,16 @@ if (!empty($entityStatesIndexes)) {
|
||||
$new_states,
|
||||
dbFetchRow(
|
||||
'SELECT * FROM entityState WHERE entity_state_id=?',
|
||||
array($entityStatesIndexes[$index]['entity_state_id'])
|
||||
[$entityStatesIndexes[$index]['entity_state_id']]
|
||||
)
|
||||
);
|
||||
|
||||
if (!empty($update)) {
|
||||
if (! empty($update)) {
|
||||
dbUpdate(
|
||||
$update,
|
||||
'entityState',
|
||||
'entity_state_id=?',
|
||||
array($entityStatesIndexes[$index]['entity_state_id'])
|
||||
[$entityStatesIndexes[$index]['entity_state_id']]
|
||||
);
|
||||
d_echo("Updating $index: ", 'U');
|
||||
d_echo($new_states[$index]);
|
||||
|
@ -16,7 +16,7 @@ function bulk_sensor_snmpget($device, $sensors)
|
||||
{
|
||||
$oid_per_pdu = get_device_oid_limit($device);
|
||||
$sensors = array_chunk($sensors, $oid_per_pdu);
|
||||
$cache = array();
|
||||
$cache = [];
|
||||
foreach ($sensors as $chunk) {
|
||||
$oids = array_map(function ($data) {
|
||||
return $data['sensor_oid'];
|
||||
@ -25,6 +25,7 @@ function bulk_sensor_snmpget($device, $sensors)
|
||||
$multi_response = snmp_get_multi_oid($device, $oids, '-OUQnte');
|
||||
$cache = array_merge($cache, $multi_response);
|
||||
}
|
||||
|
||||
return $cache;
|
||||
}
|
||||
|
||||
@ -35,10 +36,11 @@ function bulk_sensor_snmpget($device, $sensors)
|
||||
*/
|
||||
function sensor_precache($device, $type)
|
||||
{
|
||||
$sensor_cache = array();
|
||||
if (file_exists('includes/polling/sensors/pre-cache/'. $device['os'] .'.inc.php')) {
|
||||
include 'includes/polling/sensors/pre-cache/'. $device['os'] .'.inc.php';
|
||||
$sensor_cache = [];
|
||||
if (file_exists('includes/polling/sensors/pre-cache/' . $device['os'] . '.inc.php')) {
|
||||
include 'includes/polling/sensors/pre-cache/' . $device['os'] . '.inc.php';
|
||||
}
|
||||
|
||||
return $sensor_cache;
|
||||
}
|
||||
|
||||
@ -46,11 +48,11 @@ function poll_sensor($device, $class)
|
||||
{
|
||||
global $agent_sensors;
|
||||
|
||||
$sensors = array();
|
||||
$misc_sensors = array();
|
||||
$all_sensors = array();
|
||||
$sensors = [];
|
||||
$misc_sensors = [];
|
||||
$all_sensors = [];
|
||||
|
||||
foreach (dbFetchRows("SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `device_id` = ?", array($class, $device['device_id'])) as $sensor) {
|
||||
foreach (dbFetchRows("SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `device_id` = ?", [$class, $device['device_id']]) as $sensor) {
|
||||
if ($sensor['poller_type'] == 'agent') {
|
||||
// Agent sensors are polled in the unix-agent
|
||||
} elseif ($sensor['poller_type'] == 'ipmi') {
|
||||
@ -65,33 +67,33 @@ function poll_sensor($device, $class)
|
||||
$sensor_cache = sensor_precache($device, $class);
|
||||
|
||||
foreach ($sensors as $sensor) {
|
||||
echo 'Checking (' . $sensor['poller_type'] . ") $class " . $sensor['sensor_descr'] . '... '.PHP_EOL;
|
||||
echo 'Checking (' . $sensor['poller_type'] . ") $class " . $sensor['sensor_descr'] . '... ' . PHP_EOL;
|
||||
|
||||
if ($sensor['poller_type'] == 'snmp') {
|
||||
$mibdir = null;
|
||||
|
||||
$sensor_value = trim(str_replace('"', '', $snmp_data[$sensor['sensor_oid']]));
|
||||
|
||||
if (file_exists('includes/polling/sensors/'. $class .'/'. $device['os'] .'.inc.php')) {
|
||||
require 'includes/polling/sensors/'. $class .'/'. $device['os'] .'.inc.php';
|
||||
} elseif (file_exists('includes/polling/sensors/'. $class .'/'. $device['os_group'] .'.inc.php')) {
|
||||
require 'includes/polling/sensors/'. $class .'/'. $device['os_group'] .'.inc.php';
|
||||
if (file_exists('includes/polling/sensors/' . $class . '/' . $device['os'] . '.inc.php')) {
|
||||
require 'includes/polling/sensors/' . $class . '/' . $device['os'] . '.inc.php';
|
||||
} elseif (file_exists('includes/polling/sensors/' . $class . '/' . $device['os_group'] . '.inc.php')) {
|
||||
require 'includes/polling/sensors/' . $class . '/' . $device['os_group'] . '.inc.php';
|
||||
}
|
||||
|
||||
if ($class == 'temperature') {
|
||||
preg_match('/[\d\.\-]+/', $sensor_value, $temp_response);
|
||||
if (!empty($temp_response[0])) {
|
||||
if (! empty($temp_response[0])) {
|
||||
$sensor_value = $temp_response[0];
|
||||
}
|
||||
} elseif ($class == 'state') {
|
||||
if (!is_numeric($sensor_value)) {
|
||||
if (! is_numeric($sensor_value)) {
|
||||
$state_value = dbFetchCell(
|
||||
'SELECT `state_value`
|
||||
FROM `state_translations` LEFT JOIN `sensors_to_state_indexes`
|
||||
ON `state_translations`.`state_index_id` = `sensors_to_state_indexes`.`state_index_id`
|
||||
WHERE `sensors_to_state_indexes`.`sensor_id` = ?
|
||||
AND `state_translations`.`state_descr` LIKE ?',
|
||||
array($sensor['sensor_id'], $sensor_value)
|
||||
[$sensor['sensor_id'], $sensor_value]
|
||||
);
|
||||
d_echo('State value of ' . $sensor_value . ' is ' . $state_value . "\n");
|
||||
if (is_numeric($state_value)) {
|
||||
@ -134,7 +136,7 @@ function poll_sensor($device, $class)
|
||||
*/
|
||||
function record_sensor_data($device, $all_sensors)
|
||||
{
|
||||
$supported_sensors = array(
|
||||
$supported_sensors = [
|
||||
'current' => 'A',
|
||||
'frequency' => 'Hz',
|
||||
'runtime' => 'Min',
|
||||
@ -152,12 +154,12 @@ function record_sensor_data($device, $all_sensors)
|
||||
'snr' => 'SNR',
|
||||
'pressure' => 'kPa',
|
||||
'cooling' => 'W',
|
||||
);
|
||||
];
|
||||
|
||||
foreach ($all_sensors as $sensor) {
|
||||
$class = ucfirst($sensor['sensor_class']);
|
||||
$unit = $supported_sensors[$class];
|
||||
$sensor_value = $sensor['new_value'];
|
||||
$class = ucfirst($sensor['sensor_class']);
|
||||
$unit = $supported_sensors[$class];
|
||||
$sensor_value = $sensor['new_value'];
|
||||
$prev_sensor_value = $sensor['sensor_current'];
|
||||
|
||||
if ($sensor_value == -32768 || is_nan($sensor_value)) {
|
||||
@ -183,26 +185,26 @@ function record_sensor_data($device, $all_sensors)
|
||||
|
||||
echo "$sensor_value $unit\n";
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'sensor' => $sensor_value,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array(
|
||||
$tags = [
|
||||
'sensor_class' => $sensor['sensor_class'],
|
||||
'sensor_type' => $sensor['sensor_type'],
|
||||
'sensor_descr' => $sensor['sensor_descr'],
|
||||
'sensor_index' => $sensor['sensor_index'],
|
||||
'rrd_name' => $rrd_name,
|
||||
'rrd_def' => $rrd_def
|
||||
);
|
||||
'rrd_def' => $rrd_def,
|
||||
];
|
||||
data_update($device, 'sensor', $tags, $fields);
|
||||
|
||||
// FIXME also warn when crossing WARN level!
|
||||
if ($sensor['sensor_limit_low'] != '' && $prev_sensor_value > $sensor['sensor_limit_low'] && $sensor_value < $sensor['sensor_limit_low'] && $sensor['sensor_alert'] == 1) {
|
||||
echo 'Alerting for '.$device['hostname'].' '.$sensor['sensor_descr']."\n";
|
||||
echo 'Alerting for ' . $device['hostname'] . ' ' . $sensor['sensor_descr'] . "\n";
|
||||
log_event("$class under threshold: $sensor_value $unit (< {$sensor['sensor_limit_low']} $unit)", $device, $sensor['sensor_class'], 4, $sensor['sensor_id']);
|
||||
} elseif ($sensor['sensor_limit'] != '' && $prev_sensor_value < $sensor['sensor_limit'] && $sensor_value > $sensor['sensor_limit'] && $sensor['sensor_alert'] == 1) {
|
||||
echo 'Alerting for '.$device['hostname'].' '.$sensor['sensor_descr']."\n";
|
||||
echo 'Alerting for ' . $device['hostname'] . ' ' . $sensor['sensor_descr'] . "\n";
|
||||
log_event("$class above threshold: $sensor_value $unit (> {$sensor['sensor_limit']} $unit)", $device, $sensor['sensor_class'], 4, $sensor['sensor_id']);
|
||||
}
|
||||
if ($sensor['sensor_class'] == 'state' && $prev_sensor_value != $sensor_value) {
|
||||
@ -218,7 +220,7 @@ function record_sensor_data($device, $all_sensors)
|
||||
log_event("$class sensor {$sensor['sensor_descr']} has changed from {$trans[$prev_sensor_value]} ($prev_sensor_value) to {$trans[$sensor_value]} ($sensor_value)", $device, $class, 3, $sensor['sensor_id']);
|
||||
}
|
||||
if ($sensor_value != $prev_sensor_value) {
|
||||
dbUpdate(array('sensor_current' => $sensor_value, 'sensor_prev' => $prev_sensor_value, 'lastupdate' => array('NOW()')), 'sensors', "`sensor_class` = ? AND `sensor_id` = ?", array($class, $sensor['sensor_id']));
|
||||
dbUpdate(['sensor_current' => $sensor_value, 'sensor_prev' => $prev_sensor_value, 'lastupdate' => ['NOW()']], 'sensors', "`sensor_class` = ? AND `sensor_id` = ?", [$class, $sensor['sensor_id']]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -254,35 +256,35 @@ function poll_device($device, $force_module = false)
|
||||
}
|
||||
|
||||
$db_ip = null;
|
||||
if (!empty($ip)) {
|
||||
if (! empty($ip)) {
|
||||
if (empty($device['overwrite_ip'])) {
|
||||
echo 'Resolved IP: '.$ip.PHP_EOL;
|
||||
echo 'Resolved IP: ' . $ip . PHP_EOL;
|
||||
} else {
|
||||
echo 'Assigned IP: '.$ip.PHP_EOL;
|
||||
echo 'Assigned IP: ' . $ip . PHP_EOL;
|
||||
}
|
||||
$db_ip = inet_pton($ip);
|
||||
}
|
||||
|
||||
if (!empty($db_ip) && inet6_ntop($db_ip) != inet6_ntop($device['ip'])) {
|
||||
if (! empty($db_ip) && inet6_ntop($db_ip) != inet6_ntop($device['ip'])) {
|
||||
log_event('Device IP changed to ' . $ip, $device, 'system', 3);
|
||||
dbUpdate(array('ip' => $db_ip), 'devices', 'device_id=?', array($device['device_id']));
|
||||
dbUpdate(['ip' => $db_ip], 'devices', 'device_id=?', [$device['device_id']]);
|
||||
}
|
||||
|
||||
if ($os_group = Config::get("os.{$device['os']}.group")) {
|
||||
$device['os_group'] = $os_group;
|
||||
echo ' ('.$device['os_group'].')';
|
||||
echo ' (' . $device['os_group'] . ')';
|
||||
}
|
||||
|
||||
echo PHP_EOL.PHP_EOL;
|
||||
echo PHP_EOL . PHP_EOL;
|
||||
|
||||
unset($poll_update);
|
||||
unset($poll_update_query);
|
||||
unset($poll_separator);
|
||||
$poll_update_array = array();
|
||||
$update_array = array();
|
||||
$poll_update_array = [];
|
||||
$update_array = [];
|
||||
|
||||
$host_rrd = rrd_name($device['hostname'], '', '');
|
||||
if (Config::get('norrd') !== true && !is_dir($host_rrd)) {
|
||||
if (Config::get('norrd') !== true && ! is_dir($host_rrd)) {
|
||||
mkdir($host_rrd);
|
||||
echo "Created directory : $host_rrd\n";
|
||||
}
|
||||
@ -304,9 +306,9 @@ function poll_device($device, $force_module = false)
|
||||
d_echo("OS" . (isset($os_module_status) ? ($os_module_status ? '+ ' : '- ') : ' '));
|
||||
d_echo("Device" . (isset($attribs['poll_' . $module]) ? ($attribs['poll_' . $module] ? '+ ' : '- ') : ' '));
|
||||
if ($force_module === true ||
|
||||
$attribs['poll_'.$module] ||
|
||||
($os_module_status && !isset($attribs['poll_'.$module])) ||
|
||||
($module_status && !isset($os_module_status) && !isset($attribs['poll_' . $module]))) {
|
||||
$attribs['poll_' . $module] ||
|
||||
($os_module_status && ! isset($attribs['poll_' . $module])) ||
|
||||
($module_status && ! isset($os_module_status) && ! isset($attribs['poll_' . $module]))) {
|
||||
$start_memory = memory_get_usage();
|
||||
$module_start = microtime(true);
|
||||
echo "\n#### Load poller module $module ####\n";
|
||||
@ -315,36 +317,36 @@ function poll_device($device, $force_module = false)
|
||||
include "includes/polling/$module.inc.php";
|
||||
} catch (Exception $e) {
|
||||
// isolate module exceptions so they don't disrupt the polling process
|
||||
echo $e->getTraceAsString() .PHP_EOL;
|
||||
echo $e->getTraceAsString() . PHP_EOL;
|
||||
c_echo("%rError in $module module.%n " . $e->getMessage() . PHP_EOL);
|
||||
logfile("Error in $module module. " . $e->getMessage() . PHP_EOL . $e->getTraceAsString() . PHP_EOL);
|
||||
}
|
||||
|
||||
$module_time = microtime(true) - $module_start;
|
||||
$module_mem = (memory_get_usage() - $start_memory);
|
||||
$module_mem = (memory_get_usage() - $start_memory);
|
||||
printf("\n>> Runtime for poller module '%s': %.4f seconds with %s bytes\n", $module, $module_time, $module_mem);
|
||||
printChangedStats();
|
||||
echo "#### Unload poller module $module ####\n\n";
|
||||
|
||||
// save per-module poller stats
|
||||
$tags = array(
|
||||
$tags = [
|
||||
'module' => $module,
|
||||
'rrd_def' => RrdDefinition::make()->addDataset('poller', 'GAUGE', 0),
|
||||
'rrd_name' => array('poller-perf', $module),
|
||||
);
|
||||
$fields = array(
|
||||
'rrd_name' => ['poller-perf', $module],
|
||||
];
|
||||
$fields = [
|
||||
'poller' => $module_time,
|
||||
);
|
||||
];
|
||||
data_update($device, 'poller-perf', $tags, $fields);
|
||||
$os->enableGraph('poller_perf');
|
||||
|
||||
// remove old rrd
|
||||
$oldrrd = rrd_name($device['hostname'], array('poller', $module, 'perf'));
|
||||
$oldrrd = rrd_name($device['hostname'], ['poller', $module, 'perf']);
|
||||
if (is_file($oldrrd)) {
|
||||
unlink($oldrrd);
|
||||
}
|
||||
unset($tags, $fields, $oldrrd);
|
||||
} elseif (isset($attribs['poll_'.$module]) && $attribs['poll_'.$module] == '0') {
|
||||
} elseif (isset($attribs['poll_' . $module]) && $attribs['poll_' . $module] == '0') {
|
||||
echo "Module [ $module ] disabled on host.\n\n";
|
||||
} elseif (isset($os_module_status) && $os_module_status == '0') {
|
||||
echo "Module [ $module ] disabled on os.\n\n";
|
||||
@ -354,40 +356,40 @@ function poll_device($device, $force_module = false)
|
||||
}
|
||||
|
||||
// Ping response
|
||||
if (can_ping_device($attribs) === true && !empty($response['ping_time'])) {
|
||||
$tags = array(
|
||||
if (can_ping_device($attribs) === true && ! empty($response['ping_time'])) {
|
||||
$tags = [
|
||||
'rrd_def' => RrdDefinition::make()->addDataset('ping', 'GAUGE', 0, 65535),
|
||||
);
|
||||
$fields = array(
|
||||
];
|
||||
$fields = [
|
||||
'ping' => $response['ping_time'],
|
||||
);
|
||||
];
|
||||
|
||||
$update_array['last_ping'] = array('NOW()');
|
||||
$update_array['last_ping_timetaken'] = $response['ping_time'];
|
||||
$update_array['last_ping'] = ['NOW()'];
|
||||
$update_array['last_ping_timetaken'] = $response['ping_time'];
|
||||
|
||||
data_update($device, 'ping-perf', $tags, $fields);
|
||||
$os->enableGraph('ping_perf');
|
||||
}
|
||||
|
||||
$device_time = round(microtime(true) - $device_start, 3);
|
||||
$device_time = round(microtime(true) - $device_start, 3);
|
||||
|
||||
// Poller performance
|
||||
if (!empty($device_time)) {
|
||||
$tags = array(
|
||||
if (! empty($device_time)) {
|
||||
$tags = [
|
||||
'rrd_def' => RrdDefinition::make()->addDataset('poller', 'GAUGE', 0),
|
||||
'module' => 'ALL',
|
||||
);
|
||||
$fields = array(
|
||||
];
|
||||
$fields = [
|
||||
'poller' => $device_time,
|
||||
);
|
||||
];
|
||||
|
||||
data_update($device, 'poller-perf', $tags, $fields);
|
||||
$os->enableGraph('poller_modules_perf');
|
||||
}
|
||||
|
||||
if (!$force_module) {
|
||||
if (! $force_module) {
|
||||
// don't update last_polled time if we are forcing a specific module to be polled
|
||||
$update_array['last_polled'] = array('NOW()');
|
||||
$update_array['last_polled'] = ['NOW()'];
|
||||
$update_array['last_polled_timetaken'] = $device_time;
|
||||
|
||||
echo "Enabling graphs: ";
|
||||
@ -402,7 +404,7 @@ function poll_device($device, $force_module = false)
|
||||
echo PHP_EOL;
|
||||
}
|
||||
|
||||
$updated = dbUpdate($update_array, 'devices', '`device_id` = ?', array($device['device_id']));
|
||||
$updated = dbUpdate($update_array, 'devices', '`device_id` = ?', [$device['device_id']]);
|
||||
if ($updated) {
|
||||
d_echo('Updating ' . $device['hostname'] . PHP_EOL);
|
||||
}
|
||||
@ -439,28 +441,29 @@ function poll_device($device, $force_module = false)
|
||||
* @param array $metrics an array of additional metrics to store in the database for alerting
|
||||
* @param string $status This is the current value for alerting
|
||||
*/
|
||||
function update_application($app, $response, $metrics = array(), $status = '')
|
||||
function update_application($app, $response, $metrics = [], $status = '')
|
||||
{
|
||||
if (!is_numeric($app['app_id'])) {
|
||||
if (! is_numeric($app['app_id'])) {
|
||||
d_echo('$app does not contain app_id, could not update');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$data = array(
|
||||
$data = [
|
||||
'app_state' => 'UNKNOWN',
|
||||
'app_status' => $status,
|
||||
'timestamp' => array('NOW()'),
|
||||
);
|
||||
'timestamp' => ['NOW()'],
|
||||
];
|
||||
|
||||
if ($response != '' && $response !== false) {
|
||||
if (Str::contains($response, array(
|
||||
if (Str::contains($response, [
|
||||
'Traceback (most recent call last):',
|
||||
))) {
|
||||
])) {
|
||||
$data['app_state'] = 'ERROR';
|
||||
} elseif (in_array($response, ['OK', 'ERROR', 'LEGACY', 'UNSUPPORTED'])) {
|
||||
$data['app_state'] = $response;
|
||||
} else {
|
||||
# should maybe be 'unknown' as state
|
||||
// should maybe be 'unknown' as state
|
||||
$data['app_state'] = 'OK';
|
||||
}
|
||||
}
|
||||
@ -468,7 +471,7 @@ function update_application($app, $response, $metrics = array(), $status = '')
|
||||
if ($data['app_state'] != $app['app_state']) {
|
||||
$data['app_state_prev'] = $app['app_state'];
|
||||
|
||||
$device = dbFetchRow('SELECT * FROM devices LEFT JOIN applications ON devices.device_id=applications.device_id WHERE applications.app_id=?', array($app['app_id']));
|
||||
$device = dbFetchRow('SELECT * FROM devices LEFT JOIN applications ON devices.device_id=applications.device_id WHERE applications.app_id=?', [$app['app_id']]);
|
||||
|
||||
$app_name = \LibreNMS\Util\StringHelpers::nicecase($app['app_type']);
|
||||
|
||||
@ -494,13 +497,13 @@ function update_application($app, $response, $metrics = array(), $status = '')
|
||||
$event_msg = "has UNKNOWN state";
|
||||
break;
|
||||
}
|
||||
log_event("Application ".$app_name." ".$event_msg, $device, 'application', $severity);
|
||||
log_event("Application " . $app_name . " " . $event_msg, $device, 'application', $severity);
|
||||
}
|
||||
dbUpdate($data, 'applications', '`app_id` = ?', array($app['app_id']));
|
||||
dbUpdate($data, 'applications', '`app_id` = ?', [$app['app_id']]);
|
||||
|
||||
// update metrics
|
||||
if (!empty($metrics)) {
|
||||
$db_metrics = dbFetchRows('SELECT * FROM `application_metrics` WHERE app_id=?', array($app['app_id']));
|
||||
if (! empty($metrics)) {
|
||||
$db_metrics = dbFetchRows('SELECT * FROM `application_metrics` WHERE app_id=?', [$app['app_id']]);
|
||||
$db_metrics = array_by_column($db_metrics, 'metric');
|
||||
|
||||
// allow two level metrics arrays, flatten them and prepend the group name
|
||||
@ -517,34 +520,35 @@ function update_application($app, $response, $metrics = array(), $status = '')
|
||||
foreach ($metrics[$metric_group] as $metric_name => $value) {
|
||||
$carry[$prefix . $metric_name] = $value;
|
||||
}
|
||||
|
||||
return $carry;
|
||||
},
|
||||
array()
|
||||
[]
|
||||
);
|
||||
}
|
||||
|
||||
echo ': ';
|
||||
foreach ($metrics as $metric_name => $value) {
|
||||
if (!isset($db_metrics[$metric_name])) {
|
||||
if (! isset($db_metrics[$metric_name])) {
|
||||
// insert new metric
|
||||
dbInsert(
|
||||
array(
|
||||
[
|
||||
'app_id' => $app['app_id'],
|
||||
'metric' => $metric_name,
|
||||
'value' => $value,
|
||||
),
|
||||
],
|
||||
'application_metrics'
|
||||
);
|
||||
echo '+';
|
||||
} elseif ($value != $db_metrics[$metric_name]['value']) {
|
||||
dbUpdate(
|
||||
array(
|
||||
[
|
||||
'value' => $value,
|
||||
'value_prev' => $db_metrics[$metric_name]['value'],
|
||||
),
|
||||
],
|
||||
'application_metrics',
|
||||
'app_id=? && metric=?',
|
||||
array($app['app_id'], $metric_name)
|
||||
[$app['app_id'], $metric_name]
|
||||
);
|
||||
echo 'U';
|
||||
} else {
|
||||
@ -559,7 +563,7 @@ function update_application($app, $response, $metrics = array(), $status = '')
|
||||
dbDelete(
|
||||
'application_metrics',
|
||||
'app_id=? && metric=?',
|
||||
array($app['app_id'], $db_metric['metric'])
|
||||
[$app['app_id'], $db_metric['metric']]
|
||||
);
|
||||
echo '-';
|
||||
}
|
||||
@ -571,10 +575,10 @@ function update_application($app, $response, $metrics = array(), $status = '')
|
||||
function convert_to_celsius($value)
|
||||
{
|
||||
$value = ($value - 32) / 1.8;
|
||||
|
||||
return sprintf('%.02f', $value);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is to make it easier polling apps. Also to help standardize around JSON.
|
||||
*
|
||||
@ -613,7 +617,7 @@ function convert_to_celsius($value)
|
||||
*
|
||||
* @param array $device
|
||||
* @param string $extend the extend name. For example, if 'zfs' is passed it will be converted to 'nsExtendOutputFull.3.122.102.115'.
|
||||
* @param integer $min_version the minimum version to accept for the returned JSON. default: 1
|
||||
* @param int $min_version the minimum version to accept for the returned JSON. default: 1
|
||||
*
|
||||
* @return array The json output data parsed into an array
|
||||
* @throws JsonAppBlankJsonException
|
||||
@ -625,7 +629,7 @@ function convert_to_celsius($value)
|
||||
*/
|
||||
function json_app_get($device, $extend, $min_version = 1)
|
||||
{
|
||||
$output = snmp_get($device, 'nsExtendOutputFull.'.string_to_oid($extend), '-Oqv', 'NET-SNMP-EXTEND-MIB');
|
||||
$output = snmp_get($device, 'nsExtendOutputFull.' . string_to_oid($extend), '-Oqv', 'NET-SNMP-EXTEND-MIB');
|
||||
|
||||
// make sure we actually get something back
|
||||
if (empty($output)) {
|
||||
@ -646,12 +650,12 @@ function json_app_get($device, $extend, $min_version = 1)
|
||||
}
|
||||
|
||||
// It is a legacy JSON app extend, meaning these are not set
|
||||
if (!isset($parsed_json['error'], $parsed_json['data'], $parsed_json['errorString'], $parsed_json['version'])) {
|
||||
if (! isset($parsed_json['error'], $parsed_json['data'], $parsed_json['errorString'], $parsed_json['version'])) {
|
||||
throw new JsonAppMissingKeysException("Legacy script or extend error, missing one or more required keys.", $output, $parsed_json, -5);
|
||||
}
|
||||
|
||||
if ($parsed_json['version'] < $min_version) {
|
||||
throw new JsonAppWrongVersionException("Script,'".$parsed_json['version']."', older than required version of '$min_version'", $output, $parsed_json, -6);
|
||||
throw new JsonAppWrongVersionException("Script,'" . $parsed_json['version'] . "', older than required version of '$min_version'", $output, $parsed_json, -6);
|
||||
}
|
||||
|
||||
if ($parsed_json['error'] != 0) {
|
||||
@ -678,16 +682,16 @@ function json_app_get($device, $extend, $min_version = 1)
|
||||
*/
|
||||
function data_flatten($array, $prefix = '', $joiner = '_')
|
||||
{
|
||||
$return = array();
|
||||
$return = [];
|
||||
foreach ($array as $key => $value) {
|
||||
if (is_array($value)) {
|
||||
if (strcmp($prefix, '')) {
|
||||
$key=$prefix.$joiner.$key;
|
||||
$key = $prefix . $joiner . $key;
|
||||
}
|
||||
$return = array_merge($return, data_flatten($value, $key, $joiner));
|
||||
} else {
|
||||
if (strcmp($prefix, '')) {
|
||||
$key=$prefix.$joiner.$key;
|
||||
$key = $prefix . $joiner . $key;
|
||||
}
|
||||
$return[$key] = $value;
|
||||
}
|
||||
|
@ -8,12 +8,12 @@ $oid_list = ['hrSystemProcesses.0', 'hrSystemNumUsers.0'];
|
||||
$hrSystem = snmp_get_multi($device, $oid_list, '-OUQs', 'HOST-RESOURCES-MIB');
|
||||
|
||||
if (is_numeric($hrSystem[0]['hrSystemProcesses'])) {
|
||||
$tags = array(
|
||||
$tags = [
|
||||
'rrd_def' => RrdDefinition::make()->addDataset('procs', 'GAUGE', 0),
|
||||
);
|
||||
$fields = array(
|
||||
];
|
||||
$fields = [
|
||||
'procs' => $hrSystem[0]['hrSystemProcesses'],
|
||||
);
|
||||
];
|
||||
|
||||
data_update($device, 'hr_processes', $tags, $fields);
|
||||
|
||||
@ -22,12 +22,12 @@ if (is_numeric($hrSystem[0]['hrSystemProcesses'])) {
|
||||
}
|
||||
|
||||
if (is_numeric($hrSystem[0]['hrSystemNumUsers'])) {
|
||||
$tags = array(
|
||||
'rrd_def' => RrdDefinition::make()->addDataset('users', 'GAUGE', 0)
|
||||
);
|
||||
$fields = array(
|
||||
$tags = [
|
||||
'rrd_def' => RrdDefinition::make()->addDataset('users', 'GAUGE', 0),
|
||||
];
|
||||
$fields = [
|
||||
'users' => $hrSystem[0]['hrSystemNumUsers'],
|
||||
);
|
||||
];
|
||||
|
||||
data_update($device, 'hr_users', $tags, $fields);
|
||||
|
||||
|
@ -52,7 +52,7 @@ use LibreNMS\RRD\RrdDefinition;
|
||||
$data = snmpwalk_cache_oid($device, 'ipSystemStats', null, 'IP-MIB');
|
||||
|
||||
if ($data) {
|
||||
$oids = array(
|
||||
$oids = [
|
||||
'ipSystemStatsInReceives',
|
||||
'ipSystemStatsInHdrErrors',
|
||||
'ipSystemStatsInAddrErrors',
|
||||
@ -69,7 +69,7 @@ if ($data) {
|
||||
'ipSystemStatsOutFragFails',
|
||||
'ipSystemStatsOutFragCreates',
|
||||
'ipSystemStatsOutForwDatagrams',
|
||||
);
|
||||
];
|
||||
|
||||
foreach ($data as $af => $stats) {
|
||||
echo "$af ";
|
||||
@ -95,12 +95,12 @@ if ($data) {
|
||||
$stats['ipSystemStatsOutForwDatagrams'] = $stats['ipSystemStatsHCOutForwDatagrams'];
|
||||
}
|
||||
|
||||
$rrd_name = array('ipSystemStats', $af);
|
||||
$rrd_name = ['ipSystemStats', $af];
|
||||
$rrd_def = new RrdDefinition();
|
||||
$fields = array();
|
||||
$fields = [];
|
||||
|
||||
foreach ($oids as $oid) {
|
||||
$oid_ds = str_replace('ipSystemStats', '', $oid);
|
||||
$oid_ds = str_replace('ipSystemStats', '', $oid);
|
||||
$rrd_def->addDataset($oid_ds, 'COUNTER');
|
||||
if (strstr($stats[$oid], 'No') || strstr($stats[$oid], 'd') || strstr($stats[$oid], 's')) {
|
||||
$stats[$oid] = '0';
|
||||
|
@ -3,7 +3,7 @@
|
||||
use LibreNMS\Config;
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$ipmi_rows = dbFetchRows("SELECT * FROM sensors WHERE device_id = ? AND poller_type='ipmi'", array($device['device_id']));
|
||||
$ipmi_rows = dbFetchRows("SELECT * FROM sensors WHERE device_id = ? AND poller_type='ipmi'", [$device['device_id']]);
|
||||
|
||||
if (is_array($ipmi_rows)) {
|
||||
d_echo($ipmi_rows);
|
||||
@ -32,7 +32,7 @@ if (is_array($ipmi_rows)) {
|
||||
}
|
||||
|
||||
foreach (explode("\n", $results) as $row) {
|
||||
list($desc, $value, $type, $status) = explode(',', $row);
|
||||
[$desc, $value, $type, $status] = explode(',', $row);
|
||||
$desc = trim($desc, ' ');
|
||||
$ipmi_unit_type = Config::get("ipmi_unit.$type");
|
||||
$ipmi_sensor[$desc][$ipmi_unit_type]['value'] = $value;
|
||||
@ -50,27 +50,27 @@ if (is_array($ipmi_rows)) {
|
||||
$rrd_name = get_sensor_rrd_name($device, $ipmisensors);
|
||||
$rrd_def = RrdDefinition::make()->addDataset('sensor', 'GAUGE', -20000, 20000);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'sensor' => $sensor_value,
|
||||
);
|
||||
];
|
||||
|
||||
$tags = array(
|
||||
$tags = [
|
||||
'sensor_class' => $ipmisensors['sensor_class'],
|
||||
'sensor_type' => $ipmisensors['sensor_type'],
|
||||
'sensor_descr' => $ipmisensors['sensor_descr'],
|
||||
'sensor_index' => $ipmisensors['sensor_index'],
|
||||
'rrd_name' => $rrd_name,
|
||||
'rrd_def' => $rrd_def
|
||||
);
|
||||
'rrd_def' => $rrd_def,
|
||||
];
|
||||
data_update($device, 'ipmi', $tags, $fields);
|
||||
|
||||
// FIXME warnings in event & mail not done here yet!
|
||||
dbUpdate(
|
||||
array('sensor_current' => $sensor_value,
|
||||
'lastupdate' => array('NOW()')),
|
||||
['sensor_current' => $sensor_value,
|
||||
'lastupdate' => ['NOW()'], ],
|
||||
'sensors',
|
||||
'poller_type = ? AND sensor_class = ? AND sensor_id = ?',
|
||||
array('ipmi', $ipmisensors['sensor_class'], $ipmisensors['sensor_id'])
|
||||
['ipmi', $ipmisensors['sensor_class'], $ipmisensors['sensor_id']]
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
$vp_rows = dbFetchRows('SELECT * FROM `ports` AS P, `juniAtmVp` AS J WHERE P.`device_id` = ? AND J.port_id = P.port_id', array($device['device_id']));
|
||||
$vp_rows = dbFetchRows('SELECT * FROM `ports` AS P, `juniAtmVp` AS J WHERE P.`device_id` = ? AND J.port_id = P.port_id', [$device['device_id']]);
|
||||
|
||||
if (count($vp_rows)) {
|
||||
$vp_cache = array();
|
||||
$vp_cache = [];
|
||||
$vp_cache = snmpwalk_cache_multi_oid($device, 'juniAtmVpStatsInCells', $vp_cache, 'Juniper-UNI-ATM-MIB', 'junose');
|
||||
$vp_cache = snmpwalk_cache_multi_oid($device, 'juniAtmVpStatsInPackets', $vp_cache, 'Juniper-UNI-ATM-MIB', 'junose');
|
||||
$vp_cache = snmpwalk_cache_multi_oid($device, 'juniAtmVpStatsInPacketOctets', $vp_cache, 'Juniper-UNI-ATM-MIB', 'junose');
|
||||
@ -30,20 +30,20 @@ if (count($vp_rows)) {
|
||||
|
||||
$ifIndex = $vp['ifIndex'];
|
||||
$vp_id = $vp['vp_id'];
|
||||
$oid = $ifIndex .'.'. $vp_id;
|
||||
$oid = $ifIndex . '.' . $vp_id;
|
||||
|
||||
d_echo("$oid ");
|
||||
|
||||
$t_vp = $vp_cache[$oid];
|
||||
|
||||
$vp_update = $t_vp['juniAtmVpStatsInCells'].':'.$t_vp['juniAtmVpStatsOutCells'];
|
||||
$vp_update .= ':'.$t_vp['juniAtmVpStatsInPackets'].':'.$t_vp['juniAtmVpStatsOutPackets'];
|
||||
$vp_update .= ':'.$t_vp['juniAtmVpStatsInPacketOctets'].':'.$t_vp['juniAtmVpStatsOutPacketOctets'];
|
||||
$vp_update .= ':'.$t_vp['juniAtmVpStatsInPacketErrors'].':'.$t_vp['juniAtmVpStatsOutPacketErrors'];
|
||||
$vp_update = $t_vp['juniAtmVpStatsInCells'] . ':' . $t_vp['juniAtmVpStatsOutCells'];
|
||||
$vp_update .= ':' . $t_vp['juniAtmVpStatsInPackets'] . ':' . $t_vp['juniAtmVpStatsOutPackets'];
|
||||
$vp_update .= ':' . $t_vp['juniAtmVpStatsInPacketOctets'] . ':' . $t_vp['juniAtmVpStatsOutPacketOctets'];
|
||||
$vp_update .= ':' . $t_vp['juniAtmVpStatsInPacketErrors'] . ':' . $t_vp['juniAtmVpStatsOutPacketErrors'];
|
||||
|
||||
$rrd_name = array('vp', $ifIndex, $vp_id);
|
||||
$rrd_name = ['vp', $ifIndex, $vp_id];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'incells' => $t_vp['juniAtmVpStatsInCells'],
|
||||
'outcells' => $t_vp['juniAtmVpStatsOutCells'],
|
||||
'inpackets' => $t_vp['juniAtmVpStatsInPackets'],
|
||||
@ -52,7 +52,7 @@ if (count($vp_rows)) {
|
||||
'outpacketoctets' => $t_vp['juniAtmVpStatsOutPacketOctets'],
|
||||
'inpacketerrors' => $t_vp['juniAtmVpStatsInPacketErrors'],
|
||||
'outpacketerrors' => $t_vp['juniAtmVpStatsOutPacketErrors'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('ifIndex', 'vp_id', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'atm-vp', $tags, $fields);
|
||||
|
@ -15,7 +15,7 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
// Define some error messages
|
||||
$error_poolaction = array();
|
||||
$error_poolaction = [];
|
||||
$error_poolaction[0] = "Unused";
|
||||
$error_poolaction[1] = "Reboot";
|
||||
$error_poolaction[2] = "Restart";
|
||||
@ -25,16 +25,16 @@ $error_poolaction[5] = "Go Active";
|
||||
$error_poolaction[6] = "None";
|
||||
|
||||
$component = new LibreNMS\Component();
|
||||
$options['filter']['disabled'] = array('=',0);
|
||||
$options['filter']['ignore'] = array('=',0);
|
||||
$options['filter']['disabled'] = ['=', 0];
|
||||
$options['filter']['ignore'] = ['=', 0];
|
||||
$components = $component->getComponents($device['device_id'], $options);
|
||||
|
||||
// We only care about our device id.
|
||||
$components = $components[$device['device_id']];
|
||||
|
||||
// We extracted all the components for this device, now lets only get the GTM ones.
|
||||
$keep = array();
|
||||
$types = array('f5-gtm-wide', 'f5-gtm-pool');
|
||||
$keep = [];
|
||||
$types = ['f5-gtm-wide', 'f5-gtm-pool'];
|
||||
foreach ($components as $k => $v) {
|
||||
foreach ($types as $type) {
|
||||
if ($v['type'] == $type) {
|
||||
@ -63,7 +63,7 @@ if (count($components > 0)) {
|
||||
$UID = $array['UID'];
|
||||
$label = $array['label'];
|
||||
$hash = $array['hash'];
|
||||
$rrd_name = array($type, $label, $hash);
|
||||
$rrd_name = [$type, $label, $hash];
|
||||
|
||||
if ($type == 'f5-gtm-wide') {
|
||||
$rrd_def = RrdDefinition::make()
|
||||
@ -71,32 +71,32 @@ if (count($components > 0)) {
|
||||
->addDataset('resolved', 'COUNTER', 0)
|
||||
->addDataset('dropped', 'COUNTER', 0);
|
||||
|
||||
$fields = array(
|
||||
'requests' => $f5_stats['gtmWideIPStatEntryRequests']['1.3.6.1.4.1.3375.2.3.12.2.3.1.2.'.$UID],
|
||||
'resolved' => $f5_stats['gtmWideIPStatEntryResolved']['1.3.6.1.4.1.3375.2.3.12.2.3.1.3.'.$UID],
|
||||
'dropped' => $f5_stats['gtmWideIPStatEntryDropped']['1.3.6.1.4.1.3375.2.3.12.2.3.1.7.'.$UID],
|
||||
);
|
||||
$fields = [
|
||||
'requests' => $f5_stats['gtmWideIPStatEntryRequests']['1.3.6.1.4.1.3375.2.3.12.2.3.1.2.' . $UID],
|
||||
'resolved' => $f5_stats['gtmWideIPStatEntryResolved']['1.3.6.1.4.1.3375.2.3.12.2.3.1.3.' . $UID],
|
||||
'dropped' => $f5_stats['gtmWideIPStatEntryDropped']['1.3.6.1.4.1.3375.2.3.12.2.3.1.7.' . $UID],
|
||||
];
|
||||
|
||||
// Let's print some debugging info.
|
||||
d_echo("\n\nComponent: ".$key."\n");
|
||||
d_echo(" Type: ".$type."\n");
|
||||
d_echo(" Label: ".$label."\n");
|
||||
d_echo("\n\nComponent: " . $key . "\n");
|
||||
d_echo(" Type: " . $type . "\n");
|
||||
d_echo(" Label: " . $label . "\n");
|
||||
} elseif ($type == 'f5-gtm-pool') {
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('resolved', 'COUNTER', 0)
|
||||
->addDataset('dropped', 'COUNTER', 0);
|
||||
|
||||
$fields = array(
|
||||
'resolved' => $f5_stats['gtmPoolEntryResolved']['1.3.6.1.4.1.3375.2.3.6.2.3.1.2.'.$UID],
|
||||
'dropped' => $f5_stats['gtmPoolEntryDropped']['1.3.6.1.4.1.3375.2.3.6.2.3.1.5.'.$UID],
|
||||
);
|
||||
$fields = [
|
||||
'resolved' => $f5_stats['gtmPoolEntryResolved']['1.3.6.1.4.1.3375.2.3.6.2.3.1.2.' . $UID],
|
||||
'dropped' => $f5_stats['gtmPoolEntryDropped']['1.3.6.1.4.1.3375.2.3.6.2.3.1.5.' . $UID],
|
||||
];
|
||||
|
||||
// Let's print some debugging info.
|
||||
d_echo("\n\nComponent: ".$key."\n");
|
||||
d_echo(" Type: ".$type."\n");
|
||||
d_echo(" Label: ".$label."\n");
|
||||
d_echo("\n\nComponent: " . $key . "\n");
|
||||
d_echo(" Type: " . $type . "\n");
|
||||
d_echo(" Label: " . $label . "\n");
|
||||
} else {
|
||||
d_echo("Type is unknown: ".$type."\n");
|
||||
d_echo("Type is unknown: " . $type . "\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
// Define some error messages
|
||||
$error_poolaction = array();
|
||||
$error_poolaction = [];
|
||||
$error_poolaction[0] = "Unused";
|
||||
$error_poolaction[1] = "Reboot";
|
||||
$error_poolaction[2] = "Restart";
|
||||
@ -24,16 +24,16 @@ $error_poolaction[5] = "Go Active";
|
||||
$error_poolaction[6] = "None";
|
||||
|
||||
$component = new LibreNMS\Component();
|
||||
$options['filter']['disabled'] = array('=',0);
|
||||
$options['filter']['ignore'] = array('=',0);
|
||||
$options['filter']['disabled'] = ['=', 0];
|
||||
$options['filter']['ignore'] = ['=', 0];
|
||||
$components = $component->getComponents($device['device_id'], $options);
|
||||
|
||||
// We only care about our device id.
|
||||
$components = $components[$device['device_id']];
|
||||
|
||||
// We extracted all the components for this device, now lets only get the LTM ones.
|
||||
$keep = array();
|
||||
$types = array('f5-ltm-vs', 'f5-ltm-bwc', 'f5-ltm-pool', 'f5-ltm-poolmember');
|
||||
$keep = [];
|
||||
$types = ['f5-ltm-vs', 'f5-ltm-bwc', 'f5-ltm-pool', 'f5-ltm-poolmember'];
|
||||
foreach ($components as $k => $v) {
|
||||
foreach ($types as $type) {
|
||||
if ($v['type'] == $type) {
|
||||
@ -82,7 +82,7 @@ if (count($components > 0)) {
|
||||
$UID = $array['UID'];
|
||||
$label = $array['label'];
|
||||
$hash = $array['hash'];
|
||||
$rrd_name = array($type, $label, $hash);
|
||||
$rrd_name = [$type, $label, $hash];
|
||||
|
||||
if ($type == 'f5-ltm-bwc') {
|
||||
$rrd_def = RrdDefinition::make()
|
||||
@ -91,17 +91,17 @@ if (count($components > 0)) {
|
||||
->addDataset('bytesdropped', 'COUNTER', 0)
|
||||
->addDataset('bytespassed', 'COUNTER', 0);
|
||||
|
||||
$fields = array(
|
||||
'pktsin' => $f5_stats['ltmBwcEntryPktsin']['1.3.6.1.4.1.3375.2.2.13.1.3.1.7.'.$UID],
|
||||
'bytesin' => $f5_stats['ltmBwcEntryBytesin']['1.3.6.1.4.1.3375.2.2.13.1.3.1.4.'.$UID],
|
||||
'bytesdropped' => $f5_stats['ltmBwcEntryBytesDropped']['1.3.6.1.4.1.3375.2.2.13.1.3.1.6.'.$UID],
|
||||
'bytespassed' => $f5_stats['ltmBwcEntryBytesPassed']['1.3.6.1.4.1.3375.2.2.13.1.3.1.5.'.$UID],
|
||||
);
|
||||
$fields = [
|
||||
'pktsin' => $f5_stats['ltmBwcEntryPktsin']['1.3.6.1.4.1.3375.2.2.13.1.3.1.7.' . $UID],
|
||||
'bytesin' => $f5_stats['ltmBwcEntryBytesin']['1.3.6.1.4.1.3375.2.2.13.1.3.1.4.' . $UID],
|
||||
'bytesdropped' => $f5_stats['ltmBwcEntryBytesDropped']['1.3.6.1.4.1.3375.2.2.13.1.3.1.6.' . $UID],
|
||||
'bytespassed' => $f5_stats['ltmBwcEntryBytesPassed']['1.3.6.1.4.1.3375.2.2.13.1.3.1.5.' . $UID],
|
||||
];
|
||||
|
||||
// Let's print some debugging info.
|
||||
d_echo("\n\nComponent: ".$key."\n");
|
||||
d_echo(" Type: ".$type."\n");
|
||||
d_echo(" Label: ".$label."\n");
|
||||
d_echo("\n\nComponent: " . $key . "\n");
|
||||
d_echo(" Type: " . $type . "\n");
|
||||
d_echo(" Label: " . $label . "\n");
|
||||
} elseif ($type == 'f5-ltm-vs') {
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('pktsin', 'COUNTER', 0)
|
||||
@ -110,25 +110,25 @@ if (count($components > 0)) {
|
||||
->addDataset('bytesout', 'COUNTER', 0)
|
||||
->addDataset('totconns', 'COUNTER', 0);
|
||||
|
||||
$fields = array(
|
||||
'pktsin' => $f5_stats['ltmVirtualServStatEntryPktsin']['1.3.6.1.4.1.3375.2.2.10.2.3.1.6.'.$UID],
|
||||
'pktsout' => $f5_stats['ltmVirtualServStatEntryPktsout']['1.3.6.1.4.1.3375.2.2.10.2.3.1.8.'.$UID],
|
||||
'bytesin' => $f5_stats['ltmVirtualServStatEntryBytesin']['1.3.6.1.4.1.3375.2.2.10.2.3.1.7.'.$UID],
|
||||
'bytesout' => $f5_stats['ltmVirtualServStatEntryBytesout']['1.3.6.1.4.1.3375.2.2.10.2.3.1.9.'.$UID],
|
||||
'totconns' => $f5_stats['ltmVirtualServStatEntryTotconns']['1.3.6.1.4.1.3375.2.2.10.2.3.1.11.'.$UID],
|
||||
);
|
||||
$fields = [
|
||||
'pktsin' => $f5_stats['ltmVirtualServStatEntryPktsin']['1.3.6.1.4.1.3375.2.2.10.2.3.1.6.' . $UID],
|
||||
'pktsout' => $f5_stats['ltmVirtualServStatEntryPktsout']['1.3.6.1.4.1.3375.2.2.10.2.3.1.8.' . $UID],
|
||||
'bytesin' => $f5_stats['ltmVirtualServStatEntryBytesin']['1.3.6.1.4.1.3375.2.2.10.2.3.1.7.' . $UID],
|
||||
'bytesout' => $f5_stats['ltmVirtualServStatEntryBytesout']['1.3.6.1.4.1.3375.2.2.10.2.3.1.9.' . $UID],
|
||||
'totconns' => $f5_stats['ltmVirtualServStatEntryTotconns']['1.3.6.1.4.1.3375.2.2.10.2.3.1.11.' . $UID],
|
||||
];
|
||||
|
||||
// Let's print some debugging info.
|
||||
d_echo("\n\nComponent: ".$key."\n");
|
||||
d_echo(" Type: ".$type."\n");
|
||||
d_echo(" Label: ".$label."\n");
|
||||
d_echo("\n\nComponent: " . $key . "\n");
|
||||
d_echo(" Type: " . $type . "\n");
|
||||
d_echo(" Label: " . $label . "\n");
|
||||
|
||||
// Let's check the status.
|
||||
$array['state'] = $f5_stats['ltmVsStatusEntryState']['1.3.6.1.4.1.3375.2.2.10.13.2.1.2.'.$UID];
|
||||
$array['state'] = $f5_stats['ltmVsStatusEntryState']['1.3.6.1.4.1.3375.2.2.10.13.2.1.2.' . $UID];
|
||||
if (($array['state'] == 2) || ($array['state'] == 3)) {
|
||||
// The Virtual Server is unavailable.
|
||||
$array['status'] = 2;
|
||||
$array['error'] = $f5_stats['ltmVsStatusEntryMsg']['1.3.6.1.4.1.3375.2.2.10.13.2.1.5.'.$UID];
|
||||
$array['error'] = $f5_stats['ltmVsStatusEntryMsg']['1.3.6.1.4.1.3375.2.2.10.13.2.1.5.' . $UID];
|
||||
} else {
|
||||
// All is good.
|
||||
$array['status'] = 0;
|
||||
@ -139,26 +139,26 @@ if (count($components > 0)) {
|
||||
->addDataset('minup', 'GAUGE', 0)
|
||||
->addDataset('currup', 'GAUGE', 0);
|
||||
|
||||
$array['minup'] = $f5_stats['ltmPoolEntryMinup']['1.3.6.1.4.1.3375.2.2.5.1.2.1.4.'.$UID];
|
||||
$array['minupstatus'] = $f5_stats['ltmPoolEntryMinupstatus']['1.3.6.1.4.1.3375.2.2.5.1.2.1.5.'.$UID];
|
||||
$array['currentup'] = $f5_stats['ltmPoolEntryCurrentup']['1.3.6.1.4.1.3375.2.2.5.1.2.1.8.'.$UID];
|
||||
$array['minupaction'] = $f5_stats['ltmPoolEntryMinupaction']['1.3.6.1.4.1.3375.2.2.5.1.2.1.6.'.$UID];
|
||||
$array['minup'] = $f5_stats['ltmPoolEntryMinup']['1.3.6.1.4.1.3375.2.2.5.1.2.1.4.' . $UID];
|
||||
$array['minupstatus'] = $f5_stats['ltmPoolEntryMinupstatus']['1.3.6.1.4.1.3375.2.2.5.1.2.1.5.' . $UID];
|
||||
$array['currentup'] = $f5_stats['ltmPoolEntryCurrentup']['1.3.6.1.4.1.3375.2.2.5.1.2.1.8.' . $UID];
|
||||
$array['minupaction'] = $f5_stats['ltmPoolEntryMinupaction']['1.3.6.1.4.1.3375.2.2.5.1.2.1.6.' . $UID];
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'minup' => $array['minup'],
|
||||
'currup' => $array['currentup'],
|
||||
);
|
||||
];
|
||||
|
||||
// Let's print some debugging info.
|
||||
d_echo("\n\nComponent: ".$key."\n");
|
||||
d_echo(" Type: ".$type."\n");
|
||||
d_echo(" Label: ".$label."\n");
|
||||
d_echo("\n\nComponent: " . $key . "\n");
|
||||
d_echo(" Type: " . $type . "\n");
|
||||
d_echo(" Label: " . $label . "\n");
|
||||
|
||||
// If we have less pool members than the minimum, we should error.
|
||||
if ($array['currentup'] < $array['minup']) {
|
||||
// Danger Will Robinson... We dont have enough Pool Members!
|
||||
$array['status'] = 2;
|
||||
$array['error'] = "Minimum Pool Members not met. Action taken: ".$error_poolaction[$array['minupaction']];
|
||||
$array['error'] = "Minimum Pool Members not met. Action taken: " . $error_poolaction[$array['minupaction']];
|
||||
} else {
|
||||
// All is good.
|
||||
$array['status'] = 0;
|
||||
@ -172,35 +172,35 @@ if (count($components > 0)) {
|
||||
->addDataset('bytesout', 'COUNTER', 0)
|
||||
->addDataset('totconns', 'COUNTER', 0);
|
||||
|
||||
$array['state'] = $f5_stats['ltmPoolMbrStatusEntryState']['1.3.6.1.4.1.3375.2.2.5.6.2.1.5.'.$UID];
|
||||
$array['available'] = $f5_stats['ltmPoolMbrStatusEntryAvail']['1.3.6.1.4.1.3375.2.2.5.6.2.1.6.'.$UID];
|
||||
$array['state'] = $f5_stats['ltmPoolMbrStatusEntryState']['1.3.6.1.4.1.3375.2.2.5.6.2.1.5.' . $UID];
|
||||
$array['available'] = $f5_stats['ltmPoolMbrStatusEntryAvail']['1.3.6.1.4.1.3375.2.2.5.6.2.1.6.' . $UID];
|
||||
|
||||
$fields = array(
|
||||
'pktsin' => $f5_stats['ltmPoolMemberStatEntryPktsin']['1.3.6.1.4.1.3375.2.2.5.4.3.1.5.'.$UID],
|
||||
'pktsout' => $f5_stats['ltmPoolMemberStatEntryPktsout']['1.3.6.1.4.1.3375.2.2.5.4.3.1.7.'.$UID],
|
||||
'bytesin' => $f5_stats['ltmPoolMemberStatEntryBytesin']['1.3.6.1.4.1.3375.2.2.5.4.3.1.6.'.$UID],
|
||||
'bytesout' => $f5_stats['ltmPoolMemberStatEntryBytesout']['1.3.6.1.4.1.3375.2.2.5.4.3.1.8.'.$UID],
|
||||
'totconns' => $f5_stats['ltmPoolMemberStatEntryTotconns']['1.3.6.1.4.1.3375.2.2.5.4.3.1.10.'.$UID],
|
||||
);
|
||||
$fields = [
|
||||
'pktsin' => $f5_stats['ltmPoolMemberStatEntryPktsin']['1.3.6.1.4.1.3375.2.2.5.4.3.1.5.' . $UID],
|
||||
'pktsout' => $f5_stats['ltmPoolMemberStatEntryPktsout']['1.3.6.1.4.1.3375.2.2.5.4.3.1.7.' . $UID],
|
||||
'bytesin' => $f5_stats['ltmPoolMemberStatEntryBytesin']['1.3.6.1.4.1.3375.2.2.5.4.3.1.6.' . $UID],
|
||||
'bytesout' => $f5_stats['ltmPoolMemberStatEntryBytesout']['1.3.6.1.4.1.3375.2.2.5.4.3.1.8.' . $UID],
|
||||
'totconns' => $f5_stats['ltmPoolMemberStatEntryTotconns']['1.3.6.1.4.1.3375.2.2.5.4.3.1.10.' . $UID],
|
||||
];
|
||||
|
||||
// Let's print some debugging info.
|
||||
d_echo("\n\nComponent: ".$key."\n");
|
||||
d_echo(" Type: ".$type."\n");
|
||||
d_echo(" Label: ".$label."\n");
|
||||
d_echo("\n\nComponent: " . $key . "\n");
|
||||
d_echo(" Type: " . $type . "\n");
|
||||
d_echo(" Label: " . $label . "\n");
|
||||
|
||||
// If available and bad state
|
||||
// 0 = None, 1 = Green, 2 = Yellow, 3 = Red, 4 = Blue
|
||||
if (($array['available'] == 1) && ($array['state'] == 3)) {
|
||||
// Warning Alarm, the pool member is down.
|
||||
$array['status'] = 1;
|
||||
$array['error'] = "Pool Member is Down: ".$f5_stats['ltmPoolMbrStatusEntryMsg']['1.3.6.1.4.1.3375.2.2.5.6.2.1.8.'.$UID];
|
||||
$array['error'] = "Pool Member is Down: " . $f5_stats['ltmPoolMbrStatusEntryMsg']['1.3.6.1.4.1.3375.2.2.5.6.2.1.8.' . $UID];
|
||||
} else {
|
||||
// All is good.
|
||||
$array['status'] = 0;
|
||||
$array['error'] = '';
|
||||
}
|
||||
} else {
|
||||
d_echo("Type is unknown: ".$type."\n");
|
||||
d_echo("Type is unknown: " . $type . "\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -6,13 +6,13 @@ echo 'MEF Links: ';
|
||||
* Get a list of all the known MEF Links for this host.
|
||||
*/
|
||||
|
||||
$db_info_list = dbFetchRows('SELECT id, mefID, mefType, mefIdent, mefMTU, mefAdmState, mefRowState FROM mefinfo WHERE device_id = ?', array($device['device_id']));
|
||||
$db_info_list = dbFetchRows('SELECT id, mefID, mefType, mefIdent, mefMTU, mefAdmState, mefRowState FROM mefinfo WHERE device_id = ?', [$device['device_id']]);
|
||||
|
||||
if (!empty($db_info_list)) {
|
||||
$current_mefinfo = snmpwalk_cache_multi_oid($device, 'MefServiceEvcCfgEntry', array(), 'MEF-UNI-EVC-MIB');
|
||||
if (! empty($db_info_list)) {
|
||||
$current_mefinfo = snmpwalk_cache_multi_oid($device, 'MefServiceEvcCfgEntry', [], 'MEF-UNI-EVC-MIB');
|
||||
|
||||
foreach ($db_info_list as $db_info) {
|
||||
$mef_info = array();
|
||||
$mef_info = [];
|
||||
|
||||
$mef_info['mefType'] = $current_mefinfo[$db_info['mefID']]['mefServiceEvcCfgServiceType'];
|
||||
$mef_info['mefIdent'] = $current_mefinfo[$db_info['mefID']]['mefServiceEvcCfgIdentifier'];
|
||||
@ -37,7 +37,7 @@ if (!empty($db_info_list)) {
|
||||
*/
|
||||
if ($mef_info[$property] != $db_info[$property]) {
|
||||
// FIXME - this should loop building a query and then run the query after the loop (bad geert!)
|
||||
dbUpdate(array($property => mres($mef_info[$property])), 'mefinfo', '`id` = ?', array($db_info['id']));
|
||||
dbUpdate([$property => mres($mef_info[$property])], 'mefinfo', '`id` = ?', [$db_info['id']]);
|
||||
if ($db_info['mefIdent'] != null) {
|
||||
log_event("MEF Link : " . mres($db_info['mefIdent']) . ' (' . preg_replace('/^mef/', '', mres($db_info[$property])) . ') -> ' . $mef_info[$property], $device);
|
||||
}
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
use LibreNMS\RRD\RrdDefinition;
|
||||
|
||||
foreach (dbFetchRows('SELECT * FROM mempools WHERE device_id = ?', array($device['device_id'])) as $mempool) {
|
||||
echo 'Mempool '.$mempool['mempool_descr'].': ';
|
||||
foreach (dbFetchRows('SELECT * FROM mempools WHERE device_id = ?', [$device['device_id']]) as $mempool) {
|
||||
echo 'Mempool ' . $mempool['mempool_descr'] . ': ';
|
||||
|
||||
$mempool_type = $mempool['mempool_type'];
|
||||
$mempool_index = $mempool['mempool_index'];
|
||||
@ -19,37 +19,37 @@ foreach (dbFetchRows('SELECT * FROM mempools WHERE device_id = ?', array($device
|
||||
$percent = 0;
|
||||
}
|
||||
|
||||
echo $percent.'% ';
|
||||
echo $percent . '% ';
|
||||
|
||||
$rrd_name = array('mempool', $mempool_type, $mempool_index);
|
||||
$rrd_name = ['mempool', $mempool_type, $mempool_index];
|
||||
$rrd_def = RrdDefinition::make()
|
||||
->addDataset('used', 'GAUGE', 0)
|
||||
->addDataset('free', 'GAUGE', 0);
|
||||
|
||||
$fields = array(
|
||||
$fields = [
|
||||
'used' => $mempool['used'],
|
||||
'free' => $mempool['free'],
|
||||
);
|
||||
];
|
||||
|
||||
$tags = compact('mempool_type', 'mempool_index', 'rrd_name', 'rrd_def');
|
||||
data_update($device, 'mempool', $tags, $fields);
|
||||
|
||||
$mempool['state'] = array(
|
||||
'mempool_used' => $mempool['used'],
|
||||
'mempool_perc' => $percent,
|
||||
'mempool_free' => $mempool['free'],
|
||||
'mempool_total' => $mempool['total'],
|
||||
);
|
||||
$mempool['state'] = [
|
||||
'mempool_used' => $mempool['used'],
|
||||
'mempool_perc' => $percent,
|
||||
'mempool_free' => $mempool['free'],
|
||||
'mempool_total' => $mempool['total'],
|
||||
];
|
||||
|
||||
if (!empty($mempool['largestfree'])) {
|
||||
if (! empty($mempool['largestfree'])) {
|
||||
$mempool['state']['mempool_largestfree'] = set_numeric($mempool['largestfree']);
|
||||
}
|
||||
|
||||
if (!empty($mempool['lowestfree'])) {
|
||||
if (! empty($mempool['lowestfree'])) {
|
||||
$mempool['state']['mempool_lowestfree'] = set_numeric($mempool['lowestfree']);
|
||||
}
|
||||
|
||||
dbUpdate($mempool['state'], 'mempools', '`mempool_id` = ?', array($mempool['mempool_id']));
|
||||
dbUpdate($mempool['state'], 'mempools', '`mempool_id` = ?', [$mempool['mempool_id']]);
|
||||
|
||||
echo "\n";
|
||||
}//end foreach
|
||||
|
@ -22,7 +22,6 @@
|
||||
* @copyright 2017 Neil Lathwood
|
||||
* @author Neil Lathwood <neil@lathwood.co.uk>
|
||||
*/
|
||||
|
||||
if ($device['os'] === '3com') {
|
||||
echo '3COM:';
|
||||
|
||||
|
@ -22,7 +22,6 @@
|
||||
* @copyright 2016 Neil Lathwood
|
||||
* @author Neil Lathwood <neil@lathwood.co.uk>
|
||||
*/
|
||||
|
||||
if ($device['os'] === 'acos') {
|
||||
echo 'ACOS: ';
|
||||
$mempool['used'] = snmp_get($device, 'axSysMemoryUsage.0', '-Ovq', 'A10-AX-MIB');
|
||||
|
@ -12,14 +12,12 @@
|
||||
* the source code distribution for details.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
/ ADTRAN-AOSCPU::adGenAOSMemPool.0 = Gauge32: 67108863
|
||||
/ ADTRAN-AOSCPU::adGenAOSHeapSize.0 = Gauge32: 39853040
|
||||
/ ADTRAN-AOSCPU::adGenAOSHeapFree.0 = Gauge32: 25979888
|
||||
*/
|
||||
|
||||
|
||||
$mempool['used'] = snmp_get($device, 'adGenAOSHeapSize.0', '-OvQ', 'ADTRAN-AOSCPU');
|
||||
$mempool['used'] = snmp_get($device, 'adGenAOSHeapSize.0', '-OvQ', 'ADTRAN-AOSCPU');
|
||||
$mempool['total'] = snmp_get($device, 'adGenAOSMemPool.0', '-OvQ', 'ADTRAN-AOSCPU');
|
||||
$mempool['free'] = ($mempool['total'] - $mempool['used']);
|
||||
$mempool['free'] = ($mempool['total'] - $mempool['used']);
|
||||
|
@ -20,7 +20,7 @@ $perc = ($total / $free) * 100;
|
||||
$used = ($total - $free);
|
||||
if (is_numeric($used) && is_numeric($free) && is_numeric($perc)) {
|
||||
$mempool['total'] = $total;
|
||||
$mempool['free'] = $free;
|
||||
$mempool['used'] = $used;
|
||||
$mempool['perc'] = $perc;
|
||||
$mempool['free'] = $free;
|
||||
$mempool['used'] = $used;
|
||||
$mempool['perc'] = $perc;
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
$mempool['units'] = '1';
|
||||
|
||||
$mempool['total'] = snmp_get($device, 'systemHardwareMemorySize.0', '-OvQ', 'ALCATEL-IND1-SYSTEM-MIB');
|
||||
$percent = snmp_get($device, 'healthDeviceMemoryLatest.0', '-OvQ', 'ALCATEL-IND1-HEALTH-MIB');
|
||||
$percent = snmp_get($device, 'healthDeviceMemoryLatest.0', '-OvQ', 'ALCATEL-IND1-HEALTH-MIB');
|
||||
|
||||
$mempool['used'] = ($mempool['total'] * ($percent / 100));
|
||||
$mempool['free'] = ($mempool['total'] - $mempool['used']);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user