small fixes

git-svn-id: http://www.observium.org/svn/observer/trunk@1755 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Tom Laermans
2010-12-03 15:56:57 +00:00
parent 3133a5b2fd
commit 73135beb95
3 changed files with 95 additions and 84 deletions

View File

@@ -1,8 +1,8 @@
<?php <?php
$service_alerts = mysql_result(mysql_query("SELECT count(service_id) FROM services WHERE service_status = '0'"),0); $service_alerts = mysql_result(mysql_query("SELECT count(service_id) FROM services WHERE service_status = '0'"),0);
$if_alerts = mysql_result(mysql_query("SELECT count(*) FROM `ports` WHERE `ifOperStatus` = 'down' AND `ifAdminStatus` = 'up' AND `ignore` = '0'"),0); $if_alerts = mysql_result(mysql_query("SELECT count(*) FROM `ports` WHERE `ifOperStatus` = 'down' AND `ifAdminStatus` = 'up' AND `ignore` = '0'"),0);
$device_alerts = "0"; $device_alerts = "0";
$device_alert_sql = "WHERE 0"; $device_alert_sql = "WHERE 0";
if (isset($config['enable_bgp']) && $config['enable_bgp']) if (isset($config['enable_bgp']) && $config['enable_bgp'])
@@ -17,10 +17,10 @@ if (isset($config['enable_bgp']) && $config['enable_bgp'])
if (mysql_result(mysql_query("SELECT count(service_id) FROM services WHERE service_status = '0' AND device_id = '".$device['device_id']."'"),0)) { $this_alert = "1"; } if (mysql_result(mysql_query("SELECT count(service_id) FROM services WHERE service_status = '0' AND device_id = '".$device['device_id']."'"),0)) { $this_alert = "1"; }
if (mysql_result(mysql_query("SELECT count(*) FROM ports WHERE `ifOperStatus` = 'down' AND `ifAdminStatus` = 'up' AND device_id = '" . $device['device_id'] . "' AND `ignore` = '0'"),0)) { $this_alert = "1";} if (mysql_result(mysql_query("SELECT count(*) FROM ports WHERE `ifOperStatus` = 'down' AND `ifAdminStatus` = 'up' AND device_id = '" . $device['device_id'] . "' AND `ignore` = '0'"),0)) { $this_alert = "1";}
} }
if ($this_alert) { if ($this_alert) {
$device_alerts++; $device_alerts++;
$device_alert_sql .= " OR `device_id` = '" . $device['device_id'] . "'"; $device_alert_sql .= " OR `device_id` = '" . $device['device_id'] . "'";
} }
} }
?> ?>
@@ -81,9 +81,9 @@ if (!isset($config['show_services']) || $config['show_services'])
<table><tr><td> <table><tr><td>
<ul> <ul>
<li><a href="services/"><img src="images/16/cog.png" border="0" align="absmiddle" /> All Services </a></li> <li><a href="services/"><img src="images/16/cog.png" border="0" align="absmiddle" /> All Services </a></li>
<?php if ($service_alerts) { <?php if ($service_alerts) {
echo(' <li><hr width=140 /></li> echo(' <li><hr width=140 /></li>
<li><a href="services/?status=0"><img src="images/16/cog_error.png" border="0" align="absmiddle" /> Alerts ('.$service_alerts.')</a></li>'); <li><a href="services/?status=0"><img src="images/16/cog_error.png" border="0" align="absmiddle" /> Alerts ('.$service_alerts.')</a></li>');
} ?> } ?>
<?php <?php
@@ -102,8 +102,8 @@ if ($_SESSION['userlevel'] >= '10') {
} }
## Display Locations entry if $config['show_locations'] ## Display Locations entry if $config['show_locations']
if ($config['show_locations']) if ($config['show_locations'])
{ {
$locations = mysql_query("SELECT DISTINCT location FROM devices ORDER BY location"); $locations = mysql_query("SELECT DISTINCT location FROM devices ORDER BY location");
?> ?>
<li><a class="menu2four" href="locations/"><img src="images/16/building.png" border="0" align="absmiddle" /> Locations</a> <li><a class="menu2four" href="locations/"><img src="images/16/building.png" border="0" align="absmiddle" /> Locations</a>
@@ -141,11 +141,13 @@ if ($config['show_locations'])
<?php <?php
if ($ports['errored']) { if ($ports['errored'])
{
echo('<li><a href="ports/errors/"><img src="images/16/chart_curve_error.png" border="0" align="absmiddle" /> Errored ('.$ports['errored'].')</a></li>'); echo('<li><a href="ports/errors/"><img src="images/16/chart_curve_error.png" border="0" align="absmiddle" /> Errored ('.$ports['errored'].')</a></li>');
} }
if ($ports['ignored']) { if ($ports['ignored'])
{
echo('<li><a href="ports/ignored/"><img src="images/16/chart_curve_link.png" border="0" align="absmiddle" /> Ignored ('.$ports['ignored'].')</a></li>'); echo('<li><a href="ports/ignored/"><img src="images/16/chart_curve_link.png" border="0" align="absmiddle" /> Ignored ('.$ports['ignored'].')</a></li>');
} }
@@ -155,13 +157,14 @@ if ($config['enable_pseudowires']) { echo('<li><a href="pseudowires/"><img src="
if ($config['enable_pseudowires']) { echo('<li><a href="vrfs/"><img src="images/16/layers.png" border="0" align="absmiddle" /> VRFs</a></li>'); $ifbreak = 1;} if ($config['enable_pseudowires']) { echo('<li><a href="vrfs/"><img src="images/16/layers.png" border="0" align="absmiddle" /> VRFs</a></li>'); $ifbreak = 1;}
?> ?>
<li><a href="ipv4/"><img src="images/16/email_link.png" border="0" align="absmiddle" /> IPv4 Search</a></li> <li><a href="ipv4/"><img src="images/16/email_link.png" border="0" align="absmiddle" /> IPv4 Search</a></li>
<li><a href="ipv6/"><img src="images/16/email_link.png" border="0" align="absmiddle" /> IPv6 Search</a></li> <li><a href="ipv6/"><img src="images/16/email_link.png" border="0" align="absmiddle" /> IPv6 Search</a></li>
<?php <?php
if ($_SESSION['userlevel'] >= '5') {##FIXME html if ($_SESSION['userlevel'] >= '5')
{
echo('<li><hr width="140" /></li>'); echo('<li><hr width="140" /></li>');
if ($config['int_customers']) { echo('<li><a href="customers/"><img src="images/16/group_link.png" border="0" align="absmiddle" /> Customers</a></li>'); $ifbreak = 1;} if ($config['int_customers']) { echo('<li><a href="customers/"><img src="images/16/group_link.png" border="0" align="absmiddle" /> Customers</a></li>'); $ifbreak = 1;}
if ($config['int_l2tp']) { echo('<li><a href="iftype/l2tp/"><img src="images/16/user.png" border="0" align="absmiddle" /> L2TP</a></li>'); $ifbreak = 1; } if ($config['int_l2tp']) { echo('<li><a href="iftype/l2tp/"><img src="images/16/user.png" border="0" align="absmiddle" /> L2TP</a></li>'); $ifbreak = 1; }
@@ -173,26 +176,28 @@ if ($_SESSION['userlevel'] >= '5') {##FIXME html
if ($ifbreak) { echo('<li><hr width="140" /></li>'); } if ($ifbreak) { echo('<li><hr width="140" /></li>'); }
if (isset($interface_alerts)) { if (isset($interface_alerts))
echo('<li><a href="ports/?status=0"><img src="images/16/link_error.png" border="0" align="absmiddle" /> Alerts ('.$interface_alerts.')</a></li>'); {
echo('<li><a href="ports/?status=0"><img src="images/16/link_error.png" border="0" align="absmiddle" /> Alerts ('.$interface_alerts.')</a></li>');
} }
$sql = "SELECT * FROM `ports` AS P, `devices` as D WHERE P.`deleted` = '1' AND D.device_id = P.device_id"; $sql = "SELECT * FROM `ports` AS P, `devices` as D WHERE P.`deleted` = '1' AND D.device_id = P.device_id";
$query = mysql_query($sql); $query = mysql_query($sql);
$deleted_ports = 0; $deleted_ports = 0;
while($interface = mysql_fetch_assoc($query)) { while($interface = mysql_fetch_assoc($query))
if(port_permitted($interface['interface_id'], $interface['device_id'])){ {
$deleted_ports++; if(port_permitted($interface['interface_id'], $interface['device_id']))
} {
$deleted_ports++;
} }
}
?> ?>
<li><a href="ports/down/"><img src="images/16/if-disconnect.png" border="0" align="absmiddle" /> Down</a></li> <li><a href="ports/down/"><img src="images/16/if-disconnect.png" border="0" align="absmiddle" /> Down</a></li>
<li><a href="ports/admindown/"><img src="images/16/if-disable.png" border="0" align="absmiddle" /> Disabled</a></li> <li><a href="ports/admindown/"><img src="images/16/if-disable.png" border="0" align="absmiddle" /> Disabled</a></li>
<?php <?php
if($deleted_ports) { echo('<li><a href="ports/deleted/"><img src="images/16/cross.png" border="0" align="absmiddle" /> Deleted ('.$deleted_ports.')</a></li>'); } if($deleted_ports) { echo('<li><a href="ports/deleted/"><img src="images/16/cross.png" border="0" align="absmiddle" /> Deleted ('.$deleted_ports.')</a></li>'); }
?> ?>
</ul></td></tr></table> </ul></td></tr></table>
@@ -238,7 +243,7 @@ echo('
if ($bgp_alerts) { echo(' if ($bgp_alerts) { echo('
<li><hr width="140" /></li> <li><hr width="140" /></li>
<li><a href="bgp/alerts/"><img src="images/16/link_error.png" border="0" align="absmiddle" /> Alerted (' . $bgp_alerts . ')</a></li> <li><a href="bgp/alerts/"><img src="images/16/link_error.png" border="0" align="absmiddle" /> Alerted (' . $bgp_alerts . ')</a></li>
'); } '); }
echo(' <li><hr /></li> echo(' <li><hr /></li>
@@ -251,7 +256,6 @@ echo(' <li><hr /></li>
?> ?>
<li style="float: right;"><a><img src="images/16/wrench.png" border="0" align="absmiddle" /> System <li style="float: right;"><a><img src="images/16/wrench.png" border="0" align="absmiddle" /> System
<!--[if IE 7]><!--></a><!--<![endif]--> <!--[if IE 7]><!--></a><!--<![endif]-->
<table><tr><td> <table><tr><td>
@@ -268,7 +272,7 @@ echo(' <li><hr /></li>
<?php if ($_SESSION['userlevel'] >= '10') { <?php if ($_SESSION['userlevel'] >= '10') {
echo(' echo('
<li><hr width="140" /></li>'); <li><hr width="140" /></li>');
if (auth_usermanagement()) if (auth_usermanagement())
{ {
echo(' echo('
@@ -280,10 +284,9 @@ echo(' <li><hr /></li>
echo(' echo('
<li><a href="authlog/"><img src="images/16/lock.png" border="0" align="absmiddle" /> Authlog</a></li>'); <li><a href="authlog/"><img src="images/16/lock.png" border="0" align="absmiddle" /> Authlog</a></li>');
} ?> } ?>
</ul> </ul>
</td></tr></table> </td></tr></table>
<!--[if lte IE 6]></a><![endif]--> <!--[if lte IE 6]></a><![endif]-->
</li> </li>
</ul> </ul>
</div> </div>

View File

@@ -1,56 +1,64 @@
<?php <?php
echo("IP Addresses : ");
# FIXME function! echo("IP Addresses : ");
$oids = shell_exec($config['snmpwalk'] . " -M " . $config['mibdir'] . " -m IP-MIB -".$device['snmpver']." -Osq -c ".$device['community']." ".$device['hostname'].":".$device['port']." ipAdEntIfIndex");
$oids = trim($oids);
$oids = str_replace("ipAdEntIfIndex.", "", $oids);
foreach(explode("\n", $oids) as $data) {
$data = trim($data);
list($oid,$ifIndex) = explode(" ", $data);
# FIXME function!
$mask = shell_exec($config['snmpget']. " -M " . $config['mibdir'] ." -m IP-MIB -O qv -".$device['snmpver']." -c ".$device['community']." ".$device['hostname'].":".$device['port']." ipAdEntNetMask.$oid");
$mask = trim($mask);
$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"; }
if (mysql_result(mysql_query("SELECT count(*) FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"), 0) != '0' && $oid != "0.0.0.0") {
$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);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv4_networks` WHERE `ipv4_network` = '$network'"), 0) < '1') {
mysql_query("INSERT INTO `ipv4_networks` (`ipv4_network`) VALUES ('$network')");
#echo("Create Subnet $network\n");
echo("S");
}
$ipv4_network_id = @mysql_result(mysql_query("SELECT `ipv4_network_id` from `ipv4_networks` WHERE `ipv4_network` = '$network'"), 0);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv4_addresses` WHERE `ipv4_address` = '$oid' AND `ipv4_prefixlen` = '$cidr' AND `interface_id` = '$interface_id'"), 0) == '0') { $oids = trim(snmp_walk($device,"ipAdEntIfIndex","-Osq","IP-MIB"));
mysql_query("INSERT INTO `ipv4_addresses` (`ipv4_address`, `ipv4_prefixlen`, `ipv4_network_id`, `interface_id`) VALUES ('$oid', '$cidr', '$ipv4_network_id', '$interface_id')"); $oids = str_replace("ipAdEntIfIndex.", "", $oids);
#echo("Added $oid/$cidr to $interface_id ( $hostname $ifIndex )\n $i_query\n"); foreach(explode("\n", $oids) as $data)
echo("+"); {
} else { echo("."); } $data = trim($data);
$full_address = "$oid/$cidr|$ifIndex"; list($oid,$ifIndex) = explode(" ", $data);
$valid_v4[$full_address] = 1; $mask = trim(snmp_get($device,"ipAdEntNetMask.$oid","-Oqv","IP-MIB"));
} else { echo("!"); } #FIXME internalize?
$network = trim(shell_exec ($config['ipcalc'] . " $oid/$mask | grep Network | cut -d\" \" -f 4"));
} list($net,$cidr) = explode("/", $network);
$cidr = trim($cidr);
$sql = "SELECT * FROM ipv4_addresses AS A, ports AS I WHERE I.device_id = '".$device['device_id']."' AND A.interface_id = I.interface_id"; if ($mask == "255.255.255.255") { $cidr = "32"; $network = "$oid/$cidr"; }
$data = mysql_query($sql); if (mysql_result(mysql_query("SELECT count(*) FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"), 0) != '0' && $oid != "0.0.0.0")
while($row = mysql_fetch_array($data)) { {
$full_address = $row['ipv4_address'] . "/" . $row['ipv4_prefixlen'] . "|" . $row['ifIndex']; $i_query = "SELECT interface_id FROM `ports` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'";
if(!$valid_v4[$full_address]) { $interface_id = mysql_result(mysql_query($i_query), 0);
echo("-");
$query = @mysql_query("DELETE FROM `ipv4_addresses` WHERE `ipv4_address_id` = '".$row['ipv4_address_id']."'"); if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv4_networks` WHERE `ipv4_network` = '$network'"), 0) < '1')
if(!mysql_result(mysql_query("SELECT count(*) FROM ipv4_addresses WHERE ipv4_network_id = '".$row['ipv4_network_id']."'"),0)) { {
$query = @mysql_query("DELETE FROM `ipv4_networks` WHERE `ipv4_network_id` = '".$row['ipv4_network_id']."'"); mysql_query("INSERT INTO `ipv4_networks` (`ipv4_network`) VALUES ('$network')");
} #echo("Create Subnet $network\n");
} echo("S");
} }
$ipv4_network_id = @mysql_result(mysql_query("SELECT `ipv4_network_id` from `ipv4_networks` WHERE `ipv4_network` = '$network'"), 0);
echo("\n"); if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv4_addresses` WHERE `ipv4_address` = '$oid' AND `ipv4_prefixlen` = '$cidr' AND `interface_id` = '$interface_id'"), 0) == '0')
{
mysql_query("INSERT INTO `ipv4_addresses` (`ipv4_address`, `ipv4_prefixlen`, `ipv4_network_id`, `interface_id`) VALUES ('$oid', '$cidr', '$ipv4_network_id', '$interface_id')");
#echo("Added $oid/$cidr to $interface_id ( $hostname $ifIndex )\n $i_query\n");
echo("+");
} else { echo("."); }
$full_address = "$oid/$cidr|$ifIndex";
$valid_v4[$full_address] = 1;
} else { echo("!"); }
unset($valid_v4); }
$sql = "SELECT * FROM ipv4_addresses AS A, ports AS I WHERE I.device_id = '".$device['device_id']."' AND A.interface_id = I.interface_id";
$data = mysql_query($sql);
while($row = mysql_fetch_array($data))
{
$full_address = $row['ipv4_address'] . "/" . $row['ipv4_prefixlen'] . "|" . $row['ifIndex'];
if (!$valid_v4[$full_address])
{
echo("-");
$query = @mysql_query("DELETE FROM `ipv4_addresses` WHERE `ipv4_address_id` = '".$row['ipv4_address_id']."'");
if (!mysql_result(mysql_query("SELECT count(*) FROM ipv4_addresses WHERE ipv4_network_id = '".$row['ipv4_network_id']."'"),0))
{
$query = @mysql_query("DELETE FROM `ipv4_networks` WHERE `ipv4_network_id` = '".$row['ipv4_network_id']."'");
}
}
}
echo("\n");
unset($valid_v4);
?> ?>

View File

@@ -4,7 +4,7 @@ global $valid_sensor;
if (strstr($device['hardware'], "dell")) if (strstr($device['hardware'], "dell"))
{ {
$oids = snmp_walk($device, ".1.3.6.1.4.1.674.10892.1.700.20.1.8", "-Osqn", "MIB-Dell-10892"); $oids = snmp_walk($device, "coolingDeviceDiscreteReading", "-Osqn", "MIB-Dell-10892");
$oids = trim($oids); $oids = trim($oids);
if ($oids) echo("Dell OMSA "); if ($oids) echo("Dell OMSA ");
foreach(explode("\n",$oids) as $oid) foreach(explode("\n",$oids) as $oid)
@@ -16,8 +16,8 @@ if (strstr($device['hardware'], "dell"))
$descr_query = snmp_get($device, ".1.3.6.1.4.1.674.10892.1.700.20.1.8.$oid", "-Onvq", "MIB-Dell-10892"); $descr_query = snmp_get($device, ".1.3.6.1.4.1.674.10892.1.700.20.1.8.$oid", "-Onvq", "MIB-Dell-10892");
$descr = trim(str_replace("\"", "", shell_exec($descr_query))); $descr = trim(str_replace("\"", "", shell_exec($descr_query)));
$fulloid = ".1.3.6.1.4.1.674.10892.1.700.20.1.6.$oid"; $fulloid = ".1.3.6.1.4.1.674.10892.1.700.20.1.6.$oid";
### FIXME CURRENT $temp = snmp_get($device, $fulloid, "-Oqv");
discover_sensor($valid_sensor, 'temperature', $device, $fulloid, $oid, 'dell', $descr, '10', '1', NULL, NULL, NULL, NULL, NULL); discover_sensor($valid_sensor, 'temperature', $device, $fulloid, $oid, 'dell', $descr, '10', '1', NULL, NULL, NULL, NULL, $temp);
} }
} }
} }