mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	syslog improvements :)
git-svn-id: http://www.observium.org/svn/observer/trunk@198 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
		
							
								
								
									
										28
									
								
								cleanup.php
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								cleanup.php
									
									
									
									
									
								
							@@ -6,8 +6,8 @@
 | 
			
		||||
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)) {
 | 
			
		||||
@@ -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'];
 | 
			
		||||
@@ -66,7 +66,7 @@ while ($link = mysql_fetch_array($link_query)) {
 | 
			
		||||
echo(mysql_result(mysql_query("SELECT COUNT(id) FROM `links`"), 0) . " links at end\n");
 | 
			
		||||
 | 
			
		||||
echo(mysql_result(mysql_query("SELECT COUNT(adj_id) FROM `adjacencies`"), 0) . " adjacencies at start\n");
 | 
			
		||||
$link_query = mysql_query("SELECT * FROM `adjacencies` AS A, `interfaces` AS I, `devices` AS D, networks AS N WHERE I.interface_id = A.interface_id AND D.device_id = I.device_id AND N.id = A.network_id;");
 | 
			
		||||
$link_query = mysql_query("SELECT * FROM `adjacencies` AS A, `interfaces` AS I, `devices` AS D, networks AS N WHERE I.interface_id = A.interface_id AND D.device_id = I.device_id AND N.id = A.network_id");
 | 
			
		||||
while ($link = mysql_fetch_array($link_query)) {
 | 
			
		||||
  $id = $link['adj_id'];
 | 
			
		||||
  $netid = $link['network_id'];
 | 
			
		||||
@@ -76,16 +76,20 @@ while ($link = mysql_fetch_array($link_query)) {
 | 
			
		||||
    echo("Removed Interface!\n");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  echo($link['if'] . " (" . $link['interface_id'] . ") -> " . $link['cidr'] . " \n");
 | 
			
		||||
  list($network, $cidr) = explode("/", $link['cidr']);
 | 
			
		||||
 | 
			
		||||
  $q = mysql_query("SELECT * FROM `ipaddr` WHERE `interface_id` = '" . $link['interface_id'] . "'");
 | 
			
		||||
  $checksql = "SELECT COUNT(*) FROM `ipaddr` WHERE `interface_id` = '" . $link['interface_id'] . "' AND `cidr` = '$cidr' AND `network` = '$network'";
 | 
			
		||||
  if(mysql_result(mysql_query($checksql),0) == 0) { $remove = 1; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#  echo($link['if'] . " (" . $link['interface_id'] . ") -> " . $link['cidr'] . " \n");
 | 
			
		||||
 | 
			
		||||
  if($link['cidr'] == "") { $remove = 1; echo("Broken CIDR entry!"); }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if($remove) {
 | 
			
		||||
    mysql_query("delete from adjacencies where `adj_id` = '$id'");
 | 
			
		||||
    echo("Deleting link $id \n");
 | 
			
		||||
    echo("Deleting link $id (".$link['cidr']." - ". $link['hostname'] ." - ". $link['ifDescr']  .")\n");
 | 
			
		||||
  }
 | 
			
		||||
  unset($remove);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -79,6 +79,9 @@ $config['show_locations'] = 1;  # Enable Locations on menu
 | 
			
		||||
$config['enable_bgp'] = 1; # Enable BGP session collection and display
 | 
			
		||||
$config['enable_syslog'] = 1;   # Enable Syslog
 | 
			
		||||
 | 
			
		||||
## If a syslog entry contails these strings it is deleted from the database
 | 
			
		||||
$config['syslog_filter'] = array("last message repeated", "Connection from UDP: [127.0.0.1]:"); 
 | 
			
		||||
 | 
			
		||||
### Interface name strings to ignore
 | 
			
		||||
$config['bad_if'] = array("null", "virtual-", "unrouted", "eobc", "mpls", "sl0", "lp0", "faith0",
 | 
			
		||||
             "-atm layer", "-atm subif", "-shdsl", "-adsl", "-aal5", "-atm",
 | 
			
		||||
 
 | 
			
		||||
@@ -3,24 +3,21 @@
 | 
			
		||||
 | 
			
		||||
if($bg == $list_colour_a) { $bg = $list_colour_b; } else { $bg=$list_colour_a; }
 | 
			
		||||
 | 
			
		||||
#  if($entry['interface']) {
 | 
			
		||||
#    $interface = fixifname(getifbyid($entry['interface']));
 | 
			
		||||
#  }
 | 
			
		||||
  if(!$entry['processed']) { $entry = process_syslog($entry, 1); }
 | 
			
		||||
 | 
			
		||||
 if(!$entry['deleted']) {
 | 
			
		||||
 | 
			
		||||
  $entry['hostname'] = gethostbyid($entry['device_id']);
 | 
			
		||||
 | 
			
		||||
  unset($icon);
 | 
			
		||||
 | 
			
		||||
#  $icon = geteventicon($entry['message']);
 | 
			
		||||
#  if($icon) {$icon = "<img src='images/16/$icon'>"; }
 | 
			
		||||
 | 
			
		||||
  echo("<tr style=\"background-color: $bg\">
 | 
			
		||||
    <td width=0></td>");
 | 
			
		||||
 | 
			
		||||
  echo("<td class=syslog width=125>" . $entry['date'] . "</td>");
 | 
			
		||||
 | 
			
		||||
  if($_GET['page'] == "syslog") { 
 | 
			
		||||
    echo("<td width=200><strong>".generatedevicelink($entry['device_id'], $entry['hostname'])."</strong></td>"); 
 | 
			
		||||
  $entry['hostname'] = shorthost($entry['hostname'], 20);
 | 
			
		||||
 | 
			
		||||
  if($_GET['page'] != "device") { 
 | 
			
		||||
    echo("<td width=160><strong>".generatedevicelink($entry)."</strong></td>"); 
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -31,4 +28,6 @@ if($bg == $list_colour_a) { $bg = $list_colour_b; } else { $bg=$list_colour_a; }
 | 
			
		||||
    <td></td>
 | 
			
		||||
  </tr>");
 | 
			
		||||
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,9 @@
 | 
			
		||||
<table border=0 cellpadding=10 cellspacing=10 width=100%>
 | 
			
		||||
  <tr>
 | 
			
		||||
    <td bgcolor=#e5e5e5 valign=top>
 | 
			
		||||
      <table width=100% border=0><tr><td><div style="margin-bottom: 5px; font-size: 18px; font-weight: bold;">Devices with Alerts</div></td><td width=35 align=center><div class=tablehead>Host</div></td><td align=center width=35><div class=tablehead>Int</div></td><td align=center width=35><div class=tablehead>Srv</div></tr>
 | 
			
		||||
<?php
 | 
			
		||||
#      <table width=100% border=0><tr><td><div style="margin-bottom: 5px; font-size: 18px; font-weight: bold;">Devices with Alerts</div></td><td width=35 align=center><div class=tablehead>Host</div></td><td align=center width=35><div class=tablehead>Int</div></td><td align=center width=35><div class=tablehead>Srv</div></tr>
 | 
			
		||||
?>
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
$nodes = array();
 | 
			
		||||
@@ -77,7 +79,9 @@ foreach($nodes as $node) {
 | 
			
		||||
  $intlist = array();
 | 
			
		||||
  $sql = mysql_query("SELECT `ifDescr`, `ifAlias` FROM interfaces WHERE `ifOperStatus` = 'down' AND `ifAdminStatus` = 'up' AND `device_id` = '$node'");
 | 
			
		||||
 | 
			
		||||
  $rebooted = mysql_result(mysql_query("SELECT attrib_value FROM `devices` AS D, `devices_attribs` AS A WHERE D.device_id = '$node' AND D.status = '1' AND A.device_id = D.device_id AND A.attrib_type = 'uptime' AND A.attrib_value > '0' AND A.attrib_value < '86400'"),0);
 | 
			
		||||
  $uptime = mysql_result(mysql_query("SELECT attrib_value FROM `devices` AS D, `devices_attribs` AS A WHERE D.device_id = '$node' AND D.status = '1' AND A.device_id = D.device_id AND A.attrib_type = 'uptime'"),0);
 | 
			
		||||
 | 
			
		||||
  if($uptime < "86000") { $rebooted = 1; } else { $rebooted = 0; }
 | 
			
		||||
 | 
			
		||||
  while($int = mysql_fetch_row($sql)) { $intlist[] = "<b>$int[0]</b> - $int[1]"; } 
 | 
			
		||||
  foreach ($intlist as $intname) { $intpop .= "$br $intname"; $br = "<br />"; }
 | 
			
		||||
@@ -97,35 +101,66 @@ foreach($nodes as $node) {
 | 
			
		||||
  $mouseover = "onmouseover=\"return overlib('<img src=\'graph.php?host=$node&from=$week&to=$now&width=400&height=120&type=cpu\'>');\"
 | 
			
		||||
                onmouseout=\"return nd();\"";
 | 
			
		||||
 | 
			
		||||
  if(hoststatus($node)) { $statimg = "<img align=absmiddle src=images/16/lightbulb.png alt='Host Up'>"; } 
 | 
			
		||||
                   else { $statimg = "<img align=absmiddle src=images/16/lightbulb_off.png alt='Host Down'>";}
 | 
			
		||||
  if(hoststatus($node)) { $statimg = "<img align=absmiddle src=images/16/lightbulb.png alt='Host Up'>"; $box_bg = "#ffffaa"; } 
 | 
			
		||||
                   else { $statimg = "<img align=absmiddle src=images/16/lightbulb_off.png alt='Host Down'>"; $box_bg = "#ffaaaa"; }
 | 
			
		||||
 | 
			
		||||
  if($rebooted) { $statimg = "<img align=absmiddle src=images/16/lightning.png alt='Host Rebooted'>"; }
 | 
			
		||||
 | 
			
		||||
  if($bg == "#ffffff") { $bg = "#e5e5e5"; } else { $bg="#ffffff"; }
 | 
			
		||||
 | 
			
		||||
  if(devicepermitted($node)) {
 | 
			
		||||
 | 
			
		||||
  echo("<tr bgcolor=$bg>
 | 
			
		||||
          <td><a href='?page=device&id=$node' $mouseover>$host</a></td>
 | 
			
		||||
          <td align=center>$statimg</td>
 | 
			
		||||
          <td align=center><a $intpop>$ints</a></td>
 | 
			
		||||
          <td align=center><a $srvpop>$services</a></td></tr>");
 | 
			
		||||
  list ($first, $second, $third) = explode(".", $host);
 | 
			
		||||
 | 
			
		||||
  $shorthost = $first;
 | 
			
		||||
  if(strlen($first.".".$second) < 16) { $shorthost = $first.".".$second; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  $errorboxes .= "<div style='float: left; padding: 5px; width: 124px; height: 100px; background: $box_bg; margin: 4px;'>
 | 
			
		||||
                   <center><strong>".$shorthost."</strong><br />";
 | 
			
		||||
 | 
			
		||||
  if(hoststatus($node)) {$errorboxes .= "  <span class=body-date-1>".formatuptime($uptime, short)."</span> <br />";
 | 
			
		||||
  } else { $errorboxes .= "  <span class=body-date-1>Unreachable</span> <br />"; }
 | 
			
		||||
 | 
			
		||||
  $errorboxes .= " <img src='images/16/disconnect.png' align=absmiddle> <a $intpop><b>$ints</b></a>
 | 
			
		||||
		   <img src='images/16/cog_error.png' align=absmiddle> <a $srvpop><b>$services</b></a>
 | 
			
		||||
                  </center></div>";
 | 
			
		||||
   
 | 
			
		||||
 | 
			
		||||
#  echo("<tr bgcolor=$bg>
 | 
			
		||||
#          <td><a href='?page=device&id=$node' $mouseover>$host</a></td>
 | 
			
		||||
#          <td align=center>$statimg</td>
 | 
			
		||||
#          <td align=center><a $intpop>$ints</a></td>
 | 
			
		||||
#          <td align=center><a $srvpop>$services</a></td></tr>");
 | 
			
		||||
#
 | 
			
		||||
  }
 | 
			
		||||
  unset($int, $ints, $intlist, $intpop, $srv, $srvlist, $srvname, $srvpop);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#echo("</table>");
 | 
			
		||||
 | 
			
		||||
#echo("
 | 
			
		||||
#    </td>
 | 
			
		||||
#    <td bgcolor=#e5e5e5 width=400 valign=top>
 | 
			
		||||
 
 | 
			
		||||
echo("
 | 
			
		||||
 | 
			
		||||
	<div style='clear: both;'>$errorboxes</div> <div style='margin: 4px; clear: both;'>  ");
 | 
			
		||||
 | 
			
		||||
$sql = "SELECT *, DATE_FORMAT(datetime, '%D %b %T') AS date from syslog ORDER BY datetime DESC LIMIT 20";
 | 
			
		||||
$query = mysql_query($sql);
 | 
			
		||||
echo("<table cellspacing=0 cellpadding=2 width=100%>");
 | 
			
		||||
while($entry = mysql_fetch_array($query)) { include("includes/print-syslog.inc"); }
 | 
			
		||||
echo("</table>");
 | 
			
		||||
 | 
			
		||||
echo("    </td>
 | 
			
		||||
    <td bgcolor=#e5e5e5 width=400 valign=top>
 | 
			
		||||
 | 
			
		||||
echo("</div>
 | 
			
		||||
 | 
			
		||||
   </td>
 | 
			
		||||
   <td bgcolor=#e5e5e5 width=275 valign=top>");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/// VOSTRON
 | 
			
		||||
/// this stuff can be customised to show whatever you want....
 | 
			
		||||
 | 
			
		||||
if($_SESSION['userlevel'] >= '5') {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ echo("<table cellpadding=0 cellspacing=0><tr><td>
 | 
			
		||||
  <table width='200' border='0'>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td width='300'><div align='right'>Description</div></td>
 | 
			
		||||
      <td colspan='3'><input name='descr' width='50'>$descr</input></td>
 | 
			
		||||
      <td colspan='3'><input name='descr' size='32' value='$descr'></input></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
   <tr>
 | 
			
		||||
      <td>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,16 +2,9 @@
 | 
			
		||||
<?
 | 
			
		||||
 | 
			
		||||
$sql = "SELECT *, DATE_FORMAT(datetime, '%D %b %T') AS date from syslog ORDER BY datetime DESC LIMIT 1000";
 | 
			
		||||
 | 
			
		||||
$query = mysql_query($sql);
 | 
			
		||||
 | 
			
		||||
echo("<table cellspacing=0 cellpadding=2 width=100%>");
 | 
			
		||||
 | 
			
		||||
while($entry = mysql_fetch_array($query)) 
 | 
			
		||||
{
 | 
			
		||||
  include("includes/print-syslog.inc");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
while($entry = mysql_fetch_array($query)) { include("includes/print-syslog.inc"); }
 | 
			
		||||
echo("</table>");
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,31 @@ include("print-functions.php");
 | 
			
		||||
include("billing-functions.php");
 | 
			
		||||
include("cisco-entities.php");
 | 
			
		||||
 | 
			
		||||
include("syslog.php");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function shorthost($hostname, $len=16) {
 | 
			
		||||
 | 
			
		||||
  list ($first, $second, $third, $fourth, $fifth) = explode(".", $hostname);
 | 
			
		||||
 | 
			
		||||
  $shorthost = $first;
 | 
			
		||||
  if(strlen($first.".".$second) < $len && $second) { 
 | 
			
		||||
    $shorthost = $first.".".$second; 
 | 
			
		||||
    if(strlen($shorthost.".".$third) < $len && $third) {
 | 
			
		||||
      $shorthost = $shorthost.".".$third;
 | 
			
		||||
      if(strlen($shorthost.".".$fourth) < $len && $fourth) {
 | 
			
		||||
        $shorthost = $shorthost.".".$fourth;
 | 
			
		||||
        if(strlen($shorthost.".".$fifth) < $len && $fifth) {
 | 
			
		||||
          $shorthost = $shorthost.".".$fifth;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  return ($shorthost);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function rrdtool_update($rrdfile, $rrdupdate) {
 | 
			
		||||
  global $rrdtool;
 | 
			
		||||
  return `$rrdtool update $rrdfile $rrdupdate`;
 | 
			
		||||
@@ -373,7 +398,9 @@ function cidr2netmask() {
 | 
			
		||||
           << (32-$netmask)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function formatUptime($diff) {
 | 
			
		||||
function formatUptime($diff, $format="long") {
 | 
			
		||||
  $yearsDiff = floor($diff/31536000);
 | 
			
		||||
  $diff -= $yearsDiff*31536000;
 | 
			
		||||
  $daysDiff = floor($diff/86400);
 | 
			
		||||
  $diff -= $daysDiff*86400;
 | 
			
		||||
  $hrsDiff = floor($diff/60/60);
 | 
			
		||||
@@ -381,10 +408,19 @@ function formatUptime($diff) {
 | 
			
		||||
  $minsDiff = floor($diff/60);
 | 
			
		||||
  $diff -= $minsDiff*60;
 | 
			
		||||
  $secsDiff = $diff;
 | 
			
		||||
  if($daysDiff > '0'){ $uptime .= "$daysDiff days, "; }
 | 
			
		||||
  if($hrsDiff > '0'){ $uptime .= $hrsDiff . "h "; }
 | 
			
		||||
  if($minsDiff > '0'){ $uptime .= $minsDiff . "m "; }
 | 
			
		||||
  if($secsDiff > '0'){ $uptime .= $secsDiff . "s "; }
 | 
			
		||||
  if($format == "short") {
 | 
			
		||||
    if($yearsDiff > '0'){ $uptime .= $yearsDiff . "y "; }
 | 
			
		||||
    if($daysDiff > '0'){ $uptime .= $daysDiff . "d "; }
 | 
			
		||||
    if($hrsDiff > '0'){ $uptime .= $hrsDiff . "h "; }
 | 
			
		||||
    if($minsDiff > '0'){ $uptime .= $minsDiff . "m "; }
 | 
			
		||||
    if($secsDiff > '0'){ $uptime .= $secsDiff . "s "; }
 | 
			
		||||
  } else {
 | 
			
		||||
    if($yearsDiff > '0'){ $uptime .= $yearsDiff . " years, "; }
 | 
			
		||||
    if($daysDiff > '0'){ $uptime .= $daysDiff   . " days, "; }
 | 
			
		||||
    if($hrsDiff > '0'){ $uptime .= $hrsDiff     . "h "; }
 | 
			
		||||
    if($minsDiff > '0'){ $uptime .= $minsDiff   . "m "; }
 | 
			
		||||
    if($secsDiff > '0'){ $uptime .= $secsDiff   . "s "; }
 | 
			
		||||
  }
 | 
			
		||||
  return "$uptime";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,67 +4,21 @@
 | 
			
		||||
include("config.php");
 | 
			
		||||
include("includes/functions.php");
 | 
			
		||||
 | 
			
		||||
if(!$config['enable_syslog']) { echo("Syslog support disabled.\n"); exit(); }
 | 
			
		||||
 | 
			
		||||
$add = 0;
 | 
			
		||||
$discard = 0;
 | 
			
		||||
$total = 0;
 | 
			
		||||
 | 
			
		||||
mysql_query("DELETE FROM `syslog` WHERE `msg` LIKE '%last message repeated%'");
 | 
			
		||||
mysql_query("DELETE FROM `syslog` WHERE `msg` LIKE '%Connection from UDP: [89.21.224.44]:%'");
 | 
			
		||||
mysql_query("DELETE FROM `syslog` WHERE `msg` LIKE '%Connection from UDP: [89.21.224.35]:%'");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if(!$config['enable_syslog']) { 
 | 
			
		||||
  echo("Syslog support disabled.\n"); 
 | 
			
		||||
  exit(); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$q = mysql_query("SELECT * FROM `syslog` where `processed` = '0'");
 | 
			
		||||
while($entry = mysql_fetch_array($q)){
 | 
			
		||||
 | 
			
		||||
  unset($device_id);
 | 
			
		||||
  unset($maybehost);
 | 
			
		||||
  unset($perhapshost);
 | 
			
		||||
 | 
			
		||||
  $device_id_host = @mysql_result(mysql_query("SELECT device_id FROM devices WHERE `hostname` = '".$entry['host']."'"),0);
 | 
			
		||||
 | 
			
		||||
  if($device_id_host) { 
 | 
			
		||||
    $device_id = $device_id_host;
 | 
			
		||||
  } else {
 | 
			
		||||
    $device_id_ip = @mysql_result(mysql_query("SELECT D.device_id as device_id FROM ipaddr AS A, interfaces AS I, devices AS D WHERE A.addr = '" . $entry['host']."' AND I.interface_id = A.interface_id AND D.device_id = I.device_id"),0);
 | 
			
		||||
    if($device_id_ip) { 
 | 
			
		||||
      $device_id = $device_id_ip;
 | 
			
		||||
    }
 | 
			
		||||
  } 
 | 
			
		||||
 | 
			
		||||
  if($device_id) {
 | 
			
		||||
 | 
			
		||||
    if(mysql_result(mysql_query("SELECT `os` FROM `devices` WHERE `device_id` = '$device_id'"),0) == "IOS") {
 | 
			
		||||
      list(,$entry[msg]) = split(": %", $entry['msg']);
 | 
			
		||||
      $entry['msg'] = "%" . $entry['msg'];
 | 
			
		||||
      $entry['msg'] = preg_replace("/^%(.+?):\ /", "\\1||", $entry['msg']);
 | 
			
		||||
      list($entry['program'], $entry['msg']) = explode("||", $entry['msg']);
 | 
			
		||||
    } else {
 | 
			
		||||
      $program = preg_quote($entry['program'],'/');
 | 
			
		||||
      $entry['msg'] = preg_replace("/^$program:\ /", "", $entry['msg']);
 | 
			
		||||
      if(preg_match("/^[a-zA-Z\/]+\[[0-9]+\]:/", $entry['msg'])) {
 | 
			
		||||
        $entry['msg'] = preg_replace("/^(.+?)\[[0-9]+\]:\ /", "\\1||", $entry['msg']);
 | 
			
		||||
        list($entry['program'], $entry['msg']) = explode("||", $entry['msg']);
 | 
			
		||||
	echo("fix! -> " . $entry['program'] . " -> " . $entry['msg'] . "\n");
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $x  = "UPDATE `syslog` set `device_id` = '$device_id', `program` = '".$entry['program']."', `msg` = '" . mysql_real_escape_string($entry['msg']) . "', processed = '1' WHERE `seq` = '" . $entry['seq'] . "'";
 | 
			
		||||
#    echo("$x \n");
 | 
			
		||||
    mysql_query($x);
 | 
			
		||||
    unset ($fix);
 | 
			
		||||
    $add++;
 | 
			
		||||
  } else {
 | 
			
		||||
     echo("Failed entry from '" . $entry['host'] . "'");
 | 
			
		||||
     $x = "DELETE FROM `syslog` where `seq` = '" . $entry['seq'] . "'"; 
 | 
			
		||||
     mysql_query($x);
 | 
			
		||||
     $discard++; 
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  $total++;
 | 
			
		||||
   process_syslog($entry, 1);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#echo("$total records processed: $add added to database, $discard discarded");
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user