From b7e4f1bb345f865b647d851cd7c18a11c6f1a92d Mon Sep 17 00:00:00 2001 From: laf Date: Sat, 11 Apr 2015 18:11:26 +0100 Subject: [PATCH 1/6] Trying new way to show alerts --- html/includes/table/alerts.inc.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index 406563b9b2..82bce89ee3 100644 --- a/html/includes/table/alerts.inc.php +++ b/html/includes/table/alerts.inc.php @@ -44,9 +44,10 @@ foreach (dbFetchRows($sql,$param) as $alert) { $fault_detail = ''; foreach ($tmp_alerts as $k=>$v) { if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) { - $fault_detail .= $k.' => '.$v."\n "; + $fault_detail .= $k.' => '.$v.", "; } } + $fault_detail = rtrim($fault_detail,", "); $fault_detail .= "\n"; } @@ -98,7 +99,7 @@ foreach (dbFetchRows($sql,$param) as $alert) { $response[] = array('id'=>"#".$rulei++."", 'rule'=>"".htmlentities($alert['name'])."", - 'hostname'=>"".$alert['hostname']."", + 'hostname'=>"".$alert['hostname']."
$fault_detail
", 'timestamp'=>($alert['timestamp'] ? $alert['timestamp'] : "N/A"), 'severity'=>$severity, 'ack_col'=>$ack_col, From 8ebec5c95582c0750a371707a46613be3d4c6b0d Mon Sep 17 00:00:00 2001 From: laf Date: Sun, 19 Apr 2015 23:19:13 +0100 Subject: [PATCH 2/6] Added ability to expand alerts to see triggers --- html/includes/print-alerts.php | 35 +++++++++++++++++++++++++++++- html/includes/table/alerts.inc.php | 22 ++++++++++++++----- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/html/includes/print-alerts.php b/html/includes/print-alerts.php index 944fdec197..dcef2447e5 100644 --- a/html/includes/print-alerts.php +++ b/html/includes/print-alerts.php @@ -1,3 +1,6 @@ +
@@ -31,7 +34,8 @@ var grid = $("#alerts").bootgrid({ { return { id: "alerts", - device_id: '' + device_id: '', + format: '' }; }, url: "/ajax_table.php", @@ -42,6 +46,35 @@ var grid = $("#alerts").bootgrid({ "ack": function(column,row) { return ""; } + }, + templates: { + header: "
"+ + "
"+ +Alerts » "+'); + +$menu_options = array('basic' => 'Basic', + 'detail' => 'Detail'); + +$sep = ""; +foreach ($menu_options as $option => $text) +{ + echo("\"$sep\"+"); + if ($vars['format'] == $option) + { + echo("\"\"+"); + } + echo('" $option)) . '\">' . $text . '"+'); + if ($vars['format'] == $option) + { + echo("\"\"+"); + } + $sep = " | "; +} +?> + "
"+ + "

" } }).on("loaded.rs.jquery.bootgrid", function() { grid.find(".command-ack-alert").on("click", function(e) { diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index 82bce89ee3..b230cf5394 100644 --- a/html/includes/table/alerts.inc.php +++ b/html/includes/table/alerts.inc.php @@ -7,8 +7,7 @@ if (is_numeric($_POST['device_id']) && $_POST['device_id'] > 0) { } if (isset($searchPhrase) && !empty($searchPhrase)) { - $sql .= " AND (`timestamp` LIKE '%?%' OR `rule` LIKE '%?%' OR `name` LIKE '%?%' OR `hostname` LIKE '%?%')"; - $param[] = array($searchPhrase,$searchPhrase,$searchPhrase,$serchPhrase); + $sql .= " AND (`timestamp` LIKE '%$searchPhrase%' OR `rule` LIKE '%$searchPhrase%' OR `name` LIKE '%$searchPhrase%' OR `hostname` LIKE '%$searchPhrase%')"; } $sql = " FROM `alerts` LEFT JOIN `devices` ON `alerts`.`device_id`=`devices`.`device_id` RIGHT JOIN alert_rules ON alerts.rule_id=alert_rules.id WHERE $where AND `state` IN (1,2,3,4) $sql"; @@ -36,7 +35,9 @@ if ($rowCount != -1) { $sql = "SELECT `alerts`.*, `devices`.`hostname` AS `hostname`,`alert_rules`.`rule` AS `rule`, `alert_rules`.`name` AS `name`, `alert_rules`.`severity` AS `severity` $sql"; +system("echo '$sql' >> /tmp/testing"); $rulei = 0; +$format = $_POST['format']; foreach (dbFetchRows($sql,$param) as $alert) { $log = dbFetchCell("SELECT details FROM alert_log WHERE rule_id = ? AND device_id = ? ORDER BY id DESC LIMIT 1", array($alert['rule_id'],$alert['device_id'])); $log_detail = json_decode(gzuncompress($log),true); @@ -44,10 +45,16 @@ foreach (dbFetchRows($sql,$param) as $alert) { $fault_detail = ''; foreach ($tmp_alerts as $k=>$v) { if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) { - $fault_detail .= $k.' => '.$v.", "; + if ($format == 'basic') { + $fault_detail .= $k.' => '.$v."\n "; + } else { + $fault_detail .= $k.' => '.$v.", "; + } } } - $fault_detail = rtrim($fault_detail,", "); + if ($format == 'detail') { + $fault_detail = rtrim($fault_detail,", "); + } $fault_detail .= "\n"; } @@ -96,10 +103,15 @@ foreach (dbFetchRows($sql,$param) as $alert) { $ack_col = 'danger'; } } + if ($format == 'basic') { + $hostname = "".$alert['hostname'].""; + } else { + $hostname = "".$alert['hostname']."
$fault_detail
"; + } $response[] = array('id'=>"#".$rulei++."", 'rule'=>"".htmlentities($alert['name'])."", - 'hostname'=>"".$alert['hostname']."
$fault_detail
", + 'hostname'=>$hostname, 'timestamp'=>($alert['timestamp'] ? $alert['timestamp'] : "N/A"), 'severity'=>$severity, 'ack_col'=>$ack_col, From 096fe204fbe96102399ed7877fb325781fd4af88 Mon Sep 17 00:00:00 2001 From: laf Date: Sun, 19 Apr 2015 23:27:12 +0100 Subject: [PATCH 3/6] Removed debug statement --- html/includes/table/alerts.inc.php | 1 - 1 file changed, 1 deletion(-) diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index b230cf5394..c9131cba4b 100644 --- a/html/includes/table/alerts.inc.php +++ b/html/includes/table/alerts.inc.php @@ -35,7 +35,6 @@ if ($rowCount != -1) { $sql = "SELECT `alerts`.*, `devices`.`hostname` AS `hostname`,`alert_rules`.`rule` AS `rule`, `alert_rules`.`name` AS `name`, `alert_rules`.`severity` AS `severity` $sql"; -system("echo '$sql' >> /tmp/testing"); $rulei = 0; $format = $_POST['format']; foreach (dbFetchRows($sql,$param) as $alert) { From 0fcf3b07a990e0c3c87c7efaf74c3eb77bc74bf1 Mon Sep 17 00:00:00 2001 From: laf Date: Tue, 21 Apr 2015 09:43:34 +0100 Subject: [PATCH 4/6] Updated variable setting + truncated additional text --- html/includes/table/alerts.inc.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index c9131cba4b..79cec4244d 100644 --- a/html/includes/table/alerts.inc.php +++ b/html/includes/table/alerts.inc.php @@ -40,13 +40,14 @@ $format = $_POST['format']; foreach (dbFetchRows($sql,$param) as $alert) { $log = dbFetchCell("SELECT details FROM alert_log WHERE rule_id = ? AND device_id = ? ORDER BY id DESC LIMIT 1", array($alert['rule_id'],$alert['device_id'])); $log_detail = json_decode(gzuncompress($log),true); + $fault_detail = ''; foreach ( $log_detail['rule'] as $tmp_alerts ) { - $fault_detail = ''; foreach ($tmp_alerts as $k=>$v) { if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) { if ($format == 'basic') { $fault_detail .= $k.' => '.$v."\n "; } else { + $v = truncate($v,30); $fault_detail .= $k.' => '.$v.", "; } } From 4c77c76dfac4d412a6497a8db0442a1d5ad4ba1e Mon Sep 17 00:00:00 2001 From: f0o Date: Thu, 23 Apr 2015 15:07:55 +0000 Subject: [PATCH 5/6] Added more eye-candy --- html/includes/print-alerts.php | 59 ++++++++++-------------------- html/includes/table/alerts.inc.php | 42 ++++++++++++--------- 2 files changed, 43 insertions(+), 58 deletions(-) diff --git a/html/includes/print-alerts.php b/html/includes/print-alerts.php index dcef2447e5..778a87b719 100644 --- a/html/includes/print-alerts.php +++ b/html/includes/print-alerts.php @@ -1,22 +1,15 @@ -
- -
- + @@ -25,17 +18,14 @@ require_once('includes/modal/new_alert_rule.inc.php');
Status# Rule  Hostname Timestamp Severity
- diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index 79cec4244d..19ec6ccbcc 100644 --- a/html/includes/table/alerts.inc.php +++ b/html/includes/table/alerts.inc.php @@ -41,21 +41,25 @@ foreach (dbFetchRows($sql,$param) as $alert) { $log = dbFetchCell("SELECT details FROM alert_log WHERE rule_id = ? AND device_id = ? ORDER BY id DESC LIMIT 1", array($alert['rule_id'],$alert['device_id'])); $log_detail = json_decode(gzuncompress($log),true); $fault_detail = ''; - foreach ( $log_detail['rule'] as $tmp_alerts ) { - foreach ($tmp_alerts as $k=>$v) { + foreach ( $log_detail['rule'] as $o=>$tmp_alerts ) { + $fault_detail .= "#".($o+1).": "; + $tmp = generate_port_link($tmp_alerts); + if( substr($tmp,-5,1) != ">" ) { + $fault_detail .= $tmp; + } else { + $tmp = generate_entity_link($tmp_alerts); + if( !empty($tmp) ) { + $fault_detail .= $tmp; + } else { + foreach ($tmp_alerts as $k=>$v) { if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) { - if ($format == 'basic') { - $fault_detail .= $k.' => '.$v."\n "; - } else { - $v = truncate($v,30); - $fault_detail .= $k.' => '.$v.", "; - } + $fault_detail .= "$k => '$v', "; } + } + $fault_detail = rtrim($fault_detail,", "); } - if ($format == 'detail') { - $fault_detail = rtrim($fault_detail,", "); - } - $fault_detail .= "\n"; + } + $fault_detail .= "
"; } $ico = "ok"; @@ -103,14 +107,16 @@ foreach (dbFetchRows($sql,$param) as $alert) { $ack_col = 'danger'; } } - if ($format == 'basic') { - $hostname = "".$alert['hostname'].""; - } else { - $hostname = "".$alert['hostname']."
$fault_detail
"; - } - $response[] = array('id'=>"#".$rulei++."", + $hostname = ' +
+ '.generate_device_link($alert).' +
'.$fault_detail.'
+
'; + + $response[] = array('id'=>$rulei++, 'rule'=>"".htmlentities($alert['name'])."", + 'details'=>'', 'hostname'=>$hostname, 'timestamp'=>($alert['timestamp'] ? $alert['timestamp'] : "N/A"), 'severity'=>$severity, From ab6de0180bbd4fb2dc0e47670cc8d2d1bf9c565a Mon Sep 17 00:00:00 2001 From: f0o Date: Thu, 23 Apr 2015 15:29:34 +0000 Subject: [PATCH 6/6] Removed generate_entity_link --- html/includes/table/alerts.inc.php | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index 19ec6ccbcc..46e5ddb0cc 100644 --- a/html/includes/table/alerts.inc.php +++ b/html/includes/table/alerts.inc.php @@ -47,14 +47,9 @@ foreach (dbFetchRows($sql,$param) as $alert) { if( substr($tmp,-5,1) != ">" ) { $fault_detail .= $tmp; } else { - $tmp = generate_entity_link($tmp_alerts); - if( !empty($tmp) ) { - $fault_detail .= $tmp; - } else { - foreach ($tmp_alerts as $k=>$v) { - if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) { - $fault_detail .= "$k => '$v', "; - } + foreach ($tmp_alerts as $k=>$v) { + if (!empty($v) && $k != 'device_id' && (stristr($k,'id') || stristr($k,'desc')) && substr_count($k,'_') <= 1) { + $fault_detail .= "$k => '$v', "; } $fault_detail = rtrim($fault_detail,", "); }