diff --git a/html/includes/graphs/device/ib_dhcp_messages.inc.php b/html/includes/graphs/device/ib_dhcp_messages.inc.php new file mode 100644 index 000000000..246f579f0 --- /dev/null +++ b/html/includes/graphs/device/ib_dhcp_messages.inc.php @@ -0,0 +1,58 @@ + '#FFAB00FF', + 'ack' => '#007283FF', + 'discover' => '#74C366FF', + 'offer' => '#B1441EFF', + 'inform' => '#8D85F3FF', + 'nack' => '#FAFD9EFF', + 'release' => '#96E78AFF', + 'decline' => '#FF0000FF', + 'other' => '#8F9286FF', +); + +$i = 0; +foreach ($stats as $stat => $color) { + $i++; + $rrd_list[$i]['filename'] = $rrd_filename; + $rrd_list[$i]['descr'] = ucfirst ($stat); + $rrd_list[$i]['ds'] = $stat; + + # Set up DEFs + $rrd_options .= " DEF:".$stat."=".$rrd_filename.':'.$stat.':AVERAGE '; + + # Set up CDEFS to multiply with 60 to get per minute value + $rrd_options .= " 'CDEF:cdef".$stat."=".$stat.",60,*'"; + + # Set up area graphing with stacking + if ( $i == "0" ) { + $rrd_options .= " 'AREA:cdef".$stat . $color.":".ucfirst($stat)."'"; + } + else { + $rrd_options .= " 'AREA:cdef".$stat . $color.":".ucfirst($stat).":STACK'"; + } + + # Set up legend, with consistent indent + $filler = 8 - strlen($stat); + $current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); + $rrd_options .= " 'GPRINT:cdef".$stat.":LAST:".$current_pad."Current\:%8.0lf'"; + $rrd_options .= " 'GPRINT:cdef".$stat.":AVERAGE:Average\:%8.0lf'"; + $rrd_options .= " 'GPRINT:cdef".$stat.":MAX:Maximum\:%8.0lf\\n'"; +} + +// Set up Total value +$rrd_options .= " 'CDEF:cdeftotal=cdefrequest,cdefack,cdefdiscover,cdefoffer, + cdefinform,cdefnack,cdefrelease,cdefdecline,cdefother,+,+,+,+,+,+,+,+'"; +$rrd_options .= " 'LINE1:cdeftotal#000000FF:Total'"; +$filler = 8 - strlen("Total"); +$current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); +$rrd_options .= " 'GPRINT:cdeftotal:LAST:".$current_pad."Current\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:AVERAGE:Average\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:MAX:Maximum\:%8.0lf\\n'"; + diff --git a/html/includes/graphs/device/ib_dns_dyn_updates.inc.php b/html/includes/graphs/device/ib_dns_dyn_updates.inc.php new file mode 100644 index 000000000..b59214185 --- /dev/null +++ b/html/includes/graphs/device/ib_dns_dyn_updates.inc.php @@ -0,0 +1,51 @@ + '#74C366FF', + 'failure' => '#007283FF', + 'reject' => '#FFAB00FF', + 'prereq_reject' => '#B1441EFF', +); + +$i = 0; +foreach ($stats as $stat => $color) { + $i++; + $rrd_list[$i]['filename'] = $rrd_filename; + $rrd_list[$i]['descr'] = ucfirst ($stat); + $rrd_list[$i]['ds'] = $stat; + + # Set up DEFs + $rrd_options .= " DEF:".$stat."=".$rrd_filename.':'.$stat.':AVERAGE '; + + # Set up CDEFS to multiply with 60 to get per minute value + $rrd_options .= " 'CDEF:cdef".$stat."=".$stat.",60,*'"; + + # Set up area graphing with stacking + if ( $i == "0" ) { + $rrd_options .= " 'AREA:cdef".$stat . $color.":".$stat."'"; + } + else { + $rrd_options .= " 'AREA:cdef".$stat . $color.":".$stat.":STACK'"; + } + + # Set up legend, with consistent indent + $filler = 15 - strlen($stat); + $current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); + $rrd_options .= " 'GPRINT:cdef".$stat.":LAST: ".$current_pad."Current\:%8.0lf'"; + $rrd_options .= " 'GPRINT:cdef".$stat.":AVERAGE:Average\:%8.0lf'"; + $rrd_options .= " 'GPRINT:cdef".$stat.":MAX:Maximum\:%8.0lf\\n'"; +} + +# Add total value +$rrd_options .= " 'CDEF:cdeftotal=cdefsuccess,cdeffailure,cdefreject,cdefprereq_reject,+,+,+'"; +$rrd_options .= " 'LINE1:cdeftotal#000000FF:Total'"; +$filler = 16 - strlen("Total"); +$current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); +$rrd_options .= " 'GPRINT:cdeftotal:LAST:".$current_pad."Current\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:AVERAGE:Average\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:MAX:Maximum\:%8.0lf\\n'"; diff --git a/html/includes/graphs/device/ib_dns_performance.inc.php b/html/includes/graphs/device/ib_dns_performance.inc.php new file mode 100644 index 000000000..17b8d8b09 --- /dev/null +++ b/html/includes/graphs/device/ib_dns_performance.inc.php @@ -0,0 +1,49 @@ + '#74C366FF', + 'PerfnonAA' => '#007283FF', +); + +$i = 0; +foreach ($stats as $stat => $color) { + $i++; + $rrd_list[$i]['filename'] = $rrd_filename; + $rrd_list[$i]['descr'] = ucfirst ($stat); + $rrd_list[$i]['ds'] = $stat; + + # Set up DEFs + $rrd_options .= " DEF:".$stat."=".$rrd_filename.':'.$stat.':AVERAGE '; + + # Set up area graphing with stacking + if ( $i == "0" ) { + $rrd_options .= " 'AREA:".$stat . $color.":".$stat."'"; + } + else { + $rrd_options .= " 'AREA:".$stat . $color.":".$stat.":STACK'"; + } + + # Set up legend, with consistent indent + $filler = 15 - strlen($stat); + $current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); + $rrd_options .= " 'GPRINT:".$stat.":LAST: ".$current_pad."Current\:%8.0lf'"; + $rrd_options .= " 'GPRINT:".$stat.":AVERAGE:Average\:%8.0lf'"; + $rrd_options .= " 'GPRINT:".$stat.":MAX:Maximum\:%8.0lf\\n'"; +} + +# Add total value +$rrd_options .= " 'CDEF:cdeftotal=PerfAA,PerfnonAA,+'"; +$rrd_options .= " 'LINE1:cdeftotal#000000FF:Total'"; +$filler = 16 - strlen("Total"); +$current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); +$rrd_options .= " 'GPRINT:cdeftotal:LAST:".$current_pad."Current\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:AVERAGE:Average\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:MAX:Maximum\:%8.0lf\\n'"; + diff --git a/html/includes/graphs/device/ib_dns_request_return_codes.inc.php b/html/includes/graphs/device/ib_dns_request_return_codes.inc.php new file mode 100644 index 000000000..21504dd81 --- /dev/null +++ b/html/includes/graphs/device/ib_dns_request_return_codes.inc.php @@ -0,0 +1,53 @@ + '#74C366FF', + 'failure' => '#007283FF', + 'nxdomain' => '#FFAB00FF', + 'nxrrset' => '#B1441EFF', +); + +$i = 0; +foreach ($stats as $stat => $color) { + $i++; + $rrd_list[$i]['filename'] = $rrd_filename; + $rrd_list[$i]['descr'] = ucfirst ($stat); + $rrd_list[$i]['ds'] = $stat; + + # Set up DEFs + $rrd_options .= " DEF:".$stat."=".$rrd_filename.':'.$stat.':AVERAGE '; + + # Set up CDEFS to multiply with 1 to get per second value + $rrd_options .= " 'CDEF:cdef".$stat."=".$stat.",1,*'"; + + # Set up area graphing with stacking + if ( $i == "0" ) { + $rrd_options .= " 'AREA:cdef".$stat . $color.":".ucfirst($stat)."'"; + } + else { + $rrd_options .= " 'AREA:cdef".$stat . $color.":".ucfirst($stat).":STACK'"; + } + + # Set up legend, with consistent indent + $filler = 15 - strlen($stat); + $current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); + $rrd_options .= " 'GPRINT:cdef".$stat.":LAST: ".$current_pad."Current\:%8.0lf%s'"; + $rrd_options .= " 'GPRINT:cdef".$stat.":AVERAGE:Average\:%8.0lf'"; + $rrd_options .= " 'GPRINT:cdef".$stat.":MAX:Maximum\:%8.0lf\\n'"; + + $statstring .= "cdef".$stat.","; +} + +# Add total value +$rrd_options .= " 'CDEF:cdeftotal=".$statstring."+,+,+'"; +$rrd_options .= " 'LINE1:cdeftotal#000000FF:Total'"; +$filler = 16 - strlen("Total"); +$current_pad = str_pad("", $filler, ' ', STR_PAD_LEFT); +$rrd_options .= " 'GPRINT:cdeftotal:LAST:".$current_pad."Current\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:AVERAGE:Average\:%8.0lf'"; +$rrd_options .= " 'GPRINT:cdeftotal:MAX:Maximum\:%8.0lf\\n'"; diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php index 8d747e1f3..badb80824 100644 --- a/includes/definitions.inc.php +++ b/includes/definitions.inc.php @@ -1440,6 +1440,11 @@ $config['os'][$os]['over'][1]['text'] = 'CPU Usage'; $config['os'][$os]['over'][2]['graph'] = 'device_mempool'; $config['os'][$os]['over'][2]['text'] = 'Memory Usage'; +$os = 'nios'; +$config['os'][$os]['text'] = 'Infoblox'; +$config['os'][$os]['type'] = 'appliance'; +$config['os'][$os]['icon'] = 'infoblox'; + // Lenovo EMC (NAS) $os = 'lenovoemc'; $config['os'][$os]['type'] = 'storage'; @@ -1649,6 +1654,20 @@ $config['graph_types']['device']['pulse_sessions']['section'] = 'firewall'; $config['graph_types']['device']['pulse_sessions']['order'] = '0'; $config['graph_types']['device']['pulse_sessions']['descr'] = 'Active Sessions'; +// Infoblox dns/dhcp Graphs +$config['graph_types']['device']['ib_dns_dyn_updates']['section'] = 'dns'; +$config['graph_types']['device']['ib_dns_dyn_updates']['order'] = '0'; +$config['graph_types']['device']['ib_dns_dyn_updates']['descr'] = 'DNS dynamic updates'; +$config['graph_types']['device']['ib_dns_request_return_codes']['section'] = 'dns'; +$config['graph_types']['device']['ib_dns_request_return_codes']['order'] = '0'; +$config['graph_types']['device']['ib_dns_request_return_codes']['descr'] = 'DNS request return codes'; +$config['graph_types']['device']['ib_dns_performance']['section'] = 'dns'; +$config['graph_types']['device']['ib_dns_performance']['order'] = '0'; +$config['graph_types']['device']['ib_dns_performance']['descr'] = 'DNS performance'; +$config['graph_types']['device']['ib_dhcp_messages']['section'] = 'dhcp'; +$config['graph_types']['device']['ib_dhcp_messages']['order'] = '0'; +$config['graph_types']['device']['ib_dhcp_messages']['descr'] = 'DHCP messages'; + $config['graph_types']['device']['bits']['section'] = 'netstats'; $config['graph_types']['device']['bits']['order'] = '0'; $config['graph_types']['device']['bits']['descr'] = 'Total Traffic'; diff --git a/includes/discovery/os/nios.inc.php b/includes/discovery/os/nios.inc.php new file mode 100644 index 000000000..db0b0a63e --- /dev/null +++ b/includes/discovery/os/nios.inc.php @@ -0,0 +1,6 @@ + $ds1, + 'failure' => $ds2, + 'reject' => $ds3, + 'prereq_reject' => $ds4, +); + + +rrdtool_update($rrdfile, $fields); +$graphs['ib_dns_dyn_updates'] = true; + + +################## +# Create dns performance graph (latency) +################## +$rrdfile = $config['rrd_dir'].'/'.$device['hostname'].'/ib_dns_performance.rrd'; + +$mibs = '+IB-PLATFORMONE-MIB'; +$oids = + 'IB-PLATFORMONE-MIB::ibNetworkMonitorDNSNonAAT1AvgLatency.0 ' . + 'IB-PLATFORMONE-MIB::ibNetworkMonitorDNSAAT1AvgLatency.0'; + +$data = snmp_get_multi($device, $oids, '-OQUs', $mibs); + +$ds1 = $data[0]['ibNetworkMonitorDNSAAT1AvgLatency']; +$ds2 = $data[0]['ibNetworkMonitorDNSNonAAT1AvgLatency']; + +if (!is_file($rrdfile)) { + rrdtool_create( + $rrdfile, + 'DS:PerfAA:GAUGE:600:0:U + DS:PerfnonAA:GAUGE:600:0:U '.$config['rrd_rra']); +} + +$fields = array( + 'PerfAA' => $ds1, + 'PerfnonAA' => $ds2, +); + +rrdtool_update($rrdfile, $fields); +$graphs['ib_dns_performance'] = true; + +################## +# Create dns request return code graph +################## +$rrdfile = $config['rrd_dir'].'/'.$device['hostname'].'/ib_dns_request_return_codes.rrd'; + +$mibs = '+IB-DNSONE-MIB'; +$oids = + 'IB-DNSONE-MIB::ibBindZoneFailure.\"summary\" ' . + 'IB-DNSONE-MIB::ibBindZoneNxDomain.\"summary\" ' . + 'IB-DNSONE-MIB::ibBindZoneNxRRset.\"summary\" ' . + 'IB-DNSONE-MIB::ibBindZoneSuccess.\"summary\"'; + +$data = snmp_get_multi($device, $oids, '-OQUs', $mibs); + +$ds1 = $data['"summary"']['ibBindZoneSuccess']; +$ds2 = $data['"summary"']['ibBindZoneFailure']; +$ds3 = $data['"summary"']['ibBindZoneNxDomain']; +$ds4 = $data['"summary"']['ibBindZoneNxRRset']; + + +if (!is_file($rrdfile)) { + rrdtool_create( + $rrdfile, + 'DS:success:DERIVE:600:0:U + DS:failure:DERIVE:600:0:U + DS:nxdomain:DERIVE:600:0:U + DS:nxrrset:DERIVE:600:0:U '.$config['rrd_rra']); +} + +$fields = array( + 'success' => $ds1, + 'failure' => $ds2, + 'nxdomain' => $ds3, + 'nxrrset' => $ds4, +); + +rrdtool_update($rrdfile, $fields); +$graphs['ib_dns_request_return_codes'] = true; + + +################## +# Create dhcp messages graph +################## +$rrdfile = $config['rrd_dir'].'/'.$device['hostname'].'/ib_dhcp_messages.rrd'; + +$mibs = '+IB-DHCPONE-MIB'; +$oids = + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfAcks.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfDeclines.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfDiscovers.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfInforms.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfNacks.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfOffers.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfOthers.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfReleases.0 ' . + 'IB-DHCPONE-MIB::ibDhcpTotalNoOfRequests.0'; + +$data = snmp_get_multi($device, $oids, '-OQUs', $mibs); + +$ds1 = $data[0]['ibDhcpTotalNoOfAcks']; +$ds2 = $data[0]['ibDhcpTotalNoOfDeclines']; +$ds3 = $data[0]['ibDhcpTotalNoOfDiscovers']; +$ds4 = $data[0]['ibDhcpTotalNoOfInforms']; +$ds5 = $data[0]['ibDhcpTotalNoOfNacks']; +$ds6 = $data[0]['ibDhcpTotalNoOfOffers']; +$ds7 = $data[0]['ibDhcpTotalNoOfOthers']; +$ds8 = $data[0]['ibDhcpTotalNoOfReleases']; +$ds9 = $data[0]['ibDhcpTotalNoOfRequests']; + +if (!is_file($rrdfile)) { + rrdtool_create( + $rrdfile, + 'DS:ack:DERIVE:600:0:U + DS:decline:DERIVE:600:0:U + DS:discover:DERIVE:600:0:U + DS:inform:DERIVE:600:0:U + DS:nack:DERIVE:600:0:U + DS:offer:DERIVE:600:0:U + DS:other:DERIVE:600:0:U + DS:release:DERIVE:600:0:U + DS:request:DERIVE:600:0:U '.$config['rrd_rra']); +} + +$fields = array( + 'ack' => $ds1, + 'decline' => $ds2, + 'discover' => $ds3, + 'inform' => $ds4, + 'nack' => $ds5, + 'offer' => $ds6, + 'other' => $ds7, + 'release' => $ds8, + 'request' => $ds9, +); + +rrdtool_update($rrdfile, $fields); +$graphs['ib_dhcp_messages'] = true; +