cleanups, reindents, etc

git-svn-id: http://www.observium.org/svn/observer/trunk@1821 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Tom Laermans
2011-03-11 18:03:49 +00:00
parent a2e0b7d624
commit 92777ab03b
6 changed files with 431 additions and 310 deletions
+90 -60
View File
@@ -2,14 +2,14 @@
## Common Functions ## Common Functions
function get_port_by_id($port_id) function get_port_by_id($port_id)
{ {
if(is_numeric($port_id)) { if (is_numeric($port_id))
{
$port = mysql_fetch_assoc(mysql_query("SELECT * FROM `ports` WHERE `interface_id` = '".$port_id."'")); $port = mysql_fetch_assoc(mysql_query("SELECT * FROM `ports` WHERE `interface_id` = '".$port_id."'"));
} }
if(is_array($port)){ if (is_array($port))
{
return $port; return $port;
} else { } else {
return FALSE; return FALSE;
@@ -18,10 +18,12 @@ function get_port_by_id($port_id)
function get_application_by_id($application_id) function get_application_by_id($application_id)
{ {
if(is_numeric($application_id)) { if (is_numeric($application_id))
{
$application = mysql_fetch_assoc(mysql_query("SELECT * FROM `applications` WHERE `app_id` = '".$application_id."'")); $application = mysql_fetch_assoc(mysql_query("SELECT * FROM `applications` WHERE `app_id` = '".$application_id."'"));
} }
if(is_array($application)){ if (is_array($application))
{
return $application; return $application;
} else { } else {
return FALSE; return FALSE;
@@ -30,21 +32,26 @@ function get_application_by_id($application_id)
function get_sensor_by_id($sensor_id) function get_sensor_by_id($sensor_id)
{ {
if(is_numeric($sensor_id)) { if (is_numeric($sensor_id))
{
$sensor = mysql_fetch_assoc(mysql_query("SELECT * FROM `sensors` WHERE `sensor_id` = '".$sensor_id."'")); $sensor = mysql_fetch_assoc(mysql_query("SELECT * FROM `sensors` WHERE `sensor_id` = '".$sensor_id."'"));
} }
if(is_array($sensor)){ if (is_array($sensor))
{
return $sensor; return $sensor;
} else { } else {
return FALSE; return FALSE;
} }
} }
function get_device_id_by_interface_id($interface_id) { function get_device_id_by_interface_id($interface_id)
if(is_numeric($interface_id)) { {
if (is_numeric($interface_id))
{
$device_id = mysql_result(mysql_query("SELECT `device_id` FROM `ports` WHERE `interface_id` = '".$interface_id."'"),0); $device_id = mysql_result(mysql_query("SELECT `device_id` FROM `ports` WHERE `interface_id` = '".$interface_id."'"),0);
} }
if(is_numeric($device_id)){ if (is_numeric($device_id))
{
return $device_id; return $device_id;
} else { } else {
return FALSE; return FALSE;
@@ -54,15 +61,18 @@ function get_device_id_by_interface_id($interface_id) {
function ifclass($ifOperStatus, $ifAdminStatus) function ifclass($ifOperStatus, $ifAdminStatus)
{ {
$ifclass = "interface-upup"; $ifclass = "interface-upup";
if ($ifAdminStatus == "down") { $ifclass = "interface-admindown"; } if ($ifAdminStatus == "down") { $ifclass = "interface-admindown"; }
if ($ifAdminStatus == "up" && $ifOperStatus== "down") { $ifclass = "interface-updown"; } if ($ifAdminStatus == "up" && $ifOperStatus== "down") { $ifclass = "interface-updown"; }
if ($ifAdminStatus == "up" && $ifOperStatus== "up") { $ifclass = "interface-upup"; } if ($ifAdminStatus == "up" && $ifOperStatus== "up") { $ifclass = "interface-upup"; }
return $ifclass; return $ifclass;
} }
function device_by_id_cache($device_id) function device_by_id_cache($device_id)
{ {
global $device_cache; global $device_cache;
if (is_array($device_cache[$device_id])) if (is_array($device_cache[$device_id]))
{ {
$device = $device_cache[$device_id]; $device = $device_cache[$device_id];
@@ -70,86 +80,106 @@ function device_by_id_cache($device_id)
$device = mysql_fetch_assoc(mysql_query("SELECT * FROM `devices` WHERE `device_id` = '".$device_id."'")); $device = mysql_fetch_assoc(mysql_query("SELECT * FROM `devices` WHERE `device_id` = '".$device_id."'"));
$device_cache[$device_id] = $device; $device_cache[$device_id] = $device;
} }
return $device; return $device;
} }
function truncate($substring, $max = 50, $rep = '...'){ function truncate($substring, $max = 50, $rep = '...')
if(strlen($substring) < 1){ $string = $rep; } else { $string = $substring; } {
if (strlen($substring) < 1){ $string = $rep; } else { $string = $substring; }
$leave = $max - strlen ($rep); $leave = $max - strlen ($rep);
if(strlen($string) > $max){ return substr_replace($string, $rep, $leave); } else { return $string; } if (strlen($string) > $max){ return substr_replace($string, $rep, $leave); } else { return $string; }
} }
function mres($string) { // short function wrapper because the real one is stupidly long and ugly. aestetics. function mres($string)
{ // short function wrapper because the real one is stupidly long and ugly. aestetics.
return mysql_real_escape_string($string); return mysql_real_escape_string($string);
} }
function getifhost($id) { function getifhost($id)
$sql = mysql_query("SELECT `device_id` from `ports` WHERE `interface_id` = '$id'"); {
$result = @mysql_result($sql, 0); $sql = mysql_query("SELECT `device_id` from `ports` WHERE `interface_id` = '$id'");
return $result; $result = @mysql_result($sql, 0);
return $result;
} }
function gethostbyid($id) { function gethostbyid($id)
$sql = mysql_query("SELECT `hostname` FROM `devices` WHERE `device_id` = '$id'"); {
$result = @mysql_result($sql, 0); $sql = mysql_query("SELECT `hostname` FROM `devices` WHERE `device_id` = '$id'");
return $result; $result = @mysql_result($sql, 0);
return $result;
} }
function strgen ($length = 16) function strgen ($length = 16)
{ {
$entropy = array(0,1,2,3,4,5,6,7,8,9,'a','A','b','B','c','C','d','D','e', $entropy = array(0,1,2,3,4,5,6,7,8,9,'a','A','b','B','c','C','d','D','e',
'E','f','F','g','G','h','H','i','I','j','J','k','K','l','L','m','M','n', 'E','f','F','g','G','h','H','i','I','j','J','k','K','l','L','m','M','n',
'N','o','O','p','P','q','Q','r','R','s','S','t','T','u','U','v','V','w', 'N','o','O','p','P','q','Q','r','R','s','S','t','T','u','U','v','V','w',
'W','x','X','y','Y','z','Z'); 'W','x','X','y','Y','z','Z');
$string = ""; $string = "";
for ($i=0; $i<$length; $i++) {
$key = mt_rand(0,61); for ($i=0; $i<$length; $i++)
$string .= $entropy[$key]; {
} $key = mt_rand(0,61);
return $string; $string .= $entropy[$key];
}
return $string;
} }
function getpeerhost($id) { function getpeerhost($id)
$sql = mysql_query("SELECT `device_id` from `bgpPeers` WHERE `bgpPeer_id` = '$id'"); {
$result = @mysql_result($sql, 0); $sql = mysql_query("SELECT `device_id` from `bgpPeers` WHERE `bgpPeer_id` = '$id'");
return $result; $result = @mysql_result($sql, 0);
return $result;
} }
function getifindexbyid($id) { function getifindexbyid($id)
$sql = mysql_query("SELECT `ifIndex` FROM `ports` WHERE `interface_id` = '$id'"); {
$result = @mysql_result($sql, 0); $sql = mysql_query("SELECT `ifIndex` FROM `ports` WHERE `interface_id` = '$id'");
return $result; $result = @mysql_result($sql, 0);
return $result;
} }
function getifbyid($id) { function getifbyid($id)
$sql = mysql_query("SELECT * FROM `ports` WHERE `interface_id` = '$id'"); {
$result = @mysql_fetch_array($sql); $sql = mysql_query("SELECT * FROM `ports` WHERE `interface_id` = '$id'");
return $result; $result = @mysql_fetch_array($sql);
return $result;
} }
function getifdescrbyid($id) { function getifdescrbyid($id)
$sql = mysql_query("SELECT `ifDescr` FROM `ports` WHERE `interface_id` = '$id'"); {
$result = @mysql_result($sql, 0); $sql = mysql_query("SELECT `ifDescr` FROM `ports` WHERE `interface_id` = '$id'");
return $result; $result = @mysql_result($sql, 0);
return $result;
} }
function getidbyname($domain){ function getidbyname($domain)
$sql = mysql_query("SELECT `device_id` FROM `devices` WHERE `hostname` = '$domain'"); {
$result = @mysql_result($sql, 0); $sql = mysql_query("SELECT `device_id` FROM `devices` WHERE `hostname` = '$domain'");
return $result; $result = @mysql_result($sql, 0);
return $result;
} }
function gethostosbyid($id) { function gethostosbyid($id)
$sql = mysql_query("SELECT `os` FROM `devices` WHERE `device_id` = '$id'"); {
$result = @mysql_result($sql, 0); $sql = mysql_query("SELECT `os` FROM `devices` WHERE `device_id` = '$id'");
return $result; $result = @mysql_result($sql, 0);
return $result;
} }
function safename($name) function safename($name)
{ {
return preg_replace('/[^a-zA-Z0-9,._\-]/', '_', $name); return preg_replace('/[^a-zA-Z0-9,._\-]/', '_', $name);
} }
?>
?>
+114 -74
View File
@@ -137,7 +137,8 @@ function getHostOS($device)
if ($os) { return $os; } else { return "generic"; } if ($os) { return $os; } else { return "generic"; }
} }
function formatRates($rate) { function formatRates($rate)
{
$rate = format_si($rate) . "bps"; $rate = format_si($rate) . "bps";
return $rate; return $rate;
} }
@@ -150,12 +151,15 @@ function formatstorage($rate, $round = '2')
function format_si($rate) function format_si($rate)
{ {
if ($rate >= "0.1") { if ($rate >= "0.1")
{
$sizes = Array('', 'k', 'M', 'G', 'T', 'P', 'E'); $sizes = Array('', 'k', 'M', 'G', 'T', 'P', 'E');
$round = Array('2','2','2','2','2','2','2','2','2'); $round = Array('2','2','2','2','2','2','2','2','2');
$ext = $sizes[0]; $ext = $sizes[0];
for ($i=1; (($i < count($sizes)) && ($rate >= 1000)); $i++) { $rate = $rate / 1000; $ext = $sizes[$i]; } for ($i=1; (($i < count($sizes)) && ($rate >= 1000)); $i++) { $rate = $rate / 1000; $ext = $sizes[$i]; }
} else { }
else
{
$sizes = Array('', 'm', 'u', 'n'); $sizes = Array('', 'm', 'u', 'n');
$round = Array('2','2','2','2'); $round = Array('2','2','2','2');
$ext = $sizes[0]; $ext = $sizes[0];
@@ -217,7 +221,8 @@ function getImage($host)
} else { } else {
if (file_exists($config['html_dir'] . "/images/os/$type" . ".png")){ $image = '<img src="'.$config['base_url'].'/images/os/'.$type.'.png" />'; if (file_exists($config['html_dir'] . "/images/os/$type" . ".png")){ $image = '<img src="'.$config['base_url'].'/images/os/'.$type.'.png" />';
} elseif (file_exists($config['html_dir'] . "/images/os/$type" . ".gif")){ $image = '<img src="'.$config['base_url'].'/images/os/'.$type.'.gif" />'; } } elseif (file_exists($config['html_dir'] . "/images/os/$type" . ".gif")){ $image = '<img src="'.$config['base_url'].'/images/os/'.$type.'.gif" />'; }
if ($type == "linux") { if ($type == "linux")
{
$features = strtolower(trim($data['features'])); $features = strtolower(trim($data['features']));
list($distro) = split(" ", $features); list($distro) = split(" ", $features);
if (file_exists($config['html_dir'] . "/images/os/$distro" . ".png")){ $image = '<img src="'.$config['base_url'].'/images/os/'.$distro.'.png" />'; if (file_exists($config['html_dir'] . "/images/os/$distro" . ".png")){ $image = '<img src="'.$config['base_url'].'/images/os/'.$distro.'.png" />';
@@ -227,10 +232,11 @@ function getImage($host)
return $image; return $image;
} }
function renamehost($id, $new) { function renamehost($id, $new)
{
global $config; global $config;
$host = mysql_result(mysql_query("SELECT hostname FROM devices WHERE device_id = '$id'"), 0); $host = mysql_result(mysql_query("SELECT hostname FROM devices WHERE device_id = '$id'"), 0);
shell_exec("mv ".$config['rrd_dir']."/$host ".$config['rrd_dir']."/$new"); rename($config['rrd_dir']."/$host",$config['rrd_dir']."/$new");
mysql_query("UPDATE devices SET hostname = '$new' WHERE device_id = '$id'"); mysql_query("UPDATE devices SET hostname = '$new' WHERE device_id = '$id'");
eventlog("Hostname changed -> $new (console)", $id); eventlog("Hostname changed -> $new (console)", $id);
} }
@@ -248,7 +254,7 @@ function delete_port($int_id)
mysql_query("DELETE FROM `bill_ports` WHERE `port_id` = '$int_id'"); mysql_query("DELETE FROM `bill_ports` WHERE `port_id` = '$int_id'");
mysql_query("DELETE from `pseudowires` WHERE `interface_id` = '$int_id'"); mysql_query("DELETE from `pseudowires` WHERE `interface_id` = '$int_id'");
mysql_query("DELETE FROM `ports` WHERE `interface_id` = '$int_id'"); mysql_query("DELETE FROM `ports` WHERE `interface_id` = '$int_id'");
shell_exec("rm -rf ".trim($config['rrd_dir'])."/".trim($interface['hostname'])."/".$interface['ifIndex'].".rrd"); unlink(trim($config['rrd_dir'])."/".trim($interface['hostname'])."/".$interface['ifIndex'].".rrd");
} }
function delete_device($id) function delete_device($id)
@@ -257,7 +263,8 @@ function delete_device($id)
$host = mysql_result(mysql_query("SELECT hostname FROM devices WHERE device_id = '$id'"), 0); $host = mysql_result(mysql_query("SELECT hostname FROM devices WHERE device_id = '$id'"), 0);
mysql_query("DELETE FROM `devices` WHERE `device_id` = '$id'"); mysql_query("DELETE FROM `devices` WHERE `device_id` = '$id'");
$int_query = mysql_query("SELECT * FROM `ports` WHERE `device_id` = '$id'"); $int_query = mysql_query("SELECT * FROM `ports` WHERE `device_id` = '$id'");
while($int_data = mysql_fetch_array($int_query)) { while($int_data = mysql_fetch_array($int_query))
{
$int_if = $int_data['ifDescr']; $int_if = $int_data['ifDescr'];
$int_id = $int_data['interface_id']; $int_id = $int_data['interface_id'];
delete_port($int_id); delete_port($int_id);
@@ -295,6 +302,7 @@ function addHost($host, $community, $snmpver, $port = 161)
{ {
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `devices` WHERE `hostname` = '$host'"), 0) == '0' ) if (mysql_result(mysql_query("SELECT COUNT(*) FROM `devices` WHERE `hostname` = '$host'"), 0) == '0' )
{ {
# FIXME internalize
$snmphost = shell_exec($config['snmpget'] ." -m SNMPv2-MIB -Oqv -$snmpver -c $community $host:$port sysName.0"); $snmphost = shell_exec($config['snmpget'] ." -m SNMPv2-MIB -Oqv -$snmpver -c $community $host:$port sysName.0");
if ($snmphost == $host || $hostshort = $host) if ($snmphost == $host || $hostshort = $host)
{ {
@@ -308,8 +316,6 @@ function addHost($host, $community, $snmpver, $port = 161)
function scanUDP ($host, $port, $timeout) function scanUDP ($host, $port, $timeout)
{ {
$handle = fsockopen($host, $port, $errno, $errstr, 2); $handle = fsockopen($host, $port, $errno, $errstr, 2);
if (!$handle) {
}
socket_set_timeout ($handle, $timeout); socket_set_timeout ($handle, $timeout);
$write = fwrite($handle,"\x00"); $write = fwrite($handle,"\x00");
if (!$write) { next; } if (!$write) { next; }
@@ -317,7 +323,8 @@ function scanUDP ($host, $port, $timeout)
$header = fread($handle, 1); $header = fread($handle, 1);
$endTime = time(); $endTime = time();
$timeDiff = $endTime - $startTime; $timeDiff = $endTime - $startTime;
if ($timeDiff >= $timeout) { if ($timeDiff >= $timeout)
{
fclose($handle); return 1; fclose($handle); return 1;
} else { fclose($handle); return 0; } } else { fclose($handle); return 0; }
} }
@@ -347,13 +354,16 @@ function formatUptime($diff, $format="long")
$uptime = ""; $uptime = "";
if ($format == "short") { if ($format == "short")
{
if ($yearsDiff > '0') { $uptime .= $yearsDiff . "y "; } if ($yearsDiff > '0') { $uptime .= $yearsDiff . "y "; }
if ($daysDiff > '0') { $uptime .= $daysDiff . "d "; } if ($daysDiff > '0') { $uptime .= $daysDiff . "d "; }
if ($hrsDiff > '0') { $uptime .= $hrsDiff . "h "; } if ($hrsDiff > '0') { $uptime .= $hrsDiff . "h "; }
if ($minsDiff > '0') { $uptime .= $minsDiff . "m "; } if ($minsDiff > '0') { $uptime .= $minsDiff . "m "; }
if ($secsDiff > '0') { $uptime .= $secsDiff . "s "; } if ($secsDiff > '0') { $uptime .= $secsDiff . "s "; }
} else { }
else
{
if ($yearsDiff > '0') { $uptime .= $yearsDiff . " years, "; } if ($yearsDiff > '0') { $uptime .= $yearsDiff . " years, "; }
if ($daysDiff > '0') { $uptime .= $daysDiff . " day" . ($daysDiff != 1 ? 's' : '' ) . ", "; } if ($daysDiff > '0') { $uptime .= $daysDiff . " day" . ($daysDiff != 1 ? 's' : '' ) . ", "; }
if ($hrsDiff > '0') { $uptime .= $hrsDiff . "h "; } if ($hrsDiff > '0') { $uptime .= $hrsDiff . "h "; }
@@ -366,43 +376,54 @@ function formatUptime($diff, $format="long")
function isSNMPable($hostname, $community, $snmpver, $port) function isSNMPable($hostname, $community, $snmpver, $port)
{ {
global $config; global $config;
# FIXME internalize
$pos = shell_exec($config['snmpget'] ." -m SNMPv2-MIB -$snmpver -c $community -t 1 $hostname:$port sysObjectID.0"); $pos = shell_exec($config['snmpget'] ." -m SNMPv2-MIB -$snmpver -c $community -t 1 $hostname:$port sysObjectID.0");
if ($pos == '') { if ($pos == '')
{
return false; return false;
} else { } else {
return true; return true;
} }
} }
function isPingable($hostname) { function isPingable($hostname)
{
global $config; global $config;
$status = shell_exec($config['fping'] . " $hostname"); $status = shell_exec($config['fping'] . " $hostname");
if (strstr($status, "alive")) { if (strstr($status, "alive"))
{
return TRUE; return TRUE;
} else { } else {
return FALSE; return FALSE;
} }
} }
function is_odd($number) { function is_odd($number)
{
return $number & 1; // 0 = even, 1 = odd return $number & 1; // 0 = even, 1 = odd
} }
function isValidInterface($if) { function isValidInterface($if)
{
global $config; global $config;
$if = strtolower($if); $if = strtolower($if);
$nullintf = 0; $nullintf = 0;
foreach($config['bad_if'] as $bi) { foreach($config['bad_if'] as $bi)
$pos = strpos($if, $bi); {
if ($pos !== FALSE) { $pos = strpos($if, $bi);
$nullintf = 1; if ($pos !== FALSE)
echo("$if matched $bi \n"); {
} $nullintf = 1;
echo("$if matched $bi \n");
}
} }
if (preg_match('/serial[0-9]:/', $if)) { $nullintf = '1'; } if (preg_match('/serial[0-9]:/', $if)) { $nullintf = '1'; }
if ($nullintf != '1') { if ($nullintf != '1')
return 1; {
} else { return 0; } return 1;
} else {
return 0;
}
} }
function utime() function utime()
@@ -505,27 +526,29 @@ function hoststatus($id)
return $result; return $result;
} }
function match_network ($nets, $ip, $first=false) function match_network($nets, $ip, $first=false)
{ {
$return = false; $return = false;
if (!is_array ($nets)) $nets = array ($nets); if (!is_array ($nets)) $nets = array ($nets);
foreach ($nets as $net) { foreach ($nets as $net)
$rev = (preg_match ("/^\!/", $net)) ? true : false; {
$net = preg_replace ("/^\!/", "", $net); $rev = (preg_match ("/^\!/", $net)) ? true : false;
$ip_arr = explode('/', $net); $net = preg_replace ("/^\!/", "", $net);
$net_long = ip2long($ip_arr[0]); $ip_arr = explode('/', $net);
$x = ip2long($ip_arr[1]); $net_long = ip2long($ip_arr[0]);
$mask = long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]); $x = ip2long($ip_arr[1]);
$ip_long = ip2long($ip); $mask = long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]);
if ($rev) { $ip_long = ip2long($ip);
if (($ip_long & $mask) == ($net_long & $mask)) return false; if ($rev)
} else { {
if (($ip_long & $mask) == ($net_long & $mask)) $return = true; if (($ip_long & $mask) == ($net_long & $mask)) return false;
if ($first && $return) return true; } else {
} if (($ip_long & $mask) == ($net_long & $mask)) $return = true;
} if ($first && $return) return true;
}
}
return $return; return $return;
} }
function snmp2ipv6($ipv6_snmp) function snmp2ipv6($ipv6_snmp)
@@ -565,19 +588,22 @@ function discover_process_ipv6($ifIndex,$ipv6_address,$ipv6_prefixlen,$ipv6_orig
{ {
$i_query = "SELECT interface_id FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"; $i_query = "SELECT interface_id FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'";
$interface_id = mysql_result(mysql_query($i_query), 0); $interface_id = mysql_result(mysql_query($i_query), 0);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1') { if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1')
{
mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')"); mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')");
echo("N"); echo("N");
} }
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1') { if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1')
{
mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')"); mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')");
echo("N"); echo("N");
} }
$ipv6_network_id = @mysql_result(mysql_query("SELECT `ipv6_network_id` from `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0); $ipv6_network_id = @mysql_result(mysql_query("SELECT `ipv6_network_id` from `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_addresses` WHERE `ipv6_address` = '$ipv6_address' AND `ipv6_prefixlen` = '$ipv6_prefixlen' AND `interface_id` = '$interface_id'"), 0) == '0') { if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_addresses` WHERE `ipv6_address` = '$ipv6_address' AND `ipv6_prefixlen` = '$ipv6_prefixlen' AND `interface_id` = '$interface_id'"), 0) == '0')
{
mysql_query("INSERT INTO `ipv6_addresses` (`ipv6_address`, `ipv6_compressed`, `ipv6_prefixlen`, `ipv6_origin`, `ipv6_network_id`, `interface_id`) mysql_query("INSERT INTO `ipv6_addresses` (`ipv6_address`, `ipv6_compressed`, `ipv6_prefixlen`, `ipv6_origin`, `ipv6_network_id`, `interface_id`)
VALUES ('$ipv6_address', '$ipv6_compressed', '$ipv6_prefixlen', '$ipv6_origin', '$ipv6_network_id', '$interface_id')"); VALUES ('$ipv6_address', '$ipv6_compressed', '$ipv6_prefixlen', '$ipv6_origin', '$ipv6_network_id', '$interface_id')");
echo("+"); echo("+");
@@ -664,37 +690,51 @@ function notify($device,$title,$message)
function formatCiscoHardware(&$device, $short = false) function formatCiscoHardware(&$device, $short = false)
{ {
if ($device['os'] == "ios")
if ($device['os'] == "ios") { {
if ($device['hardware']) { if ($device['hardware'])
if (preg_match("/^WS-C([A-Za-z0-9]+).*/", $device['hardware'], $matches)) { {
if (!$short) { if (preg_match("/^WS-C([A-Za-z0-9]+).*/", $device['hardware'], $matches))
$device['hardware'] = "Cisco " . $matches[1] . " (" . $device['hardware'] . ")"; {
} else { if (!$short)
$device['hardware'] = "Cisco " . $matches[1]; {
} $device['hardware'] = "Cisco " . $matches[1] . " (" . $device['hardware'] . ")";
} elseif (preg_match("/^CISCO([0-9]+)$/", $device['hardware'], $matches)) {
$device['hardware'] = "Cisco " . $matches[1];
}
} else {
if (preg_match("/Cisco IOS Software, C([A-Za-z0-9]+) Software.*/", $device['sysDescr'], $matches)) {
$device['hardware'] = "Cisco " . $matches[1];
} elseif (preg_match("/Cisco IOS Software, ([0-9]+) Software.*/", $device['sysDescr'], $matches)) {
$device['hardware'] = "Cisco " . $matches[1];
}
} }
else
{
$device['hardware'] = "Cisco " . $matches[1];
}
}
elseif (preg_match("/^CISCO([0-9]+)$/", $device['hardware'], $matches))
{
$device['hardware'] = "Cisco " . $matches[1];
}
} }
else
{
if (preg_match("/Cisco IOS Software, C([A-Za-z0-9]+) Software.*/", $device['sysDescr'], $matches))
{
$device['hardware'] = "Cisco " . $matches[1];
}
elseif (preg_match("/Cisco IOS Software, ([0-9]+) Software.*/", $device['sysDescr'], $matches))
{
$device['hardware'] = "Cisco " . $matches[1];
}
}
}
} }
# from http://ditio.net/2008/11/04/php-string-to-hex-and-hex-to-string-functions/ # from http://ditio.net/2008/11/04/php-string-to-hex-and-hex-to-string-functions/
function hex2str($hex) function hex2str($hex)
{ {
$string=''; $string='';
for ($i=0; $i < strlen($hex)-1; $i+=2)
{ for ($i=0; $i < strlen($hex)-1; $i+=2)
$string .= chr(hexdec($hex[$i].$hex[$i+1])); {
} $string .= chr(hexdec($hex[$i].$hex[$i+1]));
return $string; }
return $string;
} }
# Convert an SNMP hex string to regular string # Convert an SNMP hex string to regular string
@@ -733,4 +773,4 @@ function include_dir($dir, $regex = "")
} }
} }
?> ?>
+99 -67
View File
@@ -1,12 +1,13 @@
<?php <?php
function formatMac($mac) { function formatMac($mac)
{
$mac = preg_replace("/(..)(..)(..)(..)(..)(..)/", "\\1:\\2:\\3:\\4:\\5:\\6", $mac); $mac = preg_replace("/(..)(..)(..)(..)(..)(..)/", "\\1:\\2:\\3:\\4:\\5:\\6", $mac);
return $mac; return $mac;
} }
function rewrite_entity_descr ($descr) { function rewrite_entity_descr ($descr)
{
$descr = str_replace("Distributed Forwarding Card", "DFC", $descr); $descr = str_replace("Distributed Forwarding Card", "DFC", $descr);
$descr = preg_replace("/7600 Series SPA Interface Processor-/", "7600 SIP-", $descr); $descr = preg_replace("/7600 Series SPA Interface Processor-/", "7600 SIP-", $descr);
$descr = preg_replace("/Rev\.\ [0-9\.]+\ /", "", $descr); $descr = preg_replace("/Rev\.\ [0-9\.]+\ /", "", $descr);
@@ -24,34 +25,42 @@ function rewrite_entity_descr ($descr) {
$descr = str_replace("/Voltage Sensor/", "Voltage", $descr); $descr = str_replace("/Voltage Sensor/", "Voltage", $descr);
$descr = preg_replace("/^temperatures /", "", $descr); $descr = preg_replace("/^temperatures /", "", $descr);
$descr = preg_replace("/^voltages /", "", $descr); $descr = preg_replace("/^voltages /", "", $descr);
return $descr; return $descr;
} }
function ifNameDescr($interface, $device = NULL) { function ifNameDescr($interface, $device = NULL)
{
return ifLabel($interface, $device); return ifLabel($interface, $device);
} }
function ifLabel ($interface, $device = NULL) { function ifLabel ($interface, $device = NULL)
{
global $config; global $config;
if(!$device) { $device = device_by_id_cache($interface['device_id']); }
if (!$device) { $device = device_by_id_cache($interface['device_id']); }
$os = strtolower($device['os']); $os = strtolower($device['os']);
if (isset($config['os'][$os]['ifname'])) { if (isset($config['os'][$os]['ifname']))
{
$interface['label'] = $interface['ifName']; $interface['label'] = $interface['ifName'];
} elseif (isset($config['os'][$os]['ifalias'])) { } elseif (isset($config['os'][$os]['ifalias']))
{
$interface['label'] = $interface['ifAlias']; $interface['label'] = $interface['ifAlias'];
} else { } else {
$interface['label'] = $interface['ifDescr']; $interface['label'] = $interface['ifDescr'];
if (isset($config['os'][$os]['ifindex'])) { $interface['label'] = $interface['label'] . " " . $interface['ifIndex']; } if (isset($config['os'][$os]['ifindex']))
{
$interface['label'] = $interface['label'] . " " . $interface['ifIndex'];
}
} }
if ($device['os'] == "speedtouch") { if ($device['os'] == "speedtouch")
{
list($interface['label']) = explode("thomson", $interface['label']); list($interface['label']) = explode("thomson", $interface['label']);
} }
return $interface; return $interface;
} }
$rewrite_entSensorType = array ( $rewrite_entSensorType = array (
@@ -72,11 +81,15 @@ $translate_ifOperStatus = array(
"7" => "lowerLayerDown", "7" => "lowerLayerDown",
); );
function translate_ifOperStatus ($ifOperStatus) { function translate_ifOperStatus ($ifOperStatus)
{
global $translate_ifOperStatus; global $translate_ifOperStatus;
if($translate_ifOperStatus['$ifOperStatus']) {
if ($translate_ifOperStatus['$ifOperStatus'])
{
$ifOperStatus = $translate_ifOperStatus['$ifOperStatus']; $ifOperStatus = $translate_ifOperStatus['$ifOperStatus'];
} }
return $ifOperStatus; return $ifOperStatus;
} }
@@ -86,11 +99,15 @@ $translate_ifAdminStatus = array(
"3" => "testing", "3" => "testing",
); );
function translate_ifAdminStatus ($ifAdminStatus) { function translate_ifAdminStatus ($ifAdminStatus)
{
global $translate_ifAdminStatus; global $translate_ifAdminStatus;
if($translate_ifAdminStatus[$ifAdminStatus]) {
if ($translate_ifAdminStatus[$ifAdminStatus])
{
$ifAdminStatus = $translate_ifAdminStatus[$ifAdminStatus]; $ifAdminStatus = $translate_ifAdminStatus[$ifAdminStatus];
} }
return $ifAdminStatus; return $ifAdminStatus;
} }
@@ -278,7 +295,6 @@ $rewrite_extreme_hardware = array (
'.1.3.6.1.4.1.1916.2.79' => 'Summit X450e-48p' '.1.3.6.1.4.1.1916.2.79' => 'Summit X450e-48p'
); );
$rewrite_ironware_hardware = array( $rewrite_ironware_hardware = array(
'snFIWGSwitch' => 'Stackable FastIron workgroup', 'snFIWGSwitch' => 'Stackable FastIron workgroup',
'snFIBBSwitch' => 'Stackable FastIron backbone', 'snFIBBSwitch' => 'Stackable FastIron backbone',
@@ -702,39 +718,37 @@ $rewrite_ironware_hardware = array(
); );
$rewrite_ios_features = array( $rewrite_ios_features = array(
"PK9S" => "IP w/SSH LAN Only", 'PK9S' => 'IP w/SSH LAN Only',
"LANBASEK9" => "Lan Base Crypto", 'LANBASEK9' => 'Lan Base Crypto',
"LANBASE" => "Lan Base", 'LANBASE' => 'Lan Base',
"ADVENTERPRISEK9_IVS" => "Advanced Enterprise Crypto Voice", 'ADVENTERPRISEK9_IVS' => 'Advanced Enterprise Crypto Voice',
"ADVENTERPRISEK9" => "Advanced Enterprise Crypto", 'ADVENTERPRISEK9' => 'Advanced Enterprise Crypto',
"ADVSECURITYK9" => "Advanced Security Crypto", 'ADVSECURITYK9' => 'Advanced Security Crypto',
"K91P" => "Provider Crypto", 'K91P' => 'Provider Crypto',
"K4P" => "Provider Crypto", 'K4P' => 'Provider Crypto',
"ADVIPSERVICESK9" => "Adv IP Services Crypto", 'ADVIPSERVICESK9' => 'Adv IP Services Crypto',
"ADVIPSERVICES" => "Adv IP Services", 'ADVIPSERVICES' => 'Adv IP Services',
"IK9P" => "IP Plus Crypto", 'IK9P' => 'IP Plus Crypto',
"K9O3SY7" => "IP ADSL FW IDS Plus IPSEC 3DES", 'K9O3SY7' => 'IP ADSL FW IDS Plus IPSEC 3DES',
"SPSERVICESK9" => "SP Services Crypto", 'SPSERVICESK9' => 'SP Services Crypto',
"PK9SV" => "IP MPLS/IPV6 W/SSH + BGP", 'PK9SV' => 'IP MPLS/IPV6 W/SSH + BGP',
"IS" => "IP Plus", 'IS' => 'IP Plus',
"IPSERVICESK9" => "IP Services Crypto", 'IPSERVICESK9' => 'IP Services Crypto',
"BROADBAND" => "Broadband", 'BROADBAND' => 'Broadband',
"IPBASE" => "IP Base", 'IPBASE' => 'IP Base',
"IPSERVICE" => "IP Services", 'IPSERVICE' => 'IP Services',
"P" => "Service Provider", 'P' => 'Service Provider',
"P11" => "Broadband Router", 'P11' => 'Broadband Router',
"G4P5" => "NRP", 'G4P5' => 'NRP',
"JK9S" => "Enterprise Plus Crypto", 'JK9S' => 'Enterprise Plus Crypto',
"IK9S" => "IP Plus Crypto", 'IK9S' => 'IP Plus Crypto',
"JK" => "Enterprise Plus", 'JK' => 'Enterprise Plus',
"I6Q4L2" => "Layer 2", 'I6Q4L2' => 'Layer 2',
"I6K2L2Q4" => "Layer 2 Crypto", 'I6K2L2Q4' => 'Layer 2 Crypto',
"C3H2S" => "Layer 2 SI/EI", 'C3H2S' => 'Layer 2 SI/EI',
"_WAN" => " + WAN", '_WAN' => ' + WAN',
); );
$rewrite_shortif = array ( $rewrite_shortif = array (
'tengigabitethernet' => 'Te', 'tengigabitethernet' => 'Te',
'gigabitethernet' => 'Gi', 'gigabitethernet' => 'Gi',
@@ -805,26 +819,32 @@ $rewrite_ios_features = array(
// Specific rewrite functions // Specific rewrite functions
function makeshortif($if) function makeshortif ($if)
{ {
global $rewrite_shortif; global $rewrite_shortif;
$if = fixifName ($if); $if = fixifName ($if);
$if = strtolower($if); $if = strtolower($if);
$if = array_str_replace($rewrite_shortif, $if); $if = array_str_replace($rewrite_shortif, $if);
return $if; return $if;
} }
function rewrite_ios_features ($features) function rewrite_ios_features ($features)
{ {
global $rewrite_ios_features; global $rewrite_ios_features;
$type = array_preg_replace($rewrite_ios_features, $features); $type = array_preg_replace($rewrite_ios_features, $features);
return ($features); return ($features);
} }
function rewrite_fortinet_hardware ($hardware) function rewrite_fortinet_hardware ($hardware)
{ {
global $rewrite_fortinet_hardware; global $rewrite_fortinet_hardware;
$hardware = $rewrite_fortinet_hardware[$hardware]; $hardware = $rewrite_fortinet_hardware[$hardware];
return ($hardware); return ($hardware);
} }
@@ -832,15 +852,19 @@ function rewrite_fortinet_hardware ($hardware)
function rewrite_extreme_hardware ($hardware) function rewrite_extreme_hardware ($hardware)
{ {
global $rewrite_extreme_hardware; global $rewrite_extreme_hardware;
#$hardware = array_str_replace($rewrite_extreme_hardware, $hardware); #$hardware = array_str_replace($rewrite_extreme_hardware, $hardware);
$hardware = $rewrite_extreme_hardware[$hardware]; $hardware = $rewrite_extreme_hardware[$hardware];
return ($hardware); return ($hardware);
} }
function rewrite_ftos_hardware ($hardware) function rewrite_ftos_hardware ($hardware)
{ {
global $rewrite_ftos_hardware; global $rewrite_ftos_hardware;
$hardware = $rewrite_ftos_hardware[$hardware]; $hardware = $rewrite_ftos_hardware[$hardware];
return ($hardware); return ($hardware);
} }
@@ -848,43 +872,53 @@ function rewrite_ftos_hardware ($hardware)
function rewrite_ironware_hardware ($hardware) function rewrite_ironware_hardware ($hardware)
{ {
global $rewrite_ironware_hardware; global $rewrite_ironware_hardware;
$hardware = array_str_replace($rewrite_ironware_hardware, $hardware); $hardware = array_str_replace($rewrite_ironware_hardware, $hardware);
return ($hardware); return ($hardware);
} }
function rewrite_junose_hardware ($hardware) function rewrite_junose_hardware ($hardware)
{ {
global $rewrite_junose_hardware; global $rewrite_junose_hardware;
$hardware = array_str_replace($rewrite_junose_hardware, $hardware); $hardware = array_str_replace($rewrite_junose_hardware, $hardware);
return ($hardware); return ($hardware);
} }
function fixiftype ($type) function fixiftype ($type)
{ {
global $rewrite_iftype; global $rewrite_iftype;
$type = array_preg_replace($rewrite_iftype, $type); $type = array_preg_replace($rewrite_iftype, $type);
return ($type); return ($type);
} }
function fixifName ($inf) function fixifName ($inf)
{ {
global $rewrite_ifname; global $rewrite_ifname;
$inf = strtolower($inf); $inf = strtolower($inf);
$inf = array_str_replace($rewrite_ifname, $inf); $inf = array_str_replace($rewrite_ifname, $inf);
return $inf; return $inf;
} }
function short_hrDeviceDescr($dev) function short_hrDeviceDescr($dev)
{ {
global $rewrite_hrDevice; global $rewrite_hrDevice;
$dev = array_str_replace($rewrite_hrDevice, $dev); $dev = array_str_replace($rewrite_hrDevice, $dev);
$dev = preg_replace("/\ +/"," ", $dev); $dev = preg_replace("/\ +/"," ", $dev);
$dev = trim($dev); $dev = trim($dev);
return $dev; return $dev;
} }
function short_port_descr ($desc) { function short_port_descr ($desc)
{
list($desc) = explode("(", $desc); list($desc) = explode("(", $desc);
list($desc) = explode("[", $desc); list($desc) = explode("[", $desc);
list($desc) = explode("{", $desc); list($desc) = explode("{", $desc);
@@ -893,29 +927,27 @@ function short_port_descr ($desc) {
$desc = trim($desc); $desc = trim($desc);
return $desc; return $desc;
} }
// Underlying rewrite functions // Underlying rewrite functions
function array_str_replace($array, $string)
{
function array_str_replace($array, $string) foreach ($array as $search => $replace)
{ {
foreach ($array as $search => $replace) { $string = str_replace($search, $replace, $string);
$string = str_replace($search, $replace, $string);
}
return $string;
} }
function array_preg_replace($array, $string) return $string;
}
function array_preg_replace($array, $string)
{
foreach ($array as $search => $replace)
{ {
foreach ($array as $search => $replace) { $string = preg_replace($search, $replace, $string);
$string = preg_replace($search, $replace, $string);
}
return $string;
} }
return $string;
}
?>
?>
+4 -3
View File
@@ -477,7 +477,8 @@ function snmp_cache_oid($oid, $device, $array, $mib = 0)
return $array; return $array;
} }
function snmp_cache_port_oids($oids, $port, $device, $array, $mib=0) { function snmp_cache_port_oids($oids, $port, $device, $array, $mib=0)
{
global $config; global $config;
if (is_numeric($device['timeout'])) { $timeout = $device['timeout']; } elseif (isset($config['snmp']['timeout'])) { $timeout = $config['snmp']['timeout']; } if (is_numeric($device['timeout'])) { $timeout = $device['timeout']; } elseif (isset($config['snmp']['timeout'])) { $timeout = $config['snmp']['timeout']; }
@@ -510,7 +511,7 @@ function snmp_cache_port_oids($oids, $port, $device, $array, $mib=0) {
return $array; return $array;
} }
function snmp_cache_portIfIndex ($device, $array) function snmp_cache_portIfIndex($device, $array)
{ {
global $config; global $config;
@@ -538,7 +539,7 @@ function snmp_cache_portIfIndex ($device, $array)
return $array; return $array;
} }
function snmp_cache_portName ($device, $array) function snmp_cache_portName($device, $array)
{ {
global $config; global $config;
+33 -20
View File
@@ -1,36 +1,47 @@
<?php <?php
function process_syslog ($entry, $update) { function process_syslog ($entry, $update)
{
global $config; global $config;
foreach($config['syslog_filter'] as $bi) { foreach($config['syslog_filter'] as $bi)
if (strstr($entry['msg'], $bi) !== FALSE) { {
if (strstr($entry['msg'], $bi) !== FALSE)
{
$delete = 1; $delete = 1;
} }
} }
$device_id_host = @mysql_result(mysql_query("SELECT device_id FROM devices WHERE `hostname` = '".$entry['host']."' OR `sysName` = '".$entry['host']."'"),0); $device_id_host = @mysql_result(mysql_query("SELECT device_id FROM devices WHERE `hostname` = '".$entry['host']."' OR `sysName` = '".$entry['host']."'"),0);
if($device_id_host) { if($device_id_host)
{
$entry['device_id'] = $device_id_host; $entry['device_id'] = $device_id_host;
} else { }
$device_id_ip = @mysql_result(mysql_query("SELECT device_id FROM ipv4_addresses AS A, ports AS I WHERE else
{
$device_id_ip = @mysql_result(mysql_query("SELECT device_id FROM ipv4_addresses AS A, ports AS I WHERE
A.ipv4_address = '" . $entry['host']."' AND I.interface_id = A.interface_id"),0); A.ipv4_address = '" . $entry['host']."' AND I.interface_id = A.interface_id"),0);
if($device_id_ip) { if($device_id_ip)
{
$entry['device_id'] = $device_id_ip; $entry['device_id'] = $device_id_ip;
} }
} }
if($entry['device_id'] && !$delete) { if($entry['device_id'] && !$delete)
{
$os = mysql_result(mysql_query("SELECT `os` FROM `devices` WHERE `device_id` = '".$entry['device_id']."'"),0); $os = mysql_result(mysql_query("SELECT `os` FROM `devices` WHERE `device_id` = '".$entry['device_id']."'"),0);
if($os == "ios" || $os == "iosxe") { if($os == "ios" || $os == "iosxe")
if(strstr($entry[msg], "%")) { {
if(strstr($entry[msg], "%"))
{
$entry['msg'] = preg_replace("/^%(.+?):\ /", "\\1||", $entry['msg']); $entry['msg'] = preg_replace("/^%(.+?):\ /", "\\1||", $entry['msg']);
list(,$entry[msg]) = split(": %", $entry['msg']); list(,$entry[msg]) = split(": %", $entry['msg']);
$entry['msg'] = "%" . $entry['msg']; $entry['msg'] = "%" . $entry['msg'];
$entry['msg'] = preg_replace("/^%(.+?):\ /", "\\1||", $entry['msg']); $entry['msg'] = preg_replace("/^%(.+?):\ /", "\\1||", $entry['msg']);
} else { }
else
{
$entry['msg'] = preg_replace("/^.*[0-9]:/", "", $entry['msg']); $entry['msg'] = preg_replace("/^.*[0-9]:/", "", $entry['msg']);
$entry['msg'] = preg_replace("/^[0-9][0-9]\ [A-Z]{3}:/", "", $entry['msg']); $entry['msg'] = preg_replace("/^[0-9][0-9]\ [A-Z]{3}:/", "", $entry['msg']);
$entry['msg'] = preg_replace("/^(.+?):\ /", "\\1||", $entry['msg']); $entry['msg'] = preg_replace("/^(.+?):\ /", "\\1||", $entry['msg']);
@@ -42,14 +53,17 @@ function process_syslog ($entry, $update) {
list($entry['program'], $entry['msg']) = explode("||", $entry['msg']); list($entry['program'], $entry['msg']) = explode("||", $entry['msg']);
$entry['msg'] = preg_replace("/^[0-9]+:/", "", $entry['msg']); $entry['msg'] = preg_replace("/^[0-9]+:/", "", $entry['msg']);
if(!$entry['program']) { if(!$entry['program'])
{
$entry['msg'] = preg_replace("/^([0-9A-Z\-]+?):\ /", "\\1||", $entry['msg']); $entry['msg'] = preg_replace("/^([0-9A-Z\-]+?):\ /", "\\1||", $entry['msg']);
list($entry['program'], $entry['msg']) = explode("||", $entry['msg']); list($entry['program'], $entry['msg']) = explode("||", $entry['msg']);
} }
if(!$entry['msg']) { $entry['msg'] = $entry['program']; unset ($entry['program']); } if(!$entry['msg']) { $entry['msg'] = $entry['program']; unset ($entry['program']); }
} else { }
else
{
$program = preg_quote($entry['program'],'/'); $program = preg_quote($entry['program'],'/');
$entry['msg'] = preg_replace("/^$program:\ /", "", $entry['msg']); $entry['msg'] = preg_replace("/^$program:\ /", "", $entry['msg']);
# if(preg_match("/^[a-zA-Z\/]+\[[0-9]+\]:/", $entry['msg'])) { # if(preg_match("/^[a-zA-Z\/]+\[[0-9]+\]:/", $entry['msg'])) {
@@ -62,14 +76,13 @@ function process_syslog ($entry, $update) {
$entry['program'] = strtoupper($entry['program']); $entry['program'] = strtoupper($entry['program']);
$x = "UPDATE `syslog` set `device_id` = '".$entry['device_id']."', `program` = '".$entry['program']."', `msg` = '" . mres($entry['msg']) . "', processed = '1' WHERE `seq` = '" . $entry['seq'] . "'"; $x = "UPDATE `syslog` set `device_id` = '".$entry['device_id']."', `program` = '".$entry['program']."', `msg` = '" . mres($entry['msg']) . "', processed = '1' WHERE `seq` = '" . $entry['seq'] . "'";
$x = "INSERT INTO `syslog` (`device_id`,`program`,`facility`,`priority`, `level`, `tag`, `msg`, `timestamp`) "; $x = "INSERT INTO `syslog` (`device_id`,`program`,`facility`,`priority`, `level`, `tag`, `msg`, `timestamp`) ";
$x .= "VALUES ('".$entry['device_id']."','".$entry['program']."','".$entry['facility']."','".$entry['priority']."', '".$entry['level']."', '".$entry['tag']."', '".$entry['msg']."','".$entry['timestamp']."')"; $x .= "VALUES ('".$entry['device_id']."','".$entry['program']."','".$entry['facility']."','".$entry['priority']."', '".$entry['level']."', '".$entry['tag']."', '".$entry['msg']."','".$entry['timestamp']."')";
if($update && $entry['device_id']) { mysql_query($x); } if($update && $entry['device_id']) { mysql_query($x); }
unset ($fix); unset ($fix);
} else { print_r($entry); echo("D-$delete");} } else { print_r($entry); echo("D-$delete");}
return $entry; return $entry;
} }
?>
?>
+91 -86
View File
@@ -3,7 +3,6 @@
$debug = "1"; $debug = "1";
include("includes/defaults.inc.php"); include("includes/defaults.inc.php");
include("config.php"); include("config.php");
include("includes/functions.php"); include("includes/functions.php");
@@ -13,106 +12,112 @@ $iter = "0";
echo("Starting Polling Session ... \n\n"); echo("Starting Polling Session ... \n\n");
$bill_query = mysql_query("select * from bills"); $bill_query = mysql_query("select * from bills");
while ($bill_data = mysql_fetch_array($bill_query)) { while ($bill_data = mysql_fetch_array($bill_query))
echo("Bill : ".$bill_data['bill_name']."\n"); {
echo("Bill : ".$bill_data['bill_name']."\n");
CollectData($bill_data['bill_id']); CollectData($bill_data['bill_id']);
$iter++;
$iter++;
} }
function CollectData($bill_id) { function CollectData($bill_id)
$port_query = mysql_query("select * from bill_ports as P, ports as I, devices as D where P.bill_id='$bill_id' AND I.interface_id = P.port_id AND D.device_id = I.device_id"); {
$port_query = mysql_query("select * from bill_ports as P, ports as I, devices as D where P.bill_id='$bill_id' AND I.interface_id = P.port_id AND D.device_id = I.device_id");
while ($port_data = mysql_fetch_array($port_query)) { while ($port_data = mysql_fetch_array($port_query))
unset($port_in_measurement); {
unset($port_in_delta); unset($port_in_measurement);
unset($last_port_in_measurement); unset($port_in_delta);
unset($last_port_in_delta); unset($last_port_in_measurement);
unset($port_out_measurement); unset($last_port_in_delta);
unset($port_out_delta); unset($port_out_measurement);
unset($last_port_out_measurement); unset($port_out_delta);
unset($last_port_out_delta); unset($last_port_out_measurement);
unset($last_port_out_delta);
$port_id = $port_data['port_id']; $port_id = $port_data['port_id'];
$host = $port_data['hostname']; $host = $port_data['hostname'];
$port = $port_data['port']; $port = $port_data['port'];
echo("\nPolling ".$port_data['ifDescr']." on ".$port_data['hostname']."\n"); echo("\nPolling ".$port_data['ifDescr']." on ".$port_data['hostname']."\n");
$port_in_measurement = trim(getValue($host, $port_data['community'], $port_data['snmpver'], $port, $port_data['ifIndex'], "In")); $port_in_measurement = trim(getValue($host, $port_data['community'], $port_data['snmpver'], $port, $port_data['ifIndex'], "In"));
$port_out_measurement = trim(getValue($host, $port_data['community'], $port_data['snmpver'], $port, $port_data['ifIndex'], "Out")); $port_out_measurement = trim(getValue($host, $port_data['community'], $port_data['snmpver'], $port, $port_data['ifIndex'], "Out"));
echo("$port_in_measurement and $port_out_measurement \n"); echo("$port_in_measurement and $port_out_measurement \n");
$now = mysql_result(mysql_query("SELECT NOW()"), 0); $now = mysql_result(mysql_query("SELECT NOW()"), 0);
$last_data = getLastPortCounter($port_id,in); $last_data = getLastPortCounter($port_id,in);
if ($last_data[state] == "ok") { if ($last_data[state] == "ok")
$last_port_in_measurement = $last_data[counter]; {
$last_port_in_delta = $last_data[delta]; $last_port_in_measurement = $last_data[counter];
if ($port_in_measurement > $last_port_in_measurement) { $last_port_in_delta = $last_data[delta];
$port_in_delta = $port_in_measurement - $last_port_in_measurement; if ($port_in_measurement > $last_port_in_measurement)
} else { {
$port_in_delta = $last_port_in_delta; $port_in_delta = $port_in_measurement - $last_port_in_measurement;
} } else {
} else { $port_in_delta = $last_port_in_delta;
$port_in_delta = '0'; }
} } else {
$pim = "INSERT INTO port_in_measurements (port_id,timestamp,counter,delta) VALUES ($port_id, '$now', $port_in_measurement, $port_in_delta) "; $port_in_delta = '0';
#echo("$pim \n"); }
$pim_query = mysql_query($pim); $pim = "INSERT INTO port_in_measurements (port_id,timestamp,counter,delta) VALUES ($port_id, '$now', $port_in_measurement, $port_in_delta) ";
unset($last_data, $last_port_in_measurement, $last_port_in_delta); #echo("$pim \n");
$pim_query = mysql_query($pim);
unset($last_data, $last_port_in_measurement, $last_port_in_delta);
$last_data = getLastPortCounter($port_id,out); $last_data = getLastPortCounter($port_id,out);
if ($last_data[state] == "ok") { if ($last_data[state] == "ok")
$last_port_out_measurement = $last_data[counter]; {
$last_port_out_delta = $last_data[delta]; $last_port_out_measurement = $last_data[counter];
if ($port_out_measurement > $last_port_out_measurement) { $last_port_out_delta = $last_data[delta];
$port_out_delta = $port_out_measurement - $last_port_out_measurement; if ($port_out_measurement > $last_port_out_measurement)
} else { {
$port_out_delta = $last_port_out_delta; $port_out_delta = $port_out_measurement - $last_port_out_measurement;
} } else {
} else { $port_out_delta = $last_port_out_delta;
$port_out_delta = '0'; }
} } else {
$pom = "INSERT INTO port_out_measurements (port_id,timestamp,counter,delta) VALUES ($port_id, '$now', $port_out_measurement, $port_out_delta) "; $port_out_delta = '0';
#echo("$pom \n"); }
$pom_query = mysql_query($pom); $pom = "INSERT INTO port_out_measurements (port_id,timestamp,counter,delta) VALUES ($port_id, '$now', $port_out_measurement, $port_out_delta) ";
unset($last_data, $last_port_in_measurement, $last_port_in_delta); #echo("$pom \n");
$pom_query = mysql_query($pom);
unset($last_data, $last_port_in_measurement, $last_port_in_delta);
$delta = $delta + $port_in_delta + $port_out_delta; $delta = $delta + $port_in_delta + $port_out_delta;
$in_delta = $in_delta + $port_in_delta; $in_delta = $in_delta + $port_in_delta;
$out_delta = $out_delta + $port_out_delta; $out_delta = $out_delta + $port_out_delta;
unset($port_in_delta,$port_out_delta,$prev_delta,$prev_timestamp,$period); unset($port_in_delta,$port_out_delta,$prev_delta,$prev_timestamp,$period);
} }
$last_data = getLastMeasurement($bill_id); $last_data = getLastMeasurement($bill_id);
if ($last_data[state] == "ok") { if ($last_data[state] == "ok")
$prev_delta = $last_data[delta]; {
$prev_in_delta = $last_data[in_delta]; $prev_delta = $last_data[delta];
$prev_out_delta = $last_data[out_delta]; $prev_in_delta = $last_data[in_delta];
$prev_timestamp = $last_data[timestamp]; $prev_out_delta = $last_data[out_delta];
$period = mysql_result(mysql_query("SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) - UNIX_TIMESTAMP('$prev_timestamp')"),0); $prev_timestamp = $last_data[timestamp];
} else { $period = mysql_result(mysql_query("SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) - UNIX_TIMESTAMP('$prev_timestamp')"),0);
$prev_delta = '0'; } else {
$period = '0'; $prev_delta = '0';
$prev_in_delta = '0'; $period = '0';
$prev_out_delta = '0'; $prev_in_delta = '0';
} $prev_out_delta = '0';
if( $delta < '0' ) { }
$delta = $prev_delta;
$in_delta = $prev_in_delta; if ($delta < '0' )
$out_delta = $prev_out_delta; {
} $delta = $prev_delta;
$insert_string = "INSERT INTO bill_data (bill_id,timestamp,period,delta,in_delta,out_delta) VALUES ('$bill_id','$now','$period','$delta','$in_delta','$out_delta')"; $in_delta = $prev_in_delta;
#echo("$insert_string\n"); $out_delta = $prev_out_delta;
$insert_measurement = mysql_query($insert_string);
}
$insert_string = "INSERT INTO bill_data (bill_id,timestamp,period,delta,in_delta,out_delta) VALUES ('$bill_id','$now','$period','$delta','$in_delta','$out_delta')";
$insert_measurement = mysql_query($insert_string);
} }
if ($argv[1]) { CollectData($argv[1]); } if ($argv[1]) { CollectData($argv[1]); }
?>
?>