diff --git a/cleanup.php b/cleanup.php
index e3b6c26cc9..5efa48e7f8 100755
--- a/cleanup.php
+++ b/cleanup.php
@@ -6,13 +6,13 @@
include("config.php");
include("includes/functions.php");
-#$query = "SELECT *,A.id as id FROM ipaddr AS A, interfaces as I, devices as D
-# WHERE A.interface_id = I.interface_id AND I.device_id = D.device_id AND D.status = '1'";
+$query = "SELECT *,A.id as id FROM ipaddr AS A, interfaces as I, devices as D
+ WHERE A.interface_id = I.interface_id AND I.device_id = D.device_id AND D.status = '1'";
$data = mysql_query($query);
while($row = mysql_fetch_array($data)) {
- $mask = trim(`$ipcalc $row[addr]/$row[cidr] | grep Netmask: | cut -d " " -f 4`);
+ $mask = trim(shell_exec($config['ipcalc'] . " ".$row['addr']."/".$row['cidr']." | grep Netmask: | cut -d \" \" -f 4"));
$response = trim(`snmpget -v2c -Osq -c $row[community] $row[hostname] ipAdEntIfIndex.$row[addr] | cut -d " " -f 2`);
$maskcheck = trim(`snmpget -v2c -Osq -c $row[community] $row[hostname] ipAdEntNetMask.$row[addr] | cut -d " " -f 2`);
if($response == $row['ifIndex'] && $mask == $maskcheck) {
@@ -22,8 +22,8 @@ while($row = mysql_fetch_array($data)) {
}
}
-#$query = "SELECT * FROM interfaces AS I, devices as D
-# WHERE I.device_id = D.device_id AND D.status = '1'";
+$query = "SELECT * FROM interfaces AS I, devices as D
+ WHERE I.device_id = D.device_id AND D.status = '1'";
$data = mysql_query($query);
while($row = mysql_fetch_array($data)) {
$index = $row[ifIndex];
@@ -40,8 +40,8 @@ while($row = mysql_fetch_array($data)) {
}
}
-#echo(mysql_result(mysql_query("SELECT COUNT(*) FROM `interfaces`"), 0) . " interfaces at start\n");
-#$interface_query = mysql_query("SELECT interface_id,device_id FROM `interfaces`");
+echo(mysql_result(mysql_query("SELECT COUNT(*) FROM `interfaces`"), 0) . " interfaces at start\n");
+$interface_query = mysql_query("SELECT interface_id,device_id FROM `interfaces`");
while ($interface = mysql_fetch_array($interface_query)) {
$device_id = $interface['device_id'];
$interface_id = $interface['interface_id'];
@@ -52,8 +52,8 @@ while ($interface = mysql_fetch_array($interface_query)) {
}
echo(mysql_result(mysql_query("SELECT COUNT(*) FROM `interfaces`"), 0) . " interfaces at end\n");
-#echo(mysql_result(mysql_query("SELECT COUNT(id) FROM `links`"), 0) . " links at start\n");
-#$link_query = mysql_query("SELECT id,src_if,dst_if FROM `links`");
+echo(mysql_result(mysql_query("SELECT COUNT(id) FROM `links`"), 0) . " links at start\n");
+$link_query = mysql_query("SELECT id,src_if,dst_if FROM `links`");
while ($link = mysql_fetch_array($link_query)) {
$id = $link['id'];
$src = $link['src_if'];
diff --git a/generate-iplist.php b/generate-iplist.php
index b4aa37441d..a4478fba87 100755
--- a/generate-iplist.php
+++ b/generate-iplist.php
@@ -3,7 +3,7 @@
include("config.php");
include("includes/functions.php");
-`rm ips.txt && touch ips.txt`;
+shell_exec("rm ips.txt && touch ips.txt");
$handle = fopen("ips.txt", "w+");
@@ -12,7 +12,7 @@ while ($data = mysql_fetch_array($query)) {
$cidr = $data['cidr'];
list ($network, $bits) = split("/", $cidr);
if($bits != '32' && $bits != '32' && $bits > '22') {
- $broadcast = trim(`$ipcalc $cidr | grep Broadcast | cut -d" " -f 2`);
+ $broadcast = trim(shell_exec($config['ipcalc']." $cidr | grep Broadcast | cut -d\" \" -f 2"));
$ip = ip2long($network) + '1';
$end = ip2long($broadcast);
while($ip < $end) {
diff --git a/html/index.php b/html/index.php
index 323beb6957..592efb29fa 100755
--- a/html/index.php
+++ b/html/index.php
@@ -61,6 +61,7 @@ function popUp(URL) {
} else {
echo("Not logged in!");
}
+ if( Net_IPv6::checkIPv6($_SERVER['REMOTE_ADDR'])) { echo(" via IPv6"); } else { echo(" via IPv4"); }
?>
diff --git a/includes/discovery/ipaddresses.php b/includes/discovery/ipaddresses.php
index 9f4613a8c0..7da2369db8 100755
--- a/includes/discovery/ipaddresses.php
+++ b/includes/discovery/ipaddresses.php
@@ -10,7 +10,7 @@
list($oid,$ifIndex) = explode(" ", $data);
$mask = shell_exec($config['snmpget']." -O qv -".$device['snmpver']." -c ".$device['community']." ".$device['hostname']." ipAdEntNetMask.$oid");
$mask = trim($mask);
- $network = trim(`$ipcalc $oid/$mask | grep Network | cut -d" " -f 4`);
+ $network = trim(shell_exec ($config['ipcalc'] . " $oid/$mask | grep Network | cut -d" " -f 4"));
list($net,$cidr) = explode("/", $network);
$cidr = trim($cidr);
if($mask == "255.255.255.255") { $cidr = "32"; $network = "$oid/$cidr"; }
diff --git a/includes/functions.php b/includes/functions.php
index b4e3442621..e5ffe19d09 100755
--- a/includes/functions.php
+++ b/includes/functions.php
@@ -2,6 +2,8 @@
include("common.php");
+include("ipv6.php");
+
include("generic.php");
include("ios.php");
include("unix.php");
@@ -15,7 +17,6 @@ include("cisco-entities.php");
include("syslog.php");
-
function write_dev_attrib($device_id, $attrib_type, $attrib_value) {
$count_sql = "SELECT COUNT(*) FROM devices_attribs WHERE `device_id` = '" . $device_id . "' AND `attrib_type` = '$attrib_type'";
@@ -53,8 +54,8 @@ function shorthost($hostname, $len=16) {
}
function rrdtool_update($rrdfile, $rrdupdate) {
- global $rrdtool;
- return `$rrdtool update $rrdfile $rrdupdate`;
+ global $config;
+ return shell_exec($config['rrdtool'] . " update $rrdfile $rrdupdate");
}
function getHostOS($hostname, $community, $snmpver) {
@@ -460,8 +461,8 @@ function isSNMPable($hostname, $community, $snmpver) {
}
function isPingable($hostname) {
- global $fping;
- $status = `$fping $hostname`;
+ global $config;
+ $status = shell_exec($config['fping'] . " $hostname");
if(strstr($status, "alive")) {
return TRUE;
} else {
diff --git a/includes/generic.php b/includes/generic.php
index 7bbeed3725..23b3206d35 100755
--- a/includes/generic.php
+++ b/includes/generic.php
@@ -5,8 +5,7 @@ function pollDevice() {
global $device;
global $community;
global $config;
- $rrdtool = $config['rrdtool'];
- $id = $device['id'];
+ $id = $device['device_id'];
$hostname = $device['hostname'];
$hardware = $device['hardware'];
$version = $device['version'];
@@ -22,20 +21,20 @@ function pollDevice() {
$memgraph = "public_html/graphs/" . $device['hostname'] . "-mem.png";
$cmd = $config['snmpget'] . " -O qv -v2c -c ".$community." ".$device['hostname']." 1.3.6.1.4.1.9.2.1.58.0 1.3.6.1.4.1.9.2.1.56.0";
- list ($cpu5m, $cpu5s) = explode("\n", `$cmd`);
+ list ($cpu5m, $cpu5s) = explode("\n", shell_exec($cmd));
$cpu5m = $cpu5m + 0;
$cpu5s = $cpu5s + 0;
$cmd = $config['snmpget'] . " -O qv -v2c -c ".$community." ".$device['hostname']." .1.3.6.1.4.1.9.9.13.1.3.1.3.1 .1.3.6.1.4.1.9.9.13.1.3.1.3.2";
- list ($tempin1, $tempout1) = explode("\n", `$cmd`);
+ list ($tempin1, $tempout1) = explode("\n", shell_exec($cmd));
$tempin1 = $tempin1 +0;
$tempout1 = $tempout1 + 0;
$cmd = $config['snmpget'] . " -O qv -v2c -c ".$community." ".$device['hostname'];
$cmd .= " .1.3.6.1.4.1.9.9.48.1.1.1.6.2 .1.3.6.1.4.1.9.9.48.1.1.1.6.1 .1.3.6.1.4.1.9.9.48.1.1.1.5.2 .1.3.6.1.4.1.9.9.48.1.1.1.5.1";
- list ($memfreeio, $memfreeproc, $memusedio, $memusedproc) = explode("\n", `$cmd`);
+ list ($memfreeio, $memfreeproc, $memusedio, $memusedproc) = explode("\n", shell_exec($cmd));
echo($device['hostname'] . "\n");
$memfreeio = $memfreeio + 0;
@@ -44,17 +43,17 @@ function pollDevice() {
$memusedproc = $memusedproc + 0;
$memtotal = $memfreeio + $memfreeproc + $memusedio + $memusedproc;
if (!is_file($cpurrd)) {
- $rrdcreate = `$rrdtool create $cpurrd --step 300 DS:LOAD5S:GAUGE:600:-1:100 DS:LOAD5M:GAUGE:600:-1:100 RRA:AVERAGE:0.5:1:1200`;
+ shell_exec($config['rrdtool'] . " create $cpurrd --step 300 DS:LOAD5S:GAUGE:600:-1:100 DS:LOAD5M:GAUGE:600:-1:100 RRA:AVERAGE:0.5:1:1200");
}
if (!is_file($temprrd)) {
- $rrdcreate = `$rrdtool create $temprrd --step 300 DS:TEMPIN1:GAUGE:600:-1:100 DS:TEMPOUT1:GAUGE:600:-1:100 RRA:AVERAGE:0.5:1:1200`;
+ shell_exec($config['rrdtool'] . " create $temprrd --step 300 DS:TEMPIN1:GAUGE:600:-1:100 DS:TEMPOUT1:GAUGE:600:-1:100 RRA:AVERAGE:0.5:1:1200");
}
if (!is_file($memrrd)) {
- $rrdcreate = `$rrdtool create $memrrd --step 300 DS:IOFREE:GAUGE:600:0:500000000 DS:IOUSED:GAUGE:600:-1:500000000 DS:PROCFREE:GAUGE:600:0:500000000 DS:PROCUSED:GAUGE:600:-1:500000000 DS:MEMTOTAL:GAUGE:600:-1:500000000 RRA:AVERAGE:0.5:1:1200`;
+ shell_exec($config['rrdtool'] . " create $memrrd --step 300 DS:IOFREE:GAUGE:600:0:500000000 DS:IOUSED:GAUGE:600:-1:500000000 DS:PROCFREE:GAUGE:600:0:500000000 DS:PROCUSED:GAUGE:600:-1:500000000 DS:MEMTOTAL:GAUGE:600:-1:500000000 RRA:AVERAGE:0.5:1:1200");
}
- `$rrdtool update $temprrd N:$tempin1:$tempout1`;
- `$rrdtool update $cpurrd N:$cpu5s:$cpu5m`;
- `$rrdtool update $memrrd N:$$memfreeio:$memusedio:$memfreeproc:$memusedproc:$memtotal`;
+ shell_exec($config['rrdtool'] . " update $temprrd N:$tempin1:$tempout1");
+ shell_exec($config['rrdtool'] . " update $cpurrd N:$cpu5s:$cpu5m");
+ shell_exec($config['rrdtool'] . " update $memrrd N:$$memfreeio:$memusedio:$memfreeproc:$memusedproc:$memtotal");
}
?>
diff --git a/includes/graphing.php b/includes/graphing.php
index 0c2ade7a97..b34eb71040 100644
--- a/includes/graphing.php
+++ b/includes/graphing.php
@@ -2,9 +2,10 @@
include("graphing/screenos.php");
include("graphing/fortigate.php");
+include("graphing/windows.php");
function graph_multi_bits ($interfaces, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -E --start $from --end " . ($to - 150) . " --width $width --height $height";
if($height < "33") { $options .= " --only-graph"; }
@@ -38,16 +39,16 @@ function graph_multi_bits ($interfaces, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:outbits:LAST:%6.2lf%s";
$options .= " GPRINT:outbits:AVERAGE:%6.2lf%s";
$options .= " GPRINT:outbits:MAX:%6.2lf%s";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal"; }
- $thing = `$rrdtool graph $imgfile $options`;
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal"; }
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function temp_graph ($temp, $graph, $from, $to, $width, $height, $title, $vertical) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
if($width <= "300") {
- $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal ";
+ $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal ";
}
$hostname = gethostbyid($device);
$imgfile = "graphs/" . "$graph";
@@ -100,16 +101,16 @@ function temp_graph ($temp, $graph, $from, $to, $width, $height, $title, $vertic
$opt = str_replace(" ","\ ", $opt);
$options .= " $opt";
}
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function temp_graph_dev ($device, $graph, $from, $to, $width, $height, $title, $vertical) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$options = "--start $from --end $to --width $width --height $height --vertical-label '$vertical' --alt-autoscale-max ";
$options .= " -l 0 -E -b 1024 --title '$title' ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$hostname = gethostbyid($device);
$imgfile = "graphs/" . "$graph";
$iter = "1";
@@ -130,18 +131,18 @@ function temp_graph_dev ($device, $graph, $from, $to, $width, $height, $title, $
$options .= " GPRINT:temp" . $temperature[temp_id] . ":MAX:%3.0lf\°C\\\l ";
$iter++;
}
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function graph_device_bits ($device, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -E --start $from --end " . ($to - 150) . " --width $width --height $height ";
if($height < "33") { $options .= " --only-graph"; }
$hostname = gethostbyid($device);
$query = mysql_query("SELECT `ifIndex` FROM `interfaces` WHERE `device_id` = '$device' AND `ifType` NOT LIKE '%oopback%' AND `ifType` NOT LIKE '%SVI%' AND `ifType` != 'l2vlan'");
- if($width <= "300") { $options .= "--font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= "--font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$pluses = "";
while($int = mysql_fetch_row($query)) {
if(is_file($config['rrd_dir'] . "/" . $hostname . "/" . $int[0] . ".rrd")) {
@@ -171,18 +172,18 @@ function graph_device_bits ($device, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:outbits:LAST:%6.2lf%s ";
$options .= " GPRINT:outbits:AVERAGE:%6.2lf%s ";
$options .= " GPRINT:outbits:MAX:%6.2lf%s ";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function trafgraph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$period = $to - $from;
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
if($height < "33") { $options .= " --only-graph"; }
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:inoctets=$database:INOCTETS:AVERAGE";
$options .= " DEF:outoctets=$database:OUTOCTETS:AVERAGE";
$options .= " CDEF:octets=inoctets,outoctets,+";
@@ -214,16 +215,16 @@ function trafgraph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:totout:Out\ %6.2lf%s\)\\\\l";
$options .= " LINE1:95thin#aa0000";
$options .= " LINE1:d95thout#aa0000";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function pktsgraph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:in=$database:INUCASTPKTS:AVERAGE";
$options .= " DEF:out=$database:OUTUCASTPKTS:AVERAGE";
$options .= " CDEF:dout=out,-1,*";
@@ -238,16 +239,16 @@ function pktsgraph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:out:LAST:%6.2lf%spps";
$options .= " GPRINT:out:AVERAGE:%6.2lf%spps";
$options .= " GPRINT:out:MAX:%6.2lf%spps\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function errorgraph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:in=$database:INERRORS:AVERAGE";
$options .= " DEF:out=$database:OUTERRORS:AVERAGE";
$options .= " CDEF:dout=out,-1,*";
@@ -262,16 +263,16 @@ function errorgraph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:out:LAST:%6.2lf%spps";
$options .= " GPRINT:out:AVERAGE:%6.2lf%spps";
$options .= " GPRINT:out:MAX:%6.2lf%spps\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function nucastgraph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:in=$database:INNUCASTPKTS:AVERAGE";
$options .= " DEF:out=$database:OUTNUCASTPKTS:AVERAGE";
$options .= " CDEF:dout=out,-1,*";
@@ -286,16 +287,16 @@ function nucastgraph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:out:LAST:%6.2lf%spps";
$options .= " GPRINT:out:AVERAGE:%6.2lf%spps";
$options .= " GPRINT:out:MAX:%6.2lf%spps\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function bgpupdatesgraph ($rrd, $graph , $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") {$options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") {$options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:in=$database:bgpPeerInUpdates:AVERAGE";
$options .= " DEF:out=$database:bgpPeerOutUpdates:AVERAGE";
$options .= " CDEF:dout=out,-1,*";
@@ -310,33 +311,33 @@ function bgpupdatesgraph ($rrd, $graph , $from, $to, $width, $height) {
$options .= " GPRINT:out:LAST:%6.2lf%sU/s";
$options .= " GPRINT:out:AVERAGE:%6.2lf%sU/s";
$options .= " GPRINT:out:MAX:%6.2lf%sU/s\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function cpugraph ($rrd, $graph , $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -l 0 -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") {$options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") {$options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:5s=$database:LOAD5S:AVERAGE";
$options .= " DEF:5m=$database:LOAD5M:AVERAGE";
$options .= " COMMENT:\ \ \ \ \ \ \ \ \ \ Current\ \ Minimum\ \ Maximum\ \ Average\\\\n";
$options .= " AREA:5m#ffee99: LINE1.25:5m#aa2200:Load\ %";
$options .= " GPRINT:5m:LAST:%6.2lf\ GPRINT:5m:AVERAGE:%6.2lf\ ";
$options .= " GPRINT:5m:MAX:%6.2lf\ GPRINT:5m:AVERAGE:%6.2lf\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function uptimegraph ($rrd, $graph , $from, $to, $width, $height, $title, $vertical) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:uptime=$database:uptime:AVERAGE";
$options .= " CDEF:cuptime=uptime,86400,/";
$options .= " COMMENT:Days\ \ \ \ \ \ Current\ \ Minimum\ \ Maximum\ \ Average\\\\n";
@@ -344,18 +345,18 @@ function uptimegraph ($rrd, $graph , $from, $to, $width, $height, $title, $verti
$options .= " LINE1.25:cuptime#36393D:";
$options .= " GPRINT:cuptime:LAST:%6.2lf\ GPRINT:cuptime:AVERAGE:%6.2lf\ ";
$options .= " GPRINT:cuptime:MAX:%6.2lf\ GPRINT:cuptime:AVERAGE:%6.2lf\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function memgraph ($rrd, $graph , $from, $to, $width, $height, $title, $vertical) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$period = $to - $from;
$options = "-l 0 --alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:MEMTOTAL=$database:MEMTOTAL:AVERAGE";
$options .= " DEF:IOFREE=$database:IOFREE:AVERAGE";
$options .= " DEF:IOUSED=$database:IOUSED:AVERAGE";
@@ -376,17 +377,17 @@ function memgraph ($rrd, $graph , $from, $to, $width, $height, $title, $vertical
$options .= " GPRINT:FREE:MAX:%6.2lf%s";
$options .= " GPRINT:FREE:AVERAGE:%6.2lf%s\\\\l";
$options .= " LINE1:MEMTOTAL#000000:";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function ip_graph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$period = $to - $from;
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; }
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
$options .= " DEF:ipForwDatagrams=$database:ipForwDatagrams:AVERAGE";
$options .= " DEF:ipInDelivers=$database:ipInDelivers:AVERAGE";
$options .= " DEF:ipInReceives=$database:ipInReceives:AVERAGE";
@@ -423,17 +424,17 @@ function ip_graph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:ipOutNoRoutes:LAST:%6.2lf%s";
$options .= " GPRINT:ipOutNoRoutes:AVERAGE:\ %6.2lf%s";
$options .= " GPRINT:ipOutNoRoutes:MAX:\ %6.2lf%s\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function icmp_graph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$period = $to - $from;
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; } $options .= "DEF:icmpInMsgs=$database:icmpInMsgs:AVERAGE";
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; } $options .= "DEF:icmpInMsgs=$database:icmpInMsgs:AVERAGE";
$options .= " DEF:icmpOutMsgs=$database:icmpOutMsgs:AVERAGE";
$options .= " DEF:icmpInErrors=$database:icmpInErrors:AVERAGE";
$options .= " DEF:icmpOutErrors=$database:icmpOutErrors:AVERAGE";
@@ -441,50 +442,50 @@ function icmp_graph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " DEF:icmpOutEchos=$database:icmpOutEchos:AVERAGE";
$options .= " DEF:icmpInEchoReps=$database:icmpInEchoReps:AVERAGE";
$options .= " DEF:icmpOutEchoReps=$database:icmpOutEchoReps:AVERAGE";
- $options .= " COMMENT:Packets/sec\ \ \ \ Current\ \ \ \ Average\ \ \ Maximum\\\n";
- $options .= " LINE1.25:icmpInMsgs#00cc00:InMsgs ";
- $options .= " GPRINT:icmpInMsgs:LAST:%6.2lf%s";
- $options .= " GPRINT:icmpInMsgs:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpInMsgs:MAX:\ %6.2lf%s\\\n";
+ $options .= " COMMENT:Packets/sec\ \ \ \ Current\ \ \ \ Average\ \ \ Maximum\\\\n";
+ $options .= " LINE1.25:icmpInMsgs#00cc00:InMsgs ";
+ $options .= " GPRINT:icmpInMsgs:LAST:\ \ \ \ \ %6.2lf%s";
+ $options .= " GPRINT:icmpInMsgs:AVERAGE:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpInMsgs:MAX:\ %6.2lf%s\\\\n";
$options .= " LINE1.25:icmpOutMsgs#006600:OutMsgs ";
- $options .= " GPRINT:icmpOutMsgs:LAST:%6.2lf%s";
- $options .= " GPRINT:icmpOutMsgs:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpOutMsgs:MAX:\ %6.2lf%s\\\n";
+ $options .= " GPRINT:icmpOutMsgs:LAST:\ \ \ \ %6.2lf%s";
+ $options .= " GPRINT:icmpOutMsgs:AVERAGE:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpOutMsgs:MAX:\ %6.2lf%s\\\\n";
$options .= " LINE1.25:icmpInErrors#cc0000:InErrors ";
- $options .= " GPRINT:icmpInErrors:LAST:%6.2lf%s";
- $options .= " GPRINT:icmpInErrors:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpInErrors:MAX:\ %6.2lf%s\\\n";
+ $options .= " GPRINT:icmpInErrors:LAST:\ \ \ %6.2lf%s";
+ $options .= " GPRINT:icmpInErrors:AVERAGE:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpInErrors:MAX:\ %6.2lf%s\\\\n";
$options .= " LINE1.25:icmpOutErrors#660000:OutErrors ";
- $options .= " GPRINT:icmpOutErrors:LAST:%6.2lf%s";
- $options .= " GPRINT:icmpOutErrors:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpOutErrors:MAX:\ %6.2lf%s\\\n";
+ $options .= " GPRINT:icmpOutErrors:LAST:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpOutErrors:AVERAGE:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpOutErrors:MAX:\ %6.2lf%s\\\\n";
$options .= " LINE1.25:icmpInEchos#0066cc:InEchos ";
- $options .= " GPRINT:icmpInEchos:LAST:%6.2lf%s";
- $options .= " GPRINT:icmpInEchos:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpInEchos:MAX:\ %6.2lf%s\\\n";
+ $options .= " GPRINT:icmpInEchos:LAST:\ \ \ \ %6.2lf%s";
+ $options .= " GPRINT:icmpInEchos:AVERAGE:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpInEchos:MAX:\ %6.2lf%s\\\\n";
$options .= " LINE1.25:icmpOutEchos#003399:OutEchos ";
- $options .= " GPRINT:icmpOutEchos:LAST:%6.2lf%s";
- $options .= " GPRINT:icmpOutEchos:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpOutEchos:MAX:\ %6.2lf%s\\\n";
+ $options .= " GPRINT:icmpOutEchos:LAST:\ \ \ %6.2lf%s";
+ $options .= " GPRINT:icmpOutEchos:AVERAGE:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpOutEchos:MAX:\ %6.2lf%s\\\\n";
$options .= " LINE1.25:icmpInEchoReps#cc00cc:InEchoReps ";
- $options .= " GPRINT:icmpInEchoReps:LAST:%6.2lf%s";
- $options .= " GPRINT:icmpInEchoReps:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpInEchoReps:MAX:\ %6.2lf%s\\\n";
+ $options .= " GPRINT:icmpInEchoReps:LAST:\ %6.2lf%s";
+ $options .= " GPRINT:icmpInEchoReps:AVERAGE:\ \ %6.2lf%s";
+ $options .= " GPRINT:icmpInEchoReps:MAX:\ %6.2lf%s\\\\n";
$options .= " LINE1.25:icmpOutEchoReps#990099:OutEchoReps";
$options .= " GPRINT:icmpOutEchoReps:LAST:%6.2lf%s";
$options .= " GPRINT:icmpOutEchoReps:AVERAGE:\ %6.2lf%s";
- $options .= " GPRINT:icmpOutEchoReps:MAX:\ %6.2lf%s\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $options .= " GPRINT:icmpOutEchoReps:MAX:\ %6.2lf%s\\\\n";
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function tcp_graph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$period = $to - $from;
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; } $options .= "DEF:icmpInMsgs=$database:icmpInMsgs:AVERAGE";
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; } $options .= "DEF:icmpInMsgs=$database:icmpInMsgs:AVERAGE";
$options .= " DEF:tcpActiveOpens=$database:tcpActiveOpens:AVERAGE";
$options .= " DEF:tcpPassiveOpens=$database:tcpPassiveOpens:AVERAGE";
$options .= " DEF:tcpAttemptFails=$database:tcpAttemptFails:AVERAGE";
@@ -521,17 +522,17 @@ function tcp_graph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:tcpRetransSegs:LAST:%6.2lf%s";
$options .= " GPRINT:tcpRetransSegs:AVERAGE:\ %6.2lf%s";
$options .= " GPRINT:tcpRetransSegs:MAX:\ %6.2lf%s\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
function udp_graph ($rrd, $graph, $from, $to, $width, $height) {
- global $config, $rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = $config['rrd_dir'] . "/" . $rrd;
$imgfile = "graphs/" . "$graph";
$period = $to - $from;
$options = "--alt-autoscale-max -E --start $from --end $to --width $width --height $height ";
- if($width <= "300") { $options .= " --font LEGEND:7:$mono_font --font AXIS:6:$mono_font --font-render-mode normal "; } $options .= "DEF:icmpInMsgs=$database:icmpInMsgs:AVERAGE";
+ if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; } $options .= "DEF:icmpInMsgs=$database:icmpInMsgs:AVERAGE";
$options .= " DEF:udpInDatagrams=$database:udpInDatagrams:AVERAGE";
$options .= " DEF:udpOutDatagrams=$database:udpOutDatagrams:AVERAGE";
$options .= " DEF:udpInErrors=$database:udpInErrors:AVERAGE";
@@ -553,7 +554,7 @@ function udp_graph ($rrd, $graph, $from, $to, $width, $height) {
$options .= " GPRINT:udpNoPorts:LAST:%6.2lf%s";
$options .= " GPRINT:udpNoPorts:AVERAGE:\ %6.2lf%s";
$options .= " GPRINT:udpNoPorts:MAX:\ %6.2lf%s\\\\n";
- $thing = `$rrdtool graph $imgfile $options`;
+ $thing = shell_exec($config['rrdtool'] . " graph $imgfile $options");
return $imgfile;
}
diff --git a/includes/graphing/windows.php b/includes/graphing/windows.php
new file mode 100755
index 0000000000..88a853f1c3
--- /dev/null
+++ b/includes/graphing/windows.php
@@ -0,0 +1,251 @@
+
+
+function memgraphWin ($rrd, $graph, $from="-2d")
+{
+
+ $database = "rrd/" . $rrd;
+ $imgfile = "graphs/" . "$graph";
+ $opts = array (
+ "--start",
+ $from,
+ "-v MB",
+ "-b 1000",
+ "--rigid",
+ "--title", "Memory Usage",
+ "--alt-autoscale-max",
+ "-l 0",
+ "--width", "335", "--height", "100",
+ "DEF:totalswap=$database:totalswap:AVERAGE",
+ "DEF:availswap=$database:availswap:AVERAGE",
+ "DEF:totalreal=$database:totalreal:AVERAGE",
+ "DEF:availreal=$database:availreal:AVERAGE",
+ "DEF:totalfree=$database:totalfree:AVERAGE",
+ "DEF:shared=$database:shared:AVERAGE",
+ "DEF:buffered=$database:buffered:AVERAGE",
+ "DEF:cached=$database:cached:AVERAGE",
+ "CDEF:usedreal=totalreal,availreal,-",
+ "CDEF:usedswap=totalswap,availswap,-",
+ "CDEF:cdeftot=availreal,shared,buffered,usedreal,cached,usedswap,+,+,+,+,+",
+ "AREA:usedreal#ee8000:used",
+ "GPRINT:usedreal:LAST: Cur\:%8.2lf %s",
+ "GPRINT:usedreal:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:usedreal:MAX: Max\:%8.2lf %s\\n",
+ "STACK:shared#ec9900:shared",
+ "GPRINT:shared:LAST: Cur\:%8.2lf %s",
+ "GPRINT:shared:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:shared:MAX: Max\:%8.2lf %s\\n",
+ "STACK:availreal#eacc00:free",
+ "GPRINT:availreal:LAST: Cur\:%8.2lf %s",
+ "GPRINT:availreal:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:availreal:MAX: Max\:%8.2lf %s\\n",
+ "STACK:buffered#cc0000:buffers",
+ "GPRINT:buffered:LAST:Cur\:%8.2lf %s",
+ "GPRINT:buffered:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:buffered:MAX: Max\:%8.2lf %s\\n",
+ "STACK:cached#9fa4ee:cached",
+ "GPRINT:cached:LAST: Cur\:%8.2lf %s",
+ "GPRINT:cached:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:cached:MAX: Max\:%8.2lf %s\\n",
+ "STACK:usedswap#afeced:swap",
+ "GPRINT:usedswap:LAST: Cur\:%8.2lf %s",
+ "GPRINT:usedswap:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:usedswap:MAX: Max\:%8.2lf %s",
+ "LINE1:totalreal#050505:total");
+ $ret = rrd_graph("$imgfile", $opts, count($opts));
+ if( !is_array($ret) ) {
+ $err = rrd_error();
+ echo "rrd_graph() ERROR: $err\n";
+ return FALSE;
+ } else {
+ return $imgfile;
+ }
+}
+
+function loadgraphWin ($rrd, $graph, $from="-2d") {
+
+ $database = "rrd/" . $rrd;
+ $imgfile = "graphs/" . "$graph";
+ $opts = array(
+ "--title", "Load Averages",
+ "--start",
+ $from,
+ "-v Load",
+ "--rigid",
+ "--alt-autoscale-max",
+ "-l 0",
+ "--width", "335", "--height", "100",
+ "DEF:1min=$database:1min:AVERAGE",
+ "DEF:5min=$database:5min:AVERAGE",
+ "DEF:15min=$database:15min:AVERAGE",
+ "CDEF:a=1min,100,/",
+ "CDEF:b=5min,100,/",
+ "CDEF:c=15min,100,/",
+ "CDEF:cdefd=a,b,c,+,+",
+ "AREA:a#eacc00:1 Minute:",
+ "LINE1:a#c5aa00:",
+ "GPRINT:a:LAST: Cur\:%8.2lf %s",
+ "GPRINT:a:AVERAGE: Ave\:%8.2lf %s",
+ "GPRINT:a:MAX: Max\:%8.2lf %s\\n",
+ "LINE1.5:b#ea8f00:5 Minute:",
+ "GPRINT:b:LAST: Cur\:%8.2lf %s",
+ "GPRINT:b:AVERAGE: Ave\:%8.2lf %s",
+ "GPRINT:b:MAX: Max\:%8.2lf %s\\n",
+ "LINE1.5:c#cc0000:15 Minute",
+ "GPRINT:c:LAST:Cur\:%8.2lf %s",
+ "GPRINT:c:AVERAGE: Ave\:%8.2lf %s",
+ "GPRINT:c:MAX: Max\:%8.2lf %s\\n");
+
+ $ret = rrd_graph("$imgfile", $opts, count($opts));
+ if( !is_array($ret) ) {
+ $err = rrd_error();
+ echo "rrd_graph() ERROR: $err\n";
+ return FALSE;
+ } else {
+ return $imgfile;
+ }
+}
+
+function usersgraphWin ($rrd, $graph, $from="-2d") {
+
+ $database = "rrd/" . $rrd;
+ $imgfile = "graphs/" . "$graph";
+ $opts = array(
+ "--title", "Logged on Users",
+ "--vertical-label", "Users",
+ "-l 0",
+ "--width", "335", "--height", "100",
+ "--start",
+ $from,
+ "DEF:users=$database:users:AVERAGE",
+ "AREA:users#eacc00:users",
+ "LINE1.5:users#cc0000:",
+ "GPRINT:users:LAST: Cur\:%3.0lf %s",
+ "GPRINT:users:AVERAGE: Avg\:%3.0lf %s",
+ "GPRINT:users:MIN: Min\:%3.0lf %s",
+ "GPRINT:users:MAX: Max\:%3.0lf %s\\n");
+
+ $ret = rrd_graph("$imgfile", $opts, count($opts));
+ if( !is_array($ret) ) {
+ $err = rrd_error();
+ echo "rrd_graph() ERROR: $err\n";
+ return FALSE;
+ } else {
+ return $imgfile;
+ }
+}
+
+function procsgraphWin ($rrd, $graph, $from="-2d") {
+
+ $database = "rrd/" . $rrd;
+ $imgfile = "graphs/" . "$graph";
+ $opts = array(
+ "-v # Processes",
+ "--title", "Running Processes",
+ "--vertical-label", "procs",
+ "-l 0",
+ "--width", "335", "--height", "100",
+ "--start",
+ $from,
+ "DEF:procs=$database:procs:AVERAGE",
+ "AREA:procs#eacc00:Processes",
+ "LINE1.5:procs#cc0000:",
+ "GPRINT:procs:LAST: Cur\:%3.0lf %s",
+ "GPRINT:procs:AVERAGE: Avg\:%3.0lf %s",
+ "GPRINT:procs:MIN: Min\:%3.0lf %s",
+ "GPRINT:procs:MAX: Max\:%3.0lf %s\\n");
+
+ $ret = rrd_graph("$imgfile", $opts, count($opts));
+ if( !is_array($ret) ) {
+ $err = rrd_error();
+ echo "rrd_graph() ERROR: $err\n";
+ return FALSE;
+ } else {
+ return $imgfile;
+ }
+}
+
+function cpugraphWin ($rrd, $graph, $from="-2d") {
+
+ $database = "rrd/" . $rrd;
+ $imgfile = "graphs/" . "$graph";
+ $opts = array(
+ "-v CPU Utilization",
+ "--title", "Processor Usage",
+ "-u 100",
+ "--rigid",
+ "--vertical-label", "Load (%)",
+ "-l 0",
+ "--width", "335", "--height", "100",
+ "--start",
+ $from,
+ "DEF:user=$database:user:AVERAGE",
+ "DEF:nice=$database:nice:AVERAGE",
+ "DEF:system=$database:system:AVERAGE",
+ "DEF:idle=$database:idle:AVERAGE",
+ "CDEF:total=user,nice,system,idle,+,+,+",
+ "CDEF:user_perc=user,total,/,100,*",
+ "CDEF:nice_perc=nice,total,/,100,*",
+ "CDEF:system_perc=system,total,/,100,*",
+ "CDEF:idle_perc=idle,total,/,100,*",
+ "AREA:user_perc#eacc00:user",
+ "GPRINT:user_perc:LAST: Cur\:%3.0lf%%",
+ "GPRINT:user_perc:AVERAGE: Avg\:%3.0lf%%",
+ "GPRINT:user_perc:MAX: Max\:%3.0lf%%\\n",
+ "AREA:nice_perc#ea8f00:system:STACK",
+ "GPRINT:nice_perc:LAST:Cur\:%3.0lf%%",
+ "GPRINT:nice_perc:AVERAGE: Avg\:%3.0lf%%",
+ "GPRINT:nice_perc:MAX: Max\:%3.0lf%%\\n",
+ "AREA:system_perc#ff3932:nice:STACK",
+ "GPRINT:system_perc:LAST: Cur\:%3.0lf%%",
+ "GPRINT:system_perc:AVERAGE: Avg\:%3.0lf%%",
+ "GPRINT:system_perc:MAX: Max\:%3.0lf%%\\n",
+ "AREA:idle_perc#fafdce:idle:STACK",
+ "GPRINT:idle_perc:LAST: Cur\:%3.0lf%%",
+ "GPRINT:idle_perc:AVERAGE: Avg\:%3.0lf%%",
+ "GPRINT:idle_perc:MAX: Max\:%3.0lf%%\\n");
+ $ret = rrd_graph("$imgfile", $opts, count($opts));
+ if( !is_array($ret) ) {
+ $err = rrd_error();
+ return FALSE;
+ } else {
+ return $imgfile;
+ }
+}
+
+function storagegraphWin ($rrd, $graph, $from="-2d", $descr)
+{
+
+ $database = "rrd/" . $rrd;
+ $imgfile = "graphs/" . "$graph";
+ $opts = array (
+ "--start",
+ $from,
+ "-v MB",
+ "-b 1024",
+ "--rigid",
+ "--title", $descr,
+ "--alt-autoscale-max",
+ "-l 0",
+ "--width", "335", "--height", "100",
+ "DEF:size=$database:size:AVERAGE",
+ "DEF:used=$database:used:AVERAGE",
+ "AREA:size#80ee80:Total",
+ "GPRINT:size:LAST:Cur\:%8.2lf %s",
+ "GPRINT:size:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:size:MAX: Max\:%8.2lf %s\\n",
+ "AREA:used#ec9900:Used",
+ "GPRINT:used:LAST: Cur\:%8.2lf %s",
+ "GPRINT:used:AVERAGE: Avg\:%8.2lf %s",
+ "GPRINT:used:MAX: Max\:%8.2lf %s\\n",
+ "LINE1:size#000000:");
+ $ret = rrd_graph("$imgfile", $opts, count($opts));
+ if( !is_array($ret) ) {
+ $err = rrd_error();
+ echo "rrd_graph() ERROR: $err\n";
+ return FALSE;
+ } else {
+ return $imgfile;
+ }
+}
+
+?>
diff --git a/includes/ios.php b/includes/ios.php
index f3196399c6..fa3021647b 100755
--- a/includes/ios.php
+++ b/includes/ios.php
@@ -5,7 +5,6 @@ function pollDeviceIOS() {
global $device;
global $community;
global $config;
- $rrdtool = &$config['rrdtool'];
$id = $device['device_id'];
$hostname = $device['hostname'];
@@ -40,7 +39,7 @@ function pollDeviceIOS() {
$memusedproc = $memusedproc + 0;
$memtotal = $memfreeio + $memfreeproc + $memusedio + $memusedproc;
if (!is_file($cpurrd)) {
- $rrdcreate = `$rrdtool create $cpurrd --step 300 \
+ $rrdcreate = shell_exec($config['rrdtool'] . " create $cpurrd --step 300 \
DS:LOAD5S:GAUGE:600:-1:100 \
DS:LOAD5M:GAUGE:600:-1:100 \
RRA:AVERAGE:0.5:1:2000 \
@@ -50,10 +49,10 @@ function pollDeviceIOS() {
RRA:MAX:0.5:1:2000 \
RRA:MAX:0.5:6:2000 \
RRA:MAX:0.5:24:2000 \
- RRA:MAX:0.5:288:2000`;
+ RRA:MAX:0.5:288:2000");
}
if (!is_file($temprrd)) {
- $rrdcreate = `$rrdtool create $temprrd --step 300 \
+ $rrdcreate = shell_exec($config['rrdtool'] . " create $temprrd --step 300 \
DS:TEMPIN1:GAUGE:600:-25:100 \
DS:TEMPOUT1:GAUGE:600:-25:100 \
RRA:AVERAGE:0.5:1:2000 \
@@ -63,10 +62,10 @@ function pollDeviceIOS() {
RRA:MAX:0.5:1:2000 \
RRA:MAX:0.5:6:2000 \
RRA:MAX:0.5:24:2000 \
- RRA:MAX:0.5:288:2000`;
+ RRA:MAX:0.5:288:2000");
}
if (!is_file($memrrd)) {
- $rrdcreate = `$rrdtool create $memrrd --step 300 \
+ $rrdcreate = shell_exec($config['rrdtool'] . " create $memrrd --step 300 \
DS:IOFREE:GAUGE:600:0:U \
DS:IOUSED:GAUGE:600:-1:U \
DS:PROCFREE:GAUGE:600:0:U \
@@ -79,12 +78,12 @@ function pollDeviceIOS() {
RRA:MAX:0.5:1:2000 \
RRA:MAX:0.5:6:2000 \
RRA:MAX:0.5:24:2000 \
- RRA:MAX:0.5:288:2000`;
+ RRA:MAX:0.5:288:2000");
}
- `$rrdtool update $temprrd N:$tempin1:$tempout1`;
- `$rrdtool update $cpurrd N:$cpu5s:$cpu5m`;
- `$rrdtool update $memrrd N:$memfreeio:$memusedio:$memfreeproc:$memusedproc:$memtotal`;
+ shell_exec($config['rrdtool'] . " update $temprrd N:$tempin1:$tempout1");
+ shell_exec($config['rrdtool'] . " update $cpurrd N:$cpu5s:$cpu5m");
+ shell_exec($config['rrdtool'] . " update $memrrd N:$memfreeio:$memusedio:$memfreeproc:$memusedproc:$memtotal");
}
?>
diff --git a/includes/ipv6.php b/includes/ipv6.php
new file mode 100644
index 0000000000..d20cadfd6d
--- /dev/null
+++ b/includes/ipv6.php
@@ -0,0 +1,561 @@
+
+ * @copyright 2003-2005 The PHP Group
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @version CVS: $Id: IPv6.php,v 1.15 2007/11/16 00:22:28 alexmerz Exp $
+ * @link http://pear.php.net/package/Net_IPv6
+ */
+
+// {{{ constants
+
+/**
+ * Error message if netmask bits was not found
+ * @see isInNetmask
+ */
+define("NET_IPV6_NO_NETMASK_MSG", "Netmask length not found");
+
+/**
+ * Error code if netmask bits was not found
+ * @see isInNetmask
+ */
+define("NET_IPV6_NO_NETMASK", 10);
+
+/**
+ * Address Type: Unassigned (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_UNASSIGNED", 1);
+
+/**
+ * Address Type: Reserved (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_RESERVED", 11);
+
+/**
+ * Address Type: Reserved for NSAP Allocation (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_RESERVED_NSAP", 12);
+
+/**
+ * Address Type: Reserved for IPX Allocation (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_RESERVED_IPX", 13);
+
+/**
+ * Address Type: Reserved for Geographic-Based Unicast Addresses (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_RESERVED_UNICAST_GEOGRAPHIC", 14);
+
+/**
+ * Address Type: Provider-Based Unicast Address (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_UNICAST_PROVIDER", 22);
+
+/**
+ * Address Type: Multicast Addresses (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_MULTICAST", 31);
+
+/**
+ * Address Type: Link Local Use Addresses (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_LOCAL_LINK", 42);
+
+/**
+ * Address Type: Link Local Use Addresses (RFC 1884, Section 2.3)
+ * @see getAddressType()
+ */
+define("NET_IPV6_LOCAL_SITE", 43);
+
+/**
+ * Address Type: address can not assigned to a specific type
+ * @see getAddressType()
+ */
+define("NET_IPV6_UNKNOWN_TYPE", 1001);
+
+// }}}
+// {{{ Net_IPv6
+
+/**
+ * Class to validate and to work with IPv6 addresses.
+ *
+ * @category Net
+ * @package Net_IPv6
+ * @author Alexander Merz
+ * @copyright 2003-2005 The PHP Group
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @version CVS: $Id: IPv6.php,v 1.15 2007/11/16 00:22:28 alexmerz Exp $
+ * @link http://pear.php.net/package/Net_IPv6
+ * @author elfrink at introweb dot nl
+ * @author Josh Peck
+ */
+class Net_IPv6 {
+
+ // {{{ removeNetmaskBits()
+
+ /**
+ * Removes a possible existing netmask specification at an IP addresse.
+ *
+ * @param String $ip the (compressed) IP as Hex representation
+ * @return String the IP without netmask length
+ * @since 1.1.0
+ * @access public
+ * @static
+ */
+ function removeNetmaskSpec($ip) {
+ $addr = $ip;
+ if(false !== strpos($ip, '/')) {
+ $elements = explode('/', $ip);
+ if(2 == count($elements)) {
+ $addr = $elements[0];
+ }
+ }
+ return $addr;
+ }
+
+ /**
+ * Returns a possible existing netmask specification at an IP addresse.
+ *
+ * @param String $ip the (compressed) IP as Hex representation
+ * @return String the netmask spec
+ * @since 1.1.0
+ * @access public
+ * @static
+ */
+ function getNetmaskSpec($ip) {
+ $spec = '';
+ if(false !== strpos($ip, '/')) {
+ $elements = explode('/', $ip);
+ if(2 == count($elements)) {
+ $spec = $elements[1];
+ }
+ }
+ return $spec;
+ }
+
+ // }}}
+ // {{{ getNetmask()
+
+ /**
+ * Calculates the network prefix based on the netmask bits.
+ *
+ * @param String $ip the (compressed) IP in Hex format
+ * @param int $bits if the number of netmask bits is not part of the IP
+ * you must provide the number of bits
+ * @return String the network prefix
+ * @since 1.1.0
+ * @access public
+ * @static
+ */
+ function getNetmask($ip, $bits = null) {
+ if(null==$bits) {
+ $elements = explode('/', $ip);
+ if(2 == count($elements)) {
+ $addr = $elements[0];
+ $bits = $elements[1];
+ } else {
+ require_once 'PEAR.php';
+ return PEAR::raiseError(NET_IPV6_NO_NETMASK_MSG, NET_IPV6_NO_NETMASK);
+ }
+ } else {
+ $addr = $ip;
+ }
+ $addr = Net_IPv6::uncompress($addr);
+ $binNetmask = str_repeat('1', $bits).str_repeat('0', 128 - $bits);
+ return Net_IPv6::_bin2Ip(Net_IPv6::_ip2Bin($addr) & $binNetmask);
+ }
+
+ // }}}
+ // {{{ isInNetmask()
+
+ /**
+ * Checks if an (compressed) IP is in a specific address space.
+ *
+ * IF the IP does not contains the number of netmask bits (F8000::FFFF/16)
+ * then you have to use the $bits parameter.
+ *
+ * @param String $ip the IP to check (eg. F800::FFFF)
+ * @param String $netmask the netmask (eg F800::)
+ * @param int $bits the number of netmask bits to compare, if not given in $ip
+ * @return boolean true if $ip is in the netmask
+ * @since 1.1.0
+ * @access public
+ * @static
+ */
+ function isInNetmask($ip, $netmask, $bits=null) {
+ // try to get the bit count
+ if(null == $bits) {
+ $elements = explode('/', $ip);
+ if(2 == count($elements)) {
+ $ip = $elements[0];
+ $bits = $elements[1];
+ } else if(null == $bits) {
+ $elements = explode('/', $netmask);
+ if(2 == count($elements)) {
+ $netmask = $elements[0];
+ $bits = $elements[1];
+ }
+ if(null == $bits) {
+ require_once 'PEAR.php';
+ return PEAR::raiseError(NET_IPV6_NO_NETMASK_MSG, NET_IPV6_NO_NETMASK);
+ }
+ }
+ }
+
+ $binIp = Net_IPv6::_ip2Bin(Net_IPv6::removeNetmaskSpec($ip));
+ $binNetmask = Net_IPv6::_ip2Bin(Net_IPv6::removeNetmaskSpec($netmask));
+ if(null != $bits && "" != $bits && 0 == strncmp( $binNetmask, $binIp, $bits)) {
+ return true;
+ }
+ return false;
+ }
+
+ // }}}
+ // {{{ getAddressType()
+
+ /**
+ * Returns the type of an IPv6 address.
+ *
+ * RFC 1883, Section 2.3 describes several types of addresses in
+ * the IPv6 addresse space.
+ * Several addresse types are markers for reserved spaces and as consequence
+ * a subject to change.
+ *
+ * @param String $ip the IP address in Hex format, compressed IPs are allowed
+ * @return int one of the addresse type constants
+ * @access public
+ * @since 1.1.0
+ * @static
+ *
+ * @see NET_IPV6_UNASSIGNED
+ * @see NET_IPV6_RESERVED
+ * @see NET_IPV6_RESERVED_NSAP
+ * @see NET_IPV6_RESERVED_IPX
+ * @see NET_IPV6_RESERVED_UNICAST_GEOGRAPHIC
+ * @see NET_IPV6_UNICAST_PROVIDER
+ * @see NET_IPV6_MULTICAST
+ * @see NET_IPV6_LOCAL_LINK
+ * @see NET_IPV6_LOCAL_SITE
+ * @see NET_IPV6_UNKNOWN_TYPE
+ */
+ function getAddressType($ip) {
+ $ip = Net_IPv6::removeNetmaskSpec($ip);
+ $binip = Net_IPv6::_ip2Bin($ip);
+ if(0 == strncmp('1111111010', $binip, 10)) {
+ return NET_IPV6_LOCAL_LINK;
+ } else if(0 == strncmp('1111111011', $binip, 10)) {
+ return NET_IPV6_LOCAL_SITE;
+ } else if (0 == strncmp('111111100', $binip, 9)) {
+ return NET_IPV6_UNASSIGNED;
+ } else if (0 == strncmp('11111111', $binip, 8)) {
+ return NET_IPV6_MULTICAST;
+ } else if (0 == strncmp('00000000', $binip, 8)) {
+ return NET_IPV6_RESERVED;
+ } else if (0 == strncmp('00000001', $binip, 8) ||
+ 0 == strncmp('1111110', $binip, 7)) {
+ return NET_IPV6_UNASSIGNED;
+ } else if (0 == strncmp('0000001', $binip, 7)) {
+ return NET_IPV6_RESERVED_NSAP;
+ } else if (0 == strncmp('0000010', $binip, 7)) {
+ return NET_IPV6_RESERVED_IPX;;
+ } else if (0 == strncmp('0000011', $binip, 7) ||
+ 0 == strncmp('111110', $binip, 6) ||
+ 0 == strncmp('11110', $binip, 5) ||
+ 0 == strncmp('00001', $binip, 5) ||
+ 0 == strncmp('1110', $binip, 4) ||
+ 0 == strncmp('0001', $binip, 4) ||
+ 0 == strncmp('001', $binip, 3) ||
+ 0 == strncmp('011', $binip, 3) ||
+ 0 == strncmp('101', $binip, 3) ||
+ 0 == strncmp('110', $binip, 3)) {
+ return NET_IPV6_UNASSIGNED;
+ } else if (0 == strncmp('010', $binip, 3)) {
+ return NET_IPV6_UNICAST_PROVIDER;
+ } else if (0 == strncmp('100', $binip, 3)) {
+ return NET_IPV6_RESERVED_UNICAST_GEOGRAPHIC;
+ }
+ return NET_IPV6_UNKNOWN_TYPE;
+ }
+
+ // }}}
+ // {{{ Uncompress()
+
+ /**
+ * Uncompresses an IPv6 adress
+ *
+ * RFC 2373 allows you to compress zeros in an adress to '::'. This
+ * function expects an valid IPv6 adress and expands the '::' to
+ * the required zeros.
+ *
+ * Example: FF01::101 -> FF01:0:0:0:0:0:0:101
+ * ::1 -> 0:0:0:0:0:0:0:1
+ *
+ * @access public
+ * @see Compress()
+ * @static
+ * @param string $ip a valid IPv6-adress (hex format)
+ * @return string the uncompressed IPv6-adress (hex format)
+ */
+ function Uncompress($ip) {
+ $netmask = Net_IPv6::getNetmaskSpec($ip);
+ $uip = Net_IPv6::removeNetmaskSpec($ip);
+
+ $c1 = -1;
+ $c2 = -1;
+ if (false !== strpos($uip, '::') ) {
+ list($ip1, $ip2) = explode('::', $uip);
+
+ if(""==$ip1) {
+ $c1 = -1;
+ } else {
+ $pos = 0;
+ if(0 < ($pos = substr_count($ip1, ':'))) {
+ $c1 = $pos;
+ } else {
+ $c1 = 0;
+ }
+ }
+ if(""==$ip2) {
+ $c2 = -1;
+ } else {
+ $pos = 0;
+ if(0 < ($pos = substr_count($ip2, ':'))) {
+ $c2 = $pos;
+ } else {
+ $c2 = 0;
+ }
+ }
+ if(strstr($ip2, '.')) {
+ $c2++;
+ }
+ if(-1 == $c1 && -1 == $c2) { // ::
+ $uip = "0:0:0:0:0:0:0:0";
+ } else if(-1==$c1) { // ::xxx
+ $fill = str_repeat('0:', 7-$c2);
+ $uip = str_replace('::', $fill, $uip);
+ } else if(-1==$c2) { // xxx::
+ $fill = str_repeat(':0', 7-$c1);
+ $uip = str_replace('::', $fill, $uip);
+ } else { // xxx::xxx
+ $fill = str_repeat(':0:', 6-$c2-$c1);
+ $uip = str_replace('::', $fill, $uip);
+ $uip = str_replace('::', ':', $uip);
+ }
+ }
+ if('' != $netmask) {
+ $uip = $uip.'/'.$netmask;
+ }
+ return $uip;
+ }
+
+ // }}}
+ // {{{ Compress()
+
+ /**
+ * Compresses an IPv6 adress
+ *
+ * RFC 2373 allows you to compress zeros in an adress to '::'. This
+ * function expects an valid IPv6 adress and compresses successive zeros
+ * to '::'
+ *
+ * Example: FF01:0:0:0:0:0:0:101 -> FF01::101
+ * 0:0:0:0:0:0:0:1 -> ::1
+ *
+ * @access public
+ * @see Uncompress()
+ * @static
+ * @param string $ip a valid IPv6-adress (hex format)
+ * @return string the compressed IPv6-adress (hex format)
+ * @author elfrink at introweb dot nl
+ */
+ function Compress($ip) {
+
+ $netmask = Net_IPv6::getNetmaskSpec($ip);
+ $ip = Net_IPv6::removeNetmaskSpec($ip);
+ if (!strstr($ip, '::')) {
+ $ipp = explode(':',$ip);
+ for($i=0; $i0) {
+ $match = '';
+ foreach($zeros[0] as $zero) {
+ if (strlen($zero) > strlen($match))
+ $match = $zero;
+ }
+ $cip = preg_replace('/' . $match . '/', ':', $cip, 1);
+ }
+ $cip = preg_replace('/((^:)|(:$))/', '' ,$cip);
+ $cip = preg_replace('/((^:)|(:$))/', '::' ,$cip);
+ }
+ if('' != $netmask) {
+ $cip = $cip.'/'.$netmask;
+ }
+ return $cip;
+ }
+
+ // }}}
+ // {{{ SplitV64()
+
+ /**
+ * Splits an IPv6 adress into the IPv6 and a possible IPv4 part
+ *
+ * RFC 2373 allows you to note the last two parts of an IPv6 adress as
+ * an IPv4 compatible adress
+ *
+ * Example: 0:0:0:0:0:0:13.1.68.3
+ * 0:0:0:0:0:FFFF:129.144.52.38
+ *
+ * @access public
+ * @static
+ * @param string $ip a valid IPv6-adress (hex format)
+ * @return array [0] contains the IPv6 part, [1] the IPv4 part (hex format)
+ */
+ function SplitV64($ip) {
+ $ip = Net_IPv6::removeNetmaskSpec($ip);
+ $ip = Net_IPv6::Uncompress($ip);
+ if (strstr($ip, '.')) {
+ $pos = strrpos($ip, ':');
+ $ip{$pos} = '_';
+ $ipPart = explode('_', $ip);
+ return $ipPart;
+ } else {
+ return array($ip, "");
+ }
+ }
+
+ // }}}
+ // {{{ checkIPv6()
+
+ /**
+ * Checks an IPv6 adress
+ *
+ * Checks if the given IP is IPv6-compatible
+ *
+ * @access public
+ * @static
+ * @param string $ip a valid IPv6-adress
+ * @return boolean true if $ip is an IPv6 adress
+ */
+ function checkIPv6($ip) {
+ $ip = Net_IPv6::removeNetmaskSpec($ip);
+ $ipPart = Net_IPv6::SplitV64($ip);
+ $count = 0;
+ if (!empty($ipPart[0])) {
+ $ipv6 =explode(':', $ipPart[0]);
+ for ($i = 0; $i < count($ipv6); $i++) {
+ $dec = hexdec($ipv6[$i]);
+ $hex = strtoupper(preg_replace("/^[0]{1,3}(.*[0-9a-fA-F])$/", "\\1", $ipv6[$i]));
+ if ($ipv6[$i] >= 0 && $dec <= 65535 && $hex == strtoupper(dechex($dec))) {
+ $count++;
+ }
+ }
+ if (8 == $count) {
+ return true;
+ } elseif (6 == $count and !empty($ipPart[1])) {
+ $ipv4 = explode('.',$ipPart[1]);
+ $count = 0;
+ for ($i = 0; $i < count($ipv4); $i++) {
+ if ($ipv4[$i] >= 0 && (integer)$ipv4[$i] <= 255 && preg_match("/^\d{1,3}$/", $ipv4[$i])) {
+ $count++;
+ }
+ }
+ if (4 == $count) {
+ return true;
+ }
+ } else {
+ return false;
+ }
+
+ } else {
+ return false;
+ }
+ }
+
+ // }}}
+ // {{{ _ip2Bin()
+
+ /**
+ * Converts an IPv6 address from Hex into Binary representation.
+ *
+ * @param String $ip the IP to convert (a:b:c:d:e:f:g:h), compressed IPs are allowed
+ * @return String the binary representation
+ * @access private
+ @ @since 1.1.0
+ */
+ function _ip2Bin($ip) {
+ $binstr = '';
+ $ip = Net_IPv6::removeNetmaskSpec($ip);
+ $ip = Net_IPv6::Uncompress($ip);
+ $parts = explode(':', $ip);
+ foreach($parts as $v) {
+ $str = base_convert($v, 16, 2);
+ $binstr .= str_pad($str, 16, '0', STR_PAD_LEFT);
+ }
+ return $binstr;
+ }
+
+ // }}}
+ // {{{ _bin2Ip()
+
+ /**
+ * Converts an IPv6 address from Binary into Hex representation.
+ *
+ * @param String $ip the IP as binary
+ * @return String the uncompressed Hex representation
+ * @access private
+ @ @since 1.1.0
+ */
+ function _bin2Ip($bin) {
+ $ip = "";
+ if(strlen($bin)<128) {
+ $bin = str_pad($str, 128, '0', STR_PAD_LEFT);
+ }
+ $parts = str_split($bin, "16");
+ foreach($parts as $v) {
+ $str = base_convert($v, 2, 16);
+ $ip .= $str.":";
+ }
+ $ip = substr($ip, 0,-1);
+ return $ip;
+ }
+
+ // }}}
+}
+// }}}
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * End:
+ */
+
+?>
+
diff --git a/includes/polling/device-unix.inc.php b/includes/polling/device-unix.inc.php
index 6ea38dc63b..c659449f8f 100755
--- a/includes/polling/device-unix.inc.php
+++ b/includes/polling/device-unix.inc.php
@@ -36,7 +36,7 @@ while ($dr = mysql_fetch_array($dq)) {
if (!is_file($storage_rrd)) {
- `rrdtool create $storage_rrd \
+ shell_exec($config['rrdtool'] . " create $storage_rrd \
--step 300 \
DS:size:GAUGE:600:0:U \
DS:used:GAUGE:600:0:U \
@@ -48,7 +48,7 @@ while ($dr = mysql_fetch_array($dq)) {
RRA:MAX:0.5:1:800 \
RRA:MAX:0.5:6:800 \
RRA:MAX:0.5:24:800 \
- RRA:MAX:0.5:288:800`;
+ RRA:MAX:0.5:288:800");
}
rrdtool_update($storage_rrd, "N:$hrStorageSize:$used:$perc");
mysql_query("UPDATE `storage` SET `hrStorageUsed` = '$used_units', `storage_perc` = '$perc' WHERE storage_id = '" . $dr['storage_id'] . "'");
@@ -90,8 +90,6 @@ list ($cpuUser, $cpuSystem, $cpuNice, $cpuIdle, $procs, $users, $UsageUser, $Usa
$cpuUsage = $UsageUser + $UsageSystem;
-echo("\n CPU : $cpuUsage = $UsageUser + $UsageSystem; \n");
-
if(mysql_result(mysql_query("SELECT COUNT(*) FROM devices_attribs WHERE `device_id` = '" . $device['device_id'] . "' AND `attrib_type` = 'cpuusage'"),0)) {
$update_usage = mysql_query("UPDATE devices_attribs SET attrib_value = '$cpuUsage' WHERE `device_id` = '" . $device['device_id'] . "' AND `attrib_type` = 'cpuusage'");
} else {
@@ -100,7 +98,7 @@ if(mysql_result(mysql_query("SELECT COUNT(*) FROM devices_attribs WHERE `device_
## Create CPU RRD if it doesn't already exist
if (!is_file($cpurrd)) {
- `rrdtool create $cpurrd \
+ shell_exec($config['rrdtool'] . " create $cpurrd \
--step 300 \
DS:user:COUNTER:600:0:U \
DS:system:COUNTER:600:0:U \
@@ -113,7 +111,7 @@ if (!is_file($cpurrd)) {
RRA:MAX:0.5:1:800 \
RRA:MAX:0.5:6:800 \
RRA:MAX:0.5:24:800 \
- RRA:MAX:0.5:288:800`;
+ RRA:MAX:0.5:288:800");
}
rrdtool_update($cpurrd, "N:$cpuUser:$cpuSystem:$cpuNice:$cpuIdle");
@@ -121,7 +119,7 @@ rrdtool_update($cpurrd, "N:$cpuUser:$cpuSystem:$cpuNice:$cpuIdle");
## If the device isn't monowall or pfsense, monitor all the pretty things
if($device[os] != "m0n0wall" && $device[os] != "Voswall" && $device[os] != "pfSense" ) {
if (!is_file($sysrrd)) {
- `rrdtool create $sysrrd \
+ shell_exec($config['rrdtool'] . " create $sysrrd \
--step 300 \
DS:users:GAUGE:600:0:U \
DS:procs:GAUGE:600:0:U \
@@ -132,11 +130,11 @@ if($device[os] != "m0n0wall" && $device[os] != "Voswall" && $device[os] != "pfSe
RRA:MAX:0.5:1:800 \
RRA:MAX:0.5:6:800 \
RRA:MAX:0.5:24:800 \
- RRA:MAX:0.5:288:800`;
+ RRA:MAX:0.5:288:800");
}
if (!is_file($memrrd)) {
- `rrdtool create $memrrd \
+ shell_exec($config['rrdtool'] . " create $memrrd \
--step 300 \
DS:totalswap:GAUGE:600:0:10000000000 \
DS:availswap:GAUGE:600:0:10000000000 \
@@ -153,11 +151,11 @@ if($device[os] != "m0n0wall" && $device[os] != "Voswall" && $device[os] != "pfSe
RRA:MAX:0.5:1:800 \
RRA:MAX:0.5:6:800 \
RRA:MAX:0.5:24:800 \
- RRA:MAX:0.5:288:800`;
+ RRA:MAX:0.5:288:800");
} // end create mem rrd
if(!is_file($loadrrd)) {
- `$rrdtool create $loadrrd \
+ shell_exec($config['rrdtool'] . " create $loadrrd \
--step 300 \
DS:1min:GAUGE:600:0:5000 \
DS:5min:GAUGE:600:0:5000 \
@@ -169,7 +167,7 @@ if($device[os] != "m0n0wall" && $device[os] != "Voswall" && $device[os] != "pfSe
RRA:MAX:0.5:1:800 \
RRA:MAX:0.5:6:800 \
RRA:MAX:0.5:24:800 \
- RRA:MAX:0.5:288:800`;
+ RRA:MAX:0.5:288:800");
} // end create load rrd
$mem_get = "memTotalSwap.0 memAvailSwap.0 memTotalReal.0 memAvailReal.0 memTotalFree.0 memShared.0 memBuffer.0 memCached.0";
diff --git a/includes/procurve-graphing.php b/includes/procurve-graphing.php
index 7c8453322d..637220999e 100755
--- a/includes/procurve-graphing.php
+++ b/includes/procurve-graphing.php
@@ -2,7 +2,7 @@
function cpugraphHP ($rrd, $graph , $from, $to, $width, $height)
{
- global $config,$rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = "rrd/" . $rrd;
$imgfile = "graphs/" . "$graph";
@@ -18,8 +18,8 @@ function cpugraphHP ($rrd, $graph , $from, $to, $width, $height)
"GPRINT:load:MIN:Min\:%3.2lf",
"GPRINT:load:MAX:Max\:%3.2lf\\n");
- if($width <= "300") {$optsb = array("--font", "LEGEND:7:$mono_font",
- "--font", "AXIS:6:$mono_font",
+ if($width <= "300") {$optsb = array("--font", "LEGEND:7:".$config['mono_font']."",
+ "--font", "AXIS:6:".$config['mono_font']."",
"--font-render-mode", "normal");}
$opts = array_merge($config['rrdgraph_defaults'], $$optsa, $optsb);
@@ -36,7 +36,7 @@ function cpugraphHP ($rrd, $graph , $from, $to, $width, $height)
function memgraphHP ($rrd, $graph , $from, $to, $width, $height, $title, $vertical)
{
- global $config,$rrdtool, $installdir, $mono_font;
+ global $config, $installdir;
$database = "rrd/" . $rrd;
$imgfile = "graphs/" . "$graph";
$memrrd = $database;
@@ -49,8 +49,8 @@ function memgraphHP ($rrd, $graph , $from, $to, $width, $height, $title, $vertic
"AREA:FREE#FAFDCE:Free:STACK",
"LINE1.5:TOTAL#cc0000:");
- if($width <= "300") {$optsb = array("--font", "LEGEND:7:$mono_font",
- "--font", "AXIS:6:$mono_font",
+ if($width <= "300") {$optsb = array("--font", "LEGEND:7:".$config['mono_font']."",
+ "--font", "AXIS:6:".$config['mono_font']."",
"--font-render-mode", "normal");}
$opts = array_merge($config['rrdgraph_defaults'], $$opts, $optsb);
diff --git a/includes/snom-graphing.php b/includes/snom-graphing.php
index 27e72f2951..14a6d5117d 100644
--- a/includes/snom-graphing.php
+++ b/includes/snom-graphing.php
@@ -1,8 +1,8 @@
diff --git a/poll-ifstatus.php b/poll-ifstatus.php
index dd50f1c7c0..f35c039ec6 100755
--- a/poll-ifstatus.php
+++ b/poll-ifstatus.php
@@ -22,10 +22,9 @@
$old_mac = $interface['mac'];
$old_up_admin = $interface['up_admin'];
$snmpver = $interface['snmpver'];
- $snmp_cmd = "snmpget -O qv -$snmpver -c $community $hostname ifDescr.$ifIndex ifAdminStatus.$ifIndex ifOperStatus.$ifIndex ";
+ $snmp_cmd = "snmpget -O qv -".$interface['snmpver']." -c ".$interface['community']." ".$interface['hostname']." ifDescr.$ifIndex ifAdminStatus.$ifIndex ifOperStatus.$ifIndex ";
$snmp_cmd .= "ifAlias.$ifIndex 1.3.6.1.2.1.10.7.2.1.$ifIndex ifName.$ifIndex";
- $snmp_output = `$snmp_cmd`;
- $snmp_output = trim($snmp_output);
+ $snmp_output = trim(shell_exec($snmp_cmd));
list($ifDescr, $ifAdminStatus, $ifOperStatus, $ifAlias, $ifDuplex, $ifName) = explode("\n", $snmp_output);
$ifDescr = trim(str_replace("\"", "", $ifDescr));