mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-12 16:06:25 +02:00
New syslog and other shiny things
git-svn-id: http://www.observium.org/svn/observer/trunk@171 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
@@ -30,7 +30,7 @@
|
||||
<ul>
|
||||
<li><a href="overview/"><img src='images/16/zoom.png' border=0 align=absmiddle> Overview</a></li>
|
||||
<li><a href="eventlog/"><img src='images/16/report.png' border=0 align=absmiddle> Eventlog</a></li>
|
||||
<?php if($enable_syslog) {
|
||||
<?php if($config['enable_syslog']) {
|
||||
echo("<li><a href='syslog/'><img src='images/16/page.png' border=0 align=absmiddle> Syslog</a></li>");
|
||||
} ?>
|
||||
<li><a href="alerts/"><img src='images/16/exclamation.png' border=0 align=absmiddle> Alerts</a></li>
|
||||
|
||||
@@ -7,36 +7,28 @@ if($bg == $list_colour_a) { $bg = $list_colour_b; } else { $bg=$list_colour_a; }
|
||||
# $interface = fixifname(getifbyid($entry['interface']));
|
||||
# }
|
||||
|
||||
$entry['device_id'] = $entry['host'];
|
||||
$entry['hostname'] = gethostbyid($entry['host']);
|
||||
$entry['hostname'] = gethostbyid($entry['device_id']);
|
||||
|
||||
unset($icon);
|
||||
|
||||
$icon = geteventicon($entry['message']);
|
||||
if($icon) {$icon = "<img src='images/16/$icon'>"; }
|
||||
|
||||
|
||||
# $icon = geteventicon($entry['message']);
|
||||
# if($icon) {$icon = "<img src='images/16/$icon'>"; }
|
||||
|
||||
echo("<tr style=\"background-color: $bg\">
|
||||
<td width=0></td>
|
||||
<td class=syslog width=175>");
|
||||
<td width=0></td>");
|
||||
|
||||
if($page == "syslog") {
|
||||
echo("" . generatedevicelink($entry) . "<br />");
|
||||
echo("<td class=syslog width=150>" . $entry['date'] . "</td>");
|
||||
|
||||
if($_GET['page'] == "syslog") {
|
||||
echo("<td><strong>".generatedevicelink($entry['device_id'], $entry['hostname'])."</strong></td>");
|
||||
}
|
||||
|
||||
echo($entry['datetime'] . "
|
||||
</td>
|
||||
<td class=syslog width=200>
|
||||
" . $entry['program'] . "
|
||||
</td>
|
||||
<td class=syslog>
|
||||
|
||||
echo(" <td class=syslog>
|
||||
<strong>" . $entry['program'] . " : </strong>
|
||||
" . htmlspecialchars($entry['msg']) . "
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>");
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -116,13 +116,13 @@ echo("
|
||||
</a>
|
||||
</li>");
|
||||
|
||||
echo("
|
||||
if($config['enable_syslog']) { echo("
|
||||
<li class=" . $select['dev-syslog'] . ">
|
||||
<a href='?page=device&id=" . $device['device_id'] . "§ion=dev-syslog'>
|
||||
<img src='images/16/printer.png' align=absmiddle border=0> Syslog
|
||||
</a>
|
||||
</li>
|
||||
");
|
||||
"); }
|
||||
|
||||
if($_SESSION[userlevel] >= "5") {
|
||||
echo("
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?
|
||||
|
||||
$query = "SELECT *, DATE(datetime) AS date, TIME(datetime) AS time ";
|
||||
$query .= "FROM `syslog` WHERE `host` = '" . $_GET['id'] . "'";
|
||||
$query = "SELECT *, DATE_FORMAT(datetime, '%D %b %T') AS date ";
|
||||
$query .= "FROM `syslog` WHERE `device_id` = '" . $_GET['id'] . "'";
|
||||
if($search) { $query .= " AND `msg` LIKE '%" . $_POST['search'] . "%'"; }
|
||||
$query .= " ORDER BY `datetime` desc LIMIT 0,500";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<meta http-equiv="refresh" content="60">
|
||||
<?
|
||||
|
||||
$sql = "select * from syslog ORDER BY datetime DESC LIMIT 1000";
|
||||
$sql = "SELECT *, DATE_FORMAT(datetime, '%D %b %T') AS date from syslog ORDER BY datetime DESC LIMIT 1000";
|
||||
|
||||
$query = mysql_query($sql);
|
||||
|
||||
|
||||
+39
-30
@@ -4,58 +4,67 @@
|
||||
include("config.php");
|
||||
include("includes/functions.php");
|
||||
|
||||
if(!$enable_syslog) { exit(); }
|
||||
if(!$config['enable_syslog']) { echo("Syslog support disabled.\n"); exit(); }
|
||||
|
||||
$add = 0;
|
||||
$discard = 0;
|
||||
$total = 0;
|
||||
|
||||
mysql_query("DELETE FROM `logs` WHERE `msg` LIKE '%Connection from UDP: [89.21.224.44]:%'");
|
||||
mysql_query("DELETE FROM `logs` WHERE `msg` LIKE '%Connection from UDP: [89.21.224.35]:%'");
|
||||
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]:%'");
|
||||
|
||||
$q = mysql_query("SELECT * FROM `logs`");
|
||||
while($l = mysql_fetch_array($q)){
|
||||
$q = mysql_query("SELECT * FROM `syslog` where `processed` = '0'");
|
||||
while($entry = mysql_fetch_array($q)){
|
||||
|
||||
unset($host);
|
||||
unset($device_id);
|
||||
unset($maybehost);
|
||||
unset($perhapshost);
|
||||
|
||||
$maybehost = @mysql_result(mysql_query("SELECT D.device_id as device_id FROM ipaddr AS A, interfaces AS I, devices AS D WHERE A.addr = '" . $l['host'] . "' AND I.interface_id = A.interface_id AND D.device_id = I.device_id"),0);
|
||||
$perhapshost = @mysql_result(mysql_query("SELECT device_id FROM devices WHERE `hostname` = '$l[host]'"),0);
|
||||
$device_id_host = @mysql_result(mysql_query("SELECT device_id FROM devices WHERE `hostname` = '".$entry['host']."'"),0);
|
||||
|
||||
if($maybehost) {
|
||||
$host = $maybehost;
|
||||
} elseif($perhapshost) {
|
||||
$host = $perhapshost;
|
||||
} else { `echo Failed log entry from $l[host] >> /var/log/observer.log`; }
|
||||
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($host) {
|
||||
if($device_id) {
|
||||
|
||||
if(mysql_result(mysql_query("SELECT os FROM `devices` WHERE `device_id` = '$host'"),0) == "IOS") {
|
||||
list(,$l[msg]) = split(": %", $l[msg]);
|
||||
$l[msg] = "%" . $l[msg];
|
||||
$l[msg] = preg_replace("/^%(.+?):\ /", "\\1||", $l[msg]);
|
||||
list($l[program], $l[msg]) = explode("||", $l[msg]);
|
||||
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 = addslashes($l['program']);
|
||||
$l['msg'] = preg_replace("/^$program:\ /", "", $l['msg']);
|
||||
$program = addslashes($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 = "INSERT INTO syslog (`host` , `facility` , `priority` , `level` , `tag` , `datetime` , `program` , `msg` )";
|
||||
$x .= " VALUES ( '$host', '$l[facility]', '$l[priority]', '$l[level]', '$l[tag]', '$l[datetime]', '$l[program]', '$l[msg]' );";
|
||||
|
||||
$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 { $discard++; }
|
||||
|
||||
mysql_query("DELETE FROM logs WHERE seq = '$l[seq]'");
|
||||
} else {
|
||||
echo("Failed entry from '" . $entry['host'] . "'");
|
||||
$x = "DELETE FROM `syslog` where `seq` = '" . $entry['seq'] . "'";
|
||||
mysql_query($x);
|
||||
$discard++;
|
||||
}
|
||||
|
||||
$total++;
|
||||
|
||||
}
|
||||
|
||||
#echo("$total records processed: $add added to database, $discard discarded");
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user