#10347 refactoring and add link to events in graph
This commit is contained in:
parent
cdf359481a
commit
7562a9253a
|
@ -30,12 +30,32 @@ global $config;
|
|||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'AR')) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Tactical View Group'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$id_group = get_parameter('id_group', '');
|
||||
if (empty($id_group) === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
$user_groups_acl = users_get_groups(false, 'AR');
|
||||
if (in_array(groups_get_name($id_group), $user_groups_acl) === false) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Tactical View Group'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
|
@ -84,9 +104,9 @@ $table_col1->width = '100%';
|
|||
$table_col1->data[0][0] = groups_get_heat_map_agents($id_groups, 450, 100);
|
||||
$table_col1->data[1][0] = tactical_groups_get_agents_and_monitoring($id_groups);
|
||||
|
||||
$distribution_by_so = '<table cellpadding=0 cellspacing=0 class="databox pies mrgn_top_15px" width=100%><tr><td style="width:50%;">';
|
||||
$distribution_by_so = '<table cellpadding=0 cellspacing=0 class="databox pies graph-distribution-so" width=100%><tr><td style="width:50%;">';
|
||||
$distribution_by_so .= '<fieldset class="padding-0 databox tactical_set" id="distribution_by_so_graph">';
|
||||
$distribution_by_so .= '<legend>'.__('Distribution by so').'</legend>';
|
||||
$distribution_by_so .= '<legend>'.__('Distribution by os').'</legend>';
|
||||
$distribution_by_so .= html_print_image('images/spinner.gif', true, ['id' => 'spinner_distribution_by_so_graph']);
|
||||
$distribution_by_so .= '</fieldset>';
|
||||
$distribution_by_so .= '</td></tr></table>';
|
||||
|
@ -214,6 +234,13 @@ echo '<div id="modal-info-agent"></div>'
|
|||
success: function(data) {
|
||||
$("#spinner_events_by_agents_group_graph").hide();
|
||||
$("#events_by_agents_group_graph").append(data);
|
||||
const canvas = $('#events_by_agents_group_graph canvas')[0];
|
||||
canvas.addEventListener('click', function(event) {
|
||||
var middle_canvas = $('#events_by_agents_group_graph canvas').width() / 2;
|
||||
if(event.layerX < middle_canvas){
|
||||
window.location.replace("index.php?sec=eventos&sec2=operation/events/events&filter[id_group_filter]=<?php echo $id_group; ?>")
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -5341,6 +5341,16 @@ function get_baseline_data(
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw graph SO agents by group.
|
||||
*
|
||||
* @param [type] $id_group
|
||||
* @param integer $width
|
||||
* @param integer $height
|
||||
* @param boolean $recursive
|
||||
* @param boolean $noWaterMark
|
||||
* @return string Graph
|
||||
*/
|
||||
function graph_so_by_group($id_group, $width=300, $height=200, $recursive=true, $noWaterMark=true)
|
||||
{
|
||||
global $config;
|
||||
|
@ -5408,6 +5418,17 @@ function graph_so_by_group($id_group, $width=300, $height=200, $recursive=true,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw graph events by group
|
||||
*
|
||||
* @param [type] $id_group
|
||||
* @param integer $width
|
||||
* @param integer $height
|
||||
* @param boolean $noWaterMark
|
||||
* @param boolean $time_limit
|
||||
* @param boolean $recursive
|
||||
* @return string Graph
|
||||
*/
|
||||
function graph_events_agent_by_group($id_group, $width=300, $height=200, $noWaterMark=true, $time_limit=false, $recursive=true)
|
||||
{
|
||||
global $config;
|
||||
|
@ -5443,7 +5464,8 @@ function graph_events_agent_by_group($id_group, $width=300, $height=200, $noWate
|
|||
'SELECT DISTINCT(id_agente) AS id_agente,
|
||||
COUNT(id_agente) AS count
|
||||
FROM tevento te
|
||||
WHERE 1=1 %s %s
|
||||
WHERE 1=1 AND estado = 0
|
||||
%s %s
|
||||
GROUP BY id_agente
|
||||
ORDER BY count DESC LIMIT 8',
|
||||
$tags_condition,
|
||||
|
|
|
@ -1642,7 +1642,7 @@ function groups_monitor_fired_alerts($group_array)
|
|||
}
|
||||
|
||||
|
||||
function groups_monitor_alerts_total_counters($group_array)
|
||||
function groups_monitor_alerts_total_counters($group_array, $secondary_group=true)
|
||||
{
|
||||
// If there are not groups to query, we jump to nextone
|
||||
$default_total = [
|
||||
|
@ -1656,26 +1656,32 @@ function groups_monitor_alerts_total_counters($group_array)
|
|||
}
|
||||
|
||||
$group_clause = implode(',', $group_array);
|
||||
$group_clause = "(tasg.id_group IN ($group_clause) OR ta.id_grupo IN ($group_clause))";
|
||||
if ($secondary_group === true) {
|
||||
$group_clause = "(tasg.id_group IN ($group_clause) OR ta.id_grupo IN ($group_clause))";
|
||||
} else {
|
||||
$group_clause = "(ta.id_grupo IN ($group_clause))";
|
||||
}
|
||||
|
||||
$alerts = db_get_row_sql(
|
||||
"SELECT
|
||||
COUNT(tatm.id) AS total,
|
||||
SUM(IF(tatm.times_fired > 0, 1, 0)) AS fired
|
||||
FROM talert_template_modules tatm
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON tatm.id_agent_module = tam.id_agente_modulo
|
||||
INNER JOIN tagente ta
|
||||
ON ta.id_agente = tam.id_agente
|
||||
WHERE ta.id_agente IN (
|
||||
SELECT ta.id_agente
|
||||
FROM tagente ta
|
||||
LEFT JOIN tagent_secondary_group tasg
|
||||
ON ta.id_agente = tasg.id_agent
|
||||
WHERE ta.disabled = 0
|
||||
AND $group_clause
|
||||
) AND tam.disabled = 0"
|
||||
);
|
||||
$sql = 'SELECT
|
||||
COUNT(tatm.id) AS total,
|
||||
SUM(IF(tatm.times_fired > 0, 1, 0)) AS fired
|
||||
FROM talert_template_modules tatm
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON tatm.id_agent_module = tam.id_agente_modulo
|
||||
INNER JOIN tagente ta
|
||||
ON ta.id_agente = tam.id_agente
|
||||
WHERE ta.id_agente IN (
|
||||
SELECT ta.id_agente
|
||||
FROM tagente ta';
|
||||
if ($secondary_group === true) {
|
||||
$sql .= ' LEFT JOIN tagent_secondary_group tasg ON ta.id_agente = tasg.id_agent';
|
||||
}
|
||||
|
||||
$sql .= " WHERE ta.disabled = 0
|
||||
AND $group_clause
|
||||
) AND tam.disabled = 0";
|
||||
|
||||
$alerts = db_get_row_sql($sql);
|
||||
|
||||
return ($alerts === false) ? $default_total : $alerts;
|
||||
}
|
||||
|
@ -2453,6 +2459,15 @@ function groups_get_group_deep($id_group)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Heat map from agents by group
|
||||
*
|
||||
* @param array $id_group
|
||||
* @param integer $width
|
||||
* @param integer $height
|
||||
*
|
||||
* @return string Html Graph.
|
||||
*/
|
||||
function groups_get_heat_map_agents(array $id_group, float $width=0, float $height=0)
|
||||
{
|
||||
ui_require_css_file('heatmap');
|
||||
|
@ -2568,14 +2583,14 @@ function groups_get_heat_map_agents(array $id_group, float $width=0, float $heig
|
|||
?>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
const total_modules = '<?php echo $total_agents; ?>';
|
||||
const total_agents = '<?php echo $total_agents; ?>';
|
||||
|
||||
function getRandomInteger(min, max) {
|
||||
return Math.floor(Math.random() * max) + min;
|
||||
}
|
||||
|
||||
function oneSquare(solid, time) {
|
||||
var randomPoint = getRandomInteger(1, total_modules);
|
||||
var randomPoint = getRandomInteger(1, total_agents);
|
||||
let target = $(`#rect_${randomPoint}`);
|
||||
let class_name = target.attr('class');
|
||||
class_name = class_name.split('_')[0];
|
||||
|
@ -2587,7 +2602,7 @@ function groups_get_heat_map_agents(array $id_group, float $width=0, float $heig
|
|||
}
|
||||
|
||||
let cont = 0;
|
||||
while (cont < Math.ceil(total_modules / 3)) {
|
||||
while (cont < Math.ceil(total_agents / 3)) {
|
||||
oneSquare(getRandomInteger(1, 10), getRandomInteger(100, 900));
|
||||
cont ++;
|
||||
}
|
||||
|
@ -2601,6 +2616,13 @@ function groups_get_heat_map_agents(array $id_group, float $width=0, float $heig
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return html count from agents and monitoring by group.
|
||||
*
|
||||
* @param [type] $id_groups
|
||||
*
|
||||
* @return string Html
|
||||
*/
|
||||
function tactical_groups_get_agents_and_monitoring($id_groups)
|
||||
{
|
||||
global $config;
|
||||
|
@ -2650,11 +2672,17 @@ function tactical_groups_get_agents_and_monitoring($id_groups)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return html count from stats alerts by group.
|
||||
*
|
||||
* @param [type] $id_groups
|
||||
* @return string Html.
|
||||
*/
|
||||
function tactical_groups_get_stats_alerts($id_groups)
|
||||
{
|
||||
global $config;
|
||||
|
||||
$alerts = groups_monitor_alerts_total_counters($id_groups);
|
||||
$alerts = groups_monitor_alerts_total_counters($id_groups, false);
|
||||
$data = [
|
||||
'monitor_alerts' => $alerts['total'],
|
||||
'monitor_alerts_fired' => $alerts['fired'],
|
||||
|
@ -2717,6 +2745,16 @@ function tactical_groups_get_stats_alerts($id_groups)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return html count from stats modules by group.
|
||||
*
|
||||
* @param [type] $id_groups
|
||||
* @param integer $graph_width
|
||||
* @param integer $graph_height
|
||||
* @param boolean $links
|
||||
* @param boolean $data_agents
|
||||
* @return void
|
||||
*/
|
||||
function groups_get_stats_modules_status($id_groups, $graph_width=250, $graph_height=150, $links=false, $data_agents=false)
|
||||
{
|
||||
global $config;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* global $ */
|
||||
/* global $, load_modal */
|
||||
function showInfoAgent(id_agent) {
|
||||
load_modal({
|
||||
target: $("#modal-info-agent"),
|
||||
|
|
|
@ -479,6 +479,11 @@ class Group extends Entity
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw a graph distribution so by group.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function distributionBySoGraph()
|
||||
{
|
||||
global $config;
|
||||
|
@ -493,6 +498,11 @@ class Group extends Entity
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw a graph events agent by group.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function groupEventsByAgent()
|
||||
{
|
||||
global $config;
|
||||
|
@ -507,6 +517,11 @@ class Group extends Entity
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw in modal a agent info
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function loadInfoAgent()
|
||||
{
|
||||
$extradata = get_parameter('extradata', '');
|
||||
|
@ -577,6 +592,11 @@ class Group extends Entity
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get agents by group for datatable.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function getAgentsByGroup()
|
||||
{
|
||||
global $config;
|
||||
|
|
|
@ -26,3 +26,6 @@ rect {
|
|||
#list_agents_tactical_wrapper {
|
||||
max-height: 600px;
|
||||
}
|
||||
.graph-distribution-so {
|
||||
margin-top: 55px;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue