Commit version 24.12.13800
This commit is contained in:
@ -5,9 +5,9 @@
|
||||
*
|
||||
* This file is part of Observium.
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage poller
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited
|
||||
* @package observium
|
||||
* @subpackage poller
|
||||
* @copyright (C) Adam Armstrong
|
||||
*
|
||||
*/
|
||||
|
||||
@ -115,174 +115,167 @@ unwanted.queries=0
|
||||
unwanted.replies=0
|
||||
*/
|
||||
|
||||
if (!empty($agent_data['app']['unbound']))
|
||||
{
|
||||
$app_id = discover_app($device, 'unbound');
|
||||
if (!empty($agent_data['app']['unbound'])) {
|
||||
$app_id = discover_app($device, 'unbound');
|
||||
|
||||
foreach (explode("\n",$agent_data['app']['unbound']) as $line)
|
||||
{
|
||||
list($key,$value) = explode("=",$line,2);
|
||||
$unbound[$key] = $value;
|
||||
}
|
||||
|
||||
while (1)
|
||||
{
|
||||
if (!isset($threadnum))
|
||||
{
|
||||
$thread = 'total';
|
||||
$threadnum = -1; # Incremented below, we want to check thread0 next, so we put this to -1. Yes, ugly... ;-(
|
||||
}
|
||||
else
|
||||
{
|
||||
$thread = 'thread' . $threadnum;
|
||||
foreach (explode("\n", $agent_data['app']['unbound']) as $line) {
|
||||
[$key, $value] = explode("=", $line, 2);
|
||||
$unbound[$key] = $value;
|
||||
}
|
||||
|
||||
if (isset($unbound["$thread.num.queries"]))
|
||||
{
|
||||
rrdtool_update_ng($device, 'unbound-thread', array(
|
||||
'numQueries' => $unbound["$thread.num.queries"],
|
||||
'cacheHits' => $unbound["$thread.num.cachehits"],
|
||||
'cacheMiss' => $unbound["$thread.num.cachemiss"],
|
||||
'prefetch' => $unbound["$thread.num.prefetch"],
|
||||
'recursiveReplies' => $unbound["$thread.num.recursivereplies"],
|
||||
'reqListAvg' => $unbound["$thread.requestlist.avg"],
|
||||
'reqListMax' => $unbound["$thread.requestlist.max"],
|
||||
'reqListOverwritten' => $unbound["$thread.requestlist.overwritten"],
|
||||
'reqListExceeded' => $unbound["$thread.requestlist.exceeded"],
|
||||
'reqListCurrentAll' => $unbound["$thread.requestlist.current.all"],
|
||||
'reqListCurrentUser' => $unbound["$thread.requestlist.current.user"],
|
||||
'recursionTimeAvg' => $unbound["$thread.recursion.time.avg"],
|
||||
'recursionTimeMedian' => $unbound["$thread.recursion.time.median"],
|
||||
), "$app_id-$thread");
|
||||
while (1) {
|
||||
if (!isset($threadnum)) {
|
||||
$thread = 'total';
|
||||
$threadnum = -1; # Incremented below, we want to check thread0 next, so we put this to -1. Yes, ugly... ;-(
|
||||
} else {
|
||||
$thread = 'thread' . $threadnum;
|
||||
}
|
||||
|
||||
$threadnum++;
|
||||
} else {
|
||||
break;
|
||||
if (isset($unbound["$thread.num.queries"])) {
|
||||
rrdtool_update_ng($device, 'unbound-thread', [
|
||||
'numQueries' => $unbound["$thread.num.queries"],
|
||||
'cacheHits' => $unbound["$thread.num.cachehits"],
|
||||
'cacheMiss' => $unbound["$thread.num.cachemiss"],
|
||||
'prefetch' => $unbound["$thread.num.prefetch"],
|
||||
'recursiveReplies' => $unbound["$thread.num.recursivereplies"],
|
||||
'reqListAvg' => $unbound["$thread.requestlist.avg"],
|
||||
'reqListMax' => $unbound["$thread.requestlist.max"],
|
||||
'reqListOverwritten' => $unbound["$thread.requestlist.overwritten"],
|
||||
'reqListExceeded' => $unbound["$thread.requestlist.exceeded"],
|
||||
'reqListCurrentAll' => $unbound["$thread.requestlist.current.all"],
|
||||
'reqListCurrentUser' => $unbound["$thread.requestlist.current.user"],
|
||||
'recursionTimeAvg' => $unbound["$thread.recursion.time.avg"],
|
||||
'recursionTimeMedian' => $unbound["$thread.recursion.time.median"],
|
||||
], "$app_id-$thread");
|
||||
|
||||
$threadnum++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset($threadnum);
|
||||
unset($threadnum);
|
||||
|
||||
rrdtool_update_ng($device, 'unbound-memory', array(
|
||||
'memTotal' => $unbound['mem.total.sbrk'],
|
||||
'memCacheRRset' => $unbound['mem.cache.rrset'],
|
||||
'memCacheMessage' => $unbound['mem.cache.message'],
|
||||
'memModIterator' => $unbound['mem.mod.iterator'],
|
||||
'memModValidator' => $unbound['mem.mod.validator'],
|
||||
), $app_id);
|
||||
rrdtool_update_ng($device, 'unbound-memory', [
|
||||
'memTotal' => $unbound['mem.total.sbrk'],
|
||||
'memCacheRRset' => $unbound['mem.cache.rrset'],
|
||||
'memCacheMessage' => $unbound['mem.cache.message'],
|
||||
'memModIterator' => $unbound['mem.mod.iterator'],
|
||||
'memModValidator' => $unbound['mem.mod.validator'],
|
||||
], $app_id);
|
||||
|
||||
$data = array(
|
||||
# We return 0 in the following entries because unbound does not show these values if they are 0.
|
||||
# They're not unknown (U) in this case, so it's ok to return 0.
|
||||
'qTypeA' => (is_numeric($unbound['num.query.type.A']) ? $unbound['num.query.type.A'] : 0),
|
||||
'qTypeA6' => (is_numeric($unbound['num.query.type.A6']) ? $unbound['num.query.type.A6'] : 0),
|
||||
'qTypeAAAA' => (is_numeric($unbound['num.query.type.AAAA']) ? $unbound['num.query.type.AAAA'] : 0),
|
||||
'qTypeAFSDB' => (is_numeric($unbound['num.query.type.AFSDB']) ? $unbound['num.query.type.AFSDB'] : 0),
|
||||
'qTypeANY' => (is_numeric($unbound['num.query.type.ANY']) ? $unbound['num.query.type.ANY'] : 0),
|
||||
'qTypeAPL' => (is_numeric($unbound['num.query.type.APL']) ? $unbound['num.query.type.APL'] : 0),
|
||||
'qTypeATMA' => (is_numeric($unbound['num.query.type.ATMA']) ? $unbound['num.query.type.ATMA'] : 0),
|
||||
'qTypeAXFR' => (is_numeric($unbound['num.query.type.AXFR']) ? $unbound['num.query.type.AXFR'] : 0),
|
||||
'qTypeCERT' => (is_numeric($unbound['num.query.type.CERT']) ? $unbound['num.query.type.CERT'] : 0),
|
||||
'qTypeCNAME' => (is_numeric($unbound['num.query.type.CNAME']) ? $unbound['num.query.type.CNAME'] : 0),
|
||||
'qTypeDHCID' => (is_numeric($unbound['num.query.type.DHCID']) ? $unbound['num.query.type.DHCID'] : 0),
|
||||
'qTypeDLV' => (is_numeric($unbound['num.query.type.DLV']) ? $unbound['num.query.type.DLV'] : 0),
|
||||
'qTypeDNAME' => (is_numeric($unbound['num.query.type.DNAME']) ? $unbound['num.query.type.DNAME'] : 0),
|
||||
'qTypeDNSKEY' => (is_numeric($unbound['num.query.type.DNSKEY']) ? $unbound['num.query.type.DNSKEY'] : 0),
|
||||
'qTypeDS' => (is_numeric($unbound['num.query.type.DS']) ? $unbound['num.query.type.DS'] : 0),
|
||||
'qTypeEID' => (is_numeric($unbound['num.query.type.EID']) ? $unbound['num.query.type.EID'] : 0),
|
||||
'qTypeGID' => (is_numeric($unbound['num.query.type.GID']) ? $unbound['num.query.type.GID'] : 0),
|
||||
'qTypeGPOS' => (is_numeric($unbound['num.query.type.GPOS']) ? $unbound['num.query.type.GPOS'] : 0),
|
||||
'qTypeHINFO' => (is_numeric($unbound['num.query.type.HINFO']) ? $unbound['num.query.type.HINFO'] : 0),
|
||||
'qTypeIPSECKEY' => (is_numeric($unbound['num.query.type.IPSECKEY']) ? $unbound['num.query.type.IPSECKEY'] : 0),
|
||||
'qTypeISDN' => (is_numeric($unbound['num.query.type.ISDN']) ? $unbound['num.query.type.ISDN'] : 0),
|
||||
'qTypeIXFR' => (is_numeric($unbound['num.query.type.IXFR']) ? $unbound['num.query.type.IXFR'] : 0),
|
||||
'qTypeKEY' => (is_numeric($unbound['num.query.type.KEY']) ? $unbound['num.query.type.KEY'] : 0),
|
||||
'qTypeKX' => (is_numeric($unbound['num.query.type.KX']) ? $unbound['num.query.type.KX'] : 0),
|
||||
'qTypeLOC' => (is_numeric($unbound['num.query.type.LOC']) ? $unbound['num.query.type.LOC'] : 0),
|
||||
'qTypeMAILA' => (is_numeric($unbound['num.query.type.MAILA']) ? $unbound['num.query.type.MAILA'] : 0),
|
||||
'qTypeMAILB' => (is_numeric($unbound['num.query.type.MAILB']) ? $unbound['num.query.type.MAILB'] : 0),
|
||||
'qTypeMB' => (is_numeric($unbound['num.query.type.MB']) ? $unbound['num.query.type.MB'] : 0),
|
||||
'qTypeMD' => (is_numeric($unbound['num.query.type.MD']) ? $unbound['num.query.type.MD'] : 0),
|
||||
'qTypeMF' => (is_numeric($unbound['num.query.type.MF']) ? $unbound['num.query.type.MF'] : 0),
|
||||
'qTypeMG' => (is_numeric($unbound['num.query.type.MG']) ? $unbound['num.query.type.MG'] : 0),
|
||||
'qTypeMINFO' => (is_numeric($unbound['num.query.type.MINFO']) ? $unbound['num.query.type.MINFO'] : 0),
|
||||
'qTypeMR' => (is_numeric($unbound['num.query.type.MR']) ? $unbound['num.query.type.MR'] : 0),
|
||||
'qTypeMX' => (is_numeric($unbound['num.query.type.MX']) ? $unbound['num.query.type.MX'] : 0),
|
||||
'qTypeNAPTR' => (is_numeric($unbound['num.query.type.NAPTR']) ? $unbound['num.query.type.NAPTR'] : 0),
|
||||
'qTypeNIMLOC' => (is_numeric($unbound['num.query.type.NIMLOC']) ? $unbound['num.query.type.NIMLOC'] : 0),
|
||||
'qTypeNS' => (is_numeric($unbound['num.query.type.NS']) ? $unbound['num.query.type.NS'] : 0),
|
||||
'qTypeNSAP' => (is_numeric($unbound['num.query.type.NSAP']) ? $unbound['num.query.type.NSAP'] : 0),
|
||||
'qTypeNSAP_PTR' => (is_numeric($unbound['num.query.type.NSAP_PTR']) ? $unbound['num.query.type.NSAP_PTR'] : 0),
|
||||
'qTypeNSEC' => (is_numeric($unbound['num.query.type.NSEC']) ? $unbound['num.query.type.NSEC'] : 0),
|
||||
'qTypeNSEC3' => (is_numeric($unbound['num.query.type.NSEC3']) ? $unbound['num.query.type.NSEC3'] : 0),
|
||||
'qTypeNSEC3PARAMS' => (is_numeric($unbound['num.query.type.NSEC3PARAMS']) ? $unbound['num.query.type.NSEC3PARAMS'] : 0),
|
||||
'qTypeNULL' => (is_numeric($unbound['num.query.type.NULL']) ? $unbound['num.query.type.NULL'] : 0),
|
||||
'qTypeNXT' => (is_numeric($unbound['num.query.type.TXT']) ? $unbound['num.query.type.TXT'] : 0),
|
||||
'qTypeOPT' => (is_numeric($unbound['num.query.type.OPT']) ? $unbound['num.query.type.OPT'] : 0),
|
||||
'qTypePTR' => (is_numeric($unbound['num.query.type.PTR']) ? $unbound['num.query.type.PTR'] : 0),
|
||||
'qTypePX' => (is_numeric($unbound['num.query.type.PX']) ? $unbound['num.query.type.PX'] : 0),
|
||||
'qTypeRP' => (is_numeric($unbound['num.query.type.RP']) ? $unbound['num.query.type.RP'] : 0),
|
||||
'qTypeRRSIG' => (is_numeric($unbound['num.query.type.RRSIG']) ? $unbound['num.query.type.RRSIG'] : 0),
|
||||
'qTypeRT' => (is_numeric($unbound['num.query.type.RT']) ? $unbound['num.query.type.RT'] : 0),
|
||||
'qTypeSIG' => (is_numeric($unbound['num.query.type.SIG']) ? $unbound['num.query.type.SIG'] : 0),
|
||||
'qTypeSINK' => (is_numeric($unbound['num.query.type.SINK']) ? $unbound['num.query.type.SINK'] : 0),
|
||||
'qTypeSOA' => (is_numeric($unbound['num.query.type.SOA']) ? $unbound['num.query.type.SOA'] : 0),
|
||||
'qTypeSRV' => (is_numeric($unbound['num.query.type.SRV']) ? $unbound['num.query.type.SRV'] : 0),
|
||||
'qTypeSSHFP' => (is_numeric($unbound['num.query.type.SSHFP']) ? $unbound['num.query.type.SSHFP'] : 0),
|
||||
'qTypeTSIG' => (is_numeric($unbound['num.query.type.TSIG']) ? $unbound['num.query.type.TSIG'] : 0),
|
||||
'qTypeTXT' => (is_numeric($unbound['num.query.type.TXT']) ? $unbound['num.query.type.TXT'] : 0),
|
||||
'qTypeUID' => (is_numeric($unbound['num.query.type.UID']) ? $unbound['num.query.type.UID'] : 0),
|
||||
'qTypeUINFO' => (is_numeric($unbound['num.query.type.UINFO']) ? $unbound['num.query.type.INFO'] : 0),
|
||||
'qTypeUNSPEC' => (is_numeric($unbound['num.query.type.UNSPEC']) ? $unbound['num.query.type.UNSPEC'] : 0),
|
||||
'qTypeWKS' => (is_numeric($unbound['num.query.type.WKS']) ? $unbound['num.query.type.WKS'] : 0),
|
||||
'qTypeX25' => (is_numeric($unbound['num.query.type.X25']) ? $unbound['num.query.type.X25'] : 0),
|
||||
'classANY' => (is_numeric($unbound['num.query.class.ANY']) ? $unbound['num.query.class.ANY'] : 0),
|
||||
'classCH' => (is_numeric($unbound['num.query.class.CH']) ? $unbound['num.query.class.CH'] : 0),
|
||||
'classHS' => (is_numeric($unbound['num.query.class.HS']) ? $unbound['num.query.class.HS'] : 0),
|
||||
'classIN' => (is_numeric($unbound['num.query.class.IN']) ? $unbound['num.query.class.IN'] : 0),
|
||||
'classNONE' => (is_numeric($unbound['num.query.class.NONE']) ? $unbound['num.query.class.NONE'] : 0),
|
||||
'rcodeFORMERR' => (is_numeric($unbound['num.query.rcode.FORMERR']) ? $unbound['num.query.rcode.FORMERR'] : 0),
|
||||
'rcodeNOERROR' => (is_numeric($unbound['num.query.rcode.NOERROR']) ? $unbound['num.query.rcode.NOERROR'] : 0),
|
||||
'rcodeNOTAUTH' => (is_numeric($unbound['num.query.rcode.NOTAUTH']) ? $unbound['num.query.rcode.NOTAUTH'] : 0),
|
||||
'rcodeNOTIMPL' => (is_numeric($unbound['num.query.rcode.NOTIMPL']) ? $unbound['num.query.rcode.NOTIMPL'] : 0),
|
||||
'rcodeNOTZONE' => (is_numeric($unbound['num.query.rcode.NOTZONE']) ? $unbound['num.query.rcode.NOTZONE'] : 0),
|
||||
'rcodeNXDOMAIN' => (is_numeric($unbound['num.query.rcode.NXDOMAIN']) ? $unbound['num.query.rcode.NXDOMAIN'] : 0),
|
||||
'rcodeNXRRSET' => (is_numeric($unbound['num.query.rcode.NXRRSET']) ? $unbound['num.query.rcode.NXRRSET'] : 0),
|
||||
'rcodeREFUSED' => (is_numeric($unbound['num.query.rcode.REFUSED']) ? $unbound['num.query.rcode.REFUSED'] : 0),
|
||||
'rcodeSERVFAIL' => (is_numeric($unbound['num.query.rcode.SERVFAIL']) ? $unbound['num.query.rcode.SERVFAIL'] : 0),
|
||||
'rcodeYXDOMAIN' => (is_numeric($unbound['num.query.rcode.YXDOMAIN']) ? $unbound['num.query.rcode.YXDOMAIN'] : 0),
|
||||
'rcodeYXRRSET' => (is_numeric($unbound['num.query.rcode.YXRRSET']) ? $unbound['num.query.rcode.YXRRSET'] : 0),
|
||||
'rcodenodata' => (is_numeric($unbound['num.query.rcode.nodata']) ? $unbound['num.query.rcode.nodata'] : 0),
|
||||
'flagQR' => (is_numeric($unbound['num.query.flag.QR']) ? $unbound['num.query.flag.QR'] : 0),
|
||||
'flagAA' => (is_numeric($unbound['num.query.flag.AA']) ? $unbound['num.query.flag.AA'] : 0),
|
||||
'flagTC' => (is_numeric($unbound['num.query.flag.TC']) ? $unbound['num.query.flag.TC'] : 0),
|
||||
'flagRD' => (is_numeric($unbound['num.query.flag.RD']) ? $unbound['num.query.flag.RD'] : 0),
|
||||
'flagRA' => (is_numeric($unbound['num.query.flag.RA']) ? $unbound['num.query.flag.RA'] : 0),
|
||||
'flagZ' => (is_numeric($unbound['num.query.flag.Z']) ? $unbound['num.query.flag.Z'] : 0),
|
||||
'flagAD' => (is_numeric($unbound['num.query.flag.AD']) ? $unbound['num.query.flag.AD'] : 0),
|
||||
'flagCD' => (is_numeric($unbound['num.query.flag.CD']) ? $unbound['num.query.flag.CD'] : 0),
|
||||
'opcodeQUERY' => (is_numeric($unbound['num.query.opcode.QUERY']) ? $unbound['num.query.opcode.QUERY'] : 0),
|
||||
'opcodeIQUERY' => (is_numeric($unbound['num.query.opcode.IQUERY']) ? $unbound['num.query.opcode.IQUERY'] : 0),
|
||||
'opcodeSTATUS' => (is_numeric($unbound['num.query.opcode.STATUS']) ? $unbound['num.query.opcode.STATUS'] : 0),
|
||||
'opcodeNOTIFY' => (is_numeric($unbound['num.query.opcode.NOTIFY']) ? $unbound['num.query.opcode.NOTIFY'] : 0),
|
||||
'opcodeUPDATE' => (is_numeric($unbound['num.query.opcode.UPDATE']) ? $unbound['num.query.opcode.UPDATE'] : 0),
|
||||
# These are generic and should be set - if they're not, we'll set U in the update function.
|
||||
'numQueryTCP' => $unbound['num.query.tcp'],
|
||||
'numQueryIPv6' => $unbound['num.query.ipv6'],
|
||||
'numQueryUnwanted' => $unbound['unwanted.queries'],
|
||||
'numReplyUnwanted' => $unbound['unwanted.replies'],
|
||||
'numAnswerSecure' => $unbound['num.answer.secure'],
|
||||
'numAnswerBogus' => $unbound['num.answer.bogus'],
|
||||
'numRRSetBogus' => $unbound['num.rrset.bogus'],
|
||||
'ednsPresent' => $unbound['num.query.edns.present'],
|
||||
'ednsDO' => $unbound['num.query.edns.DO'],
|
||||
);
|
||||
$data = [
|
||||
# We return 0 in the following entries because unbound does not show these values if they are 0.
|
||||
# They're not unknown (U) in this case, so it's ok to return 0.
|
||||
'qTypeA' => (is_numeric($unbound['num.query.type.A']) ? $unbound['num.query.type.A'] : 0),
|
||||
'qTypeA6' => (is_numeric($unbound['num.query.type.A6']) ? $unbound['num.query.type.A6'] : 0),
|
||||
'qTypeAAAA' => (is_numeric($unbound['num.query.type.AAAA']) ? $unbound['num.query.type.AAAA'] : 0),
|
||||
'qTypeAFSDB' => (is_numeric($unbound['num.query.type.AFSDB']) ? $unbound['num.query.type.AFSDB'] : 0),
|
||||
'qTypeANY' => (is_numeric($unbound['num.query.type.ANY']) ? $unbound['num.query.type.ANY'] : 0),
|
||||
'qTypeAPL' => (is_numeric($unbound['num.query.type.APL']) ? $unbound['num.query.type.APL'] : 0),
|
||||
'qTypeATMA' => (is_numeric($unbound['num.query.type.ATMA']) ? $unbound['num.query.type.ATMA'] : 0),
|
||||
'qTypeAXFR' => (is_numeric($unbound['num.query.type.AXFR']) ? $unbound['num.query.type.AXFR'] : 0),
|
||||
'qTypeCERT' => (is_numeric($unbound['num.query.type.CERT']) ? $unbound['num.query.type.CERT'] : 0),
|
||||
'qTypeCNAME' => (is_numeric($unbound['num.query.type.CNAME']) ? $unbound['num.query.type.CNAME'] : 0),
|
||||
'qTypeDHCID' => (is_numeric($unbound['num.query.type.DHCID']) ? $unbound['num.query.type.DHCID'] : 0),
|
||||
'qTypeDLV' => (is_numeric($unbound['num.query.type.DLV']) ? $unbound['num.query.type.DLV'] : 0),
|
||||
'qTypeDNAME' => (is_numeric($unbound['num.query.type.DNAME']) ? $unbound['num.query.type.DNAME'] : 0),
|
||||
'qTypeDNSKEY' => (is_numeric($unbound['num.query.type.DNSKEY']) ? $unbound['num.query.type.DNSKEY'] : 0),
|
||||
'qTypeDS' => (is_numeric($unbound['num.query.type.DS']) ? $unbound['num.query.type.DS'] : 0),
|
||||
'qTypeEID' => (is_numeric($unbound['num.query.type.EID']) ? $unbound['num.query.type.EID'] : 0),
|
||||
'qTypeGID' => (is_numeric($unbound['num.query.type.GID']) ? $unbound['num.query.type.GID'] : 0),
|
||||
'qTypeGPOS' => (is_numeric($unbound['num.query.type.GPOS']) ? $unbound['num.query.type.GPOS'] : 0),
|
||||
'qTypeHINFO' => (is_numeric($unbound['num.query.type.HINFO']) ? $unbound['num.query.type.HINFO'] : 0),
|
||||
'qTypeIPSECKEY' => (is_numeric($unbound['num.query.type.IPSECKEY']) ? $unbound['num.query.type.IPSECKEY'] : 0),
|
||||
'qTypeISDN' => (is_numeric($unbound['num.query.type.ISDN']) ? $unbound['num.query.type.ISDN'] : 0),
|
||||
'qTypeIXFR' => (is_numeric($unbound['num.query.type.IXFR']) ? $unbound['num.query.type.IXFR'] : 0),
|
||||
'qTypeKEY' => (is_numeric($unbound['num.query.type.KEY']) ? $unbound['num.query.type.KEY'] : 0),
|
||||
'qTypeKX' => (is_numeric($unbound['num.query.type.KX']) ? $unbound['num.query.type.KX'] : 0),
|
||||
'qTypeLOC' => (is_numeric($unbound['num.query.type.LOC']) ? $unbound['num.query.type.LOC'] : 0),
|
||||
'qTypeMAILA' => (is_numeric($unbound['num.query.type.MAILA']) ? $unbound['num.query.type.MAILA'] : 0),
|
||||
'qTypeMAILB' => (is_numeric($unbound['num.query.type.MAILB']) ? $unbound['num.query.type.MAILB'] : 0),
|
||||
'qTypeMB' => (is_numeric($unbound['num.query.type.MB']) ? $unbound['num.query.type.MB'] : 0),
|
||||
'qTypeMD' => (is_numeric($unbound['num.query.type.MD']) ? $unbound['num.query.type.MD'] : 0),
|
||||
'qTypeMF' => (is_numeric($unbound['num.query.type.MF']) ? $unbound['num.query.type.MF'] : 0),
|
||||
'qTypeMG' => (is_numeric($unbound['num.query.type.MG']) ? $unbound['num.query.type.MG'] : 0),
|
||||
'qTypeMINFO' => (is_numeric($unbound['num.query.type.MINFO']) ? $unbound['num.query.type.MINFO'] : 0),
|
||||
'qTypeMR' => (is_numeric($unbound['num.query.type.MR']) ? $unbound['num.query.type.MR'] : 0),
|
||||
'qTypeMX' => (is_numeric($unbound['num.query.type.MX']) ? $unbound['num.query.type.MX'] : 0),
|
||||
'qTypeNAPTR' => (is_numeric($unbound['num.query.type.NAPTR']) ? $unbound['num.query.type.NAPTR'] : 0),
|
||||
'qTypeNIMLOC' => (is_numeric($unbound['num.query.type.NIMLOC']) ? $unbound['num.query.type.NIMLOC'] : 0),
|
||||
'qTypeNS' => (is_numeric($unbound['num.query.type.NS']) ? $unbound['num.query.type.NS'] : 0),
|
||||
'qTypeNSAP' => (is_numeric($unbound['num.query.type.NSAP']) ? $unbound['num.query.type.NSAP'] : 0),
|
||||
'qTypeNSAP_PTR' => (is_numeric($unbound['num.query.type.NSAP_PTR']) ? $unbound['num.query.type.NSAP_PTR'] : 0),
|
||||
'qTypeNSEC' => (is_numeric($unbound['num.query.type.NSEC']) ? $unbound['num.query.type.NSEC'] : 0),
|
||||
'qTypeNSEC3' => (is_numeric($unbound['num.query.type.NSEC3']) ? $unbound['num.query.type.NSEC3'] : 0),
|
||||
'qTypeNSEC3PARAMS' => (is_numeric($unbound['num.query.type.NSEC3PARAMS']) ? $unbound['num.query.type.NSEC3PARAMS'] : 0),
|
||||
'qTypeNULL' => (is_numeric($unbound['num.query.type.NULL']) ? $unbound['num.query.type.NULL'] : 0),
|
||||
'qTypeNXT' => (is_numeric($unbound['num.query.type.TXT']) ? $unbound['num.query.type.TXT'] : 0),
|
||||
'qTypeOPT' => (is_numeric($unbound['num.query.type.OPT']) ? $unbound['num.query.type.OPT'] : 0),
|
||||
'qTypePTR' => (is_numeric($unbound['num.query.type.PTR']) ? $unbound['num.query.type.PTR'] : 0),
|
||||
'qTypePX' => (is_numeric($unbound['num.query.type.PX']) ? $unbound['num.query.type.PX'] : 0),
|
||||
'qTypeRP' => (is_numeric($unbound['num.query.type.RP']) ? $unbound['num.query.type.RP'] : 0),
|
||||
'qTypeRRSIG' => (is_numeric($unbound['num.query.type.RRSIG']) ? $unbound['num.query.type.RRSIG'] : 0),
|
||||
'qTypeRT' => (is_numeric($unbound['num.query.type.RT']) ? $unbound['num.query.type.RT'] : 0),
|
||||
'qTypeSIG' => (is_numeric($unbound['num.query.type.SIG']) ? $unbound['num.query.type.SIG'] : 0),
|
||||
'qTypeSINK' => (is_numeric($unbound['num.query.type.SINK']) ? $unbound['num.query.type.SINK'] : 0),
|
||||
'qTypeSOA' => (is_numeric($unbound['num.query.type.SOA']) ? $unbound['num.query.type.SOA'] : 0),
|
||||
'qTypeSRV' => (is_numeric($unbound['num.query.type.SRV']) ? $unbound['num.query.type.SRV'] : 0),
|
||||
'qTypeSSHFP' => (is_numeric($unbound['num.query.type.SSHFP']) ? $unbound['num.query.type.SSHFP'] : 0),
|
||||
'qTypeTSIG' => (is_numeric($unbound['num.query.type.TSIG']) ? $unbound['num.query.type.TSIG'] : 0),
|
||||
'qTypeTXT' => (is_numeric($unbound['num.query.type.TXT']) ? $unbound['num.query.type.TXT'] : 0),
|
||||
'qTypeUID' => (is_numeric($unbound['num.query.type.UID']) ? $unbound['num.query.type.UID'] : 0),
|
||||
'qTypeUINFO' => (is_numeric($unbound['num.query.type.UINFO']) ? $unbound['num.query.type.INFO'] : 0),
|
||||
'qTypeUNSPEC' => (is_numeric($unbound['num.query.type.UNSPEC']) ? $unbound['num.query.type.UNSPEC'] : 0),
|
||||
'qTypeWKS' => (is_numeric($unbound['num.query.type.WKS']) ? $unbound['num.query.type.WKS'] : 0),
|
||||
'qTypeX25' => (is_numeric($unbound['num.query.type.X25']) ? $unbound['num.query.type.X25'] : 0),
|
||||
'classANY' => (is_numeric($unbound['num.query.class.ANY']) ? $unbound['num.query.class.ANY'] : 0),
|
||||
'classCH' => (is_numeric($unbound['num.query.class.CH']) ? $unbound['num.query.class.CH'] : 0),
|
||||
'classHS' => (is_numeric($unbound['num.query.class.HS']) ? $unbound['num.query.class.HS'] : 0),
|
||||
'classIN' => (is_numeric($unbound['num.query.class.IN']) ? $unbound['num.query.class.IN'] : 0),
|
||||
'classNONE' => (is_numeric($unbound['num.query.class.NONE']) ? $unbound['num.query.class.NONE'] : 0),
|
||||
'rcodeFORMERR' => (is_numeric($unbound['num.query.rcode.FORMERR']) ? $unbound['num.query.rcode.FORMERR'] : 0),
|
||||
'rcodeNOERROR' => (is_numeric($unbound['num.query.rcode.NOERROR']) ? $unbound['num.query.rcode.NOERROR'] : 0),
|
||||
'rcodeNOTAUTH' => (is_numeric($unbound['num.query.rcode.NOTAUTH']) ? $unbound['num.query.rcode.NOTAUTH'] : 0),
|
||||
'rcodeNOTIMPL' => (is_numeric($unbound['num.query.rcode.NOTIMPL']) ? $unbound['num.query.rcode.NOTIMPL'] : 0),
|
||||
'rcodeNOTZONE' => (is_numeric($unbound['num.query.rcode.NOTZONE']) ? $unbound['num.query.rcode.NOTZONE'] : 0),
|
||||
'rcodeNXDOMAIN' => (is_numeric($unbound['num.query.rcode.NXDOMAIN']) ? $unbound['num.query.rcode.NXDOMAIN'] : 0),
|
||||
'rcodeNXRRSET' => (is_numeric($unbound['num.query.rcode.NXRRSET']) ? $unbound['num.query.rcode.NXRRSET'] : 0),
|
||||
'rcodeREFUSED' => (is_numeric($unbound['num.query.rcode.REFUSED']) ? $unbound['num.query.rcode.REFUSED'] : 0),
|
||||
'rcodeSERVFAIL' => (is_numeric($unbound['num.query.rcode.SERVFAIL']) ? $unbound['num.query.rcode.SERVFAIL'] : 0),
|
||||
'rcodeYXDOMAIN' => (is_numeric($unbound['num.query.rcode.YXDOMAIN']) ? $unbound['num.query.rcode.YXDOMAIN'] : 0),
|
||||
'rcodeYXRRSET' => (is_numeric($unbound['num.query.rcode.YXRRSET']) ? $unbound['num.query.rcode.YXRRSET'] : 0),
|
||||
'rcodenodata' => (is_numeric($unbound['num.query.rcode.nodata']) ? $unbound['num.query.rcode.nodata'] : 0),
|
||||
'flagQR' => (is_numeric($unbound['num.query.flag.QR']) ? $unbound['num.query.flag.QR'] : 0),
|
||||
'flagAA' => (is_numeric($unbound['num.query.flag.AA']) ? $unbound['num.query.flag.AA'] : 0),
|
||||
'flagTC' => (is_numeric($unbound['num.query.flag.TC']) ? $unbound['num.query.flag.TC'] : 0),
|
||||
'flagRD' => (is_numeric($unbound['num.query.flag.RD']) ? $unbound['num.query.flag.RD'] : 0),
|
||||
'flagRA' => (is_numeric($unbound['num.query.flag.RA']) ? $unbound['num.query.flag.RA'] : 0),
|
||||
'flagZ' => (is_numeric($unbound['num.query.flag.Z']) ? $unbound['num.query.flag.Z'] : 0),
|
||||
'flagAD' => (is_numeric($unbound['num.query.flag.AD']) ? $unbound['num.query.flag.AD'] : 0),
|
||||
'flagCD' => (is_numeric($unbound['num.query.flag.CD']) ? $unbound['num.query.flag.CD'] : 0),
|
||||
'opcodeQUERY' => (is_numeric($unbound['num.query.opcode.QUERY']) ? $unbound['num.query.opcode.QUERY'] : 0),
|
||||
'opcodeIQUERY' => (is_numeric($unbound['num.query.opcode.IQUERY']) ? $unbound['num.query.opcode.IQUERY'] : 0),
|
||||
'opcodeSTATUS' => (is_numeric($unbound['num.query.opcode.STATUS']) ? $unbound['num.query.opcode.STATUS'] : 0),
|
||||
'opcodeNOTIFY' => (is_numeric($unbound['num.query.opcode.NOTIFY']) ? $unbound['num.query.opcode.NOTIFY'] : 0),
|
||||
'opcodeUPDATE' => (is_numeric($unbound['num.query.opcode.UPDATE']) ? $unbound['num.query.opcode.UPDATE'] : 0),
|
||||
# These are generic and should be set - if they're not, we'll set U in the update function.
|
||||
'numQueryTCP' => $unbound['num.query.tcp'],
|
||||
'numQueryIPv6' => $unbound['num.query.ipv6'],
|
||||
'numQueryUnwanted' => $unbound['unwanted.queries'],
|
||||
'numReplyUnwanted' => $unbound['unwanted.replies'],
|
||||
'numAnswerSecure' => $unbound['num.answer.secure'],
|
||||
'numAnswerBogus' => $unbound['num.answer.bogus'],
|
||||
'numRRSetBogus' => $unbound['num.rrset.bogus'],
|
||||
'ednsPresent' => $unbound['num.query.edns.present'],
|
||||
'ednsDO' => $unbound['num.query.edns.DO'],
|
||||
];
|
||||
|
||||
rrdtool_update_ng($device, 'unbound-queries', $data, $app_id);
|
||||
rrdtool_update_ng($device, 'unbound-queries', $data, $app_id);
|
||||
|
||||
update_application($app_id, $data);
|
||||
update_application($app_id, $data);
|
||||
|
||||
unset($unbound, $app_id);
|
||||
unset($unbound, $app_id);
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
Reference in New Issue
Block a user