refactor events meta pandora_enterprise#9086

This commit is contained in:
Daniel Barbero Martin 2022-06-20 12:29:00 +02:00
parent ca298422bd
commit 3e59093b0e
7 changed files with 90 additions and 147 deletions

View File

@ -592,33 +592,6 @@ function events_update_status($id_evento, $status, $filter=null)
* *
* @param array $fields Fields to retrieve. * @param array $fields Fields to retrieve.
* @param array $filter Filters to be applied. * @param array $filter Filters to be applied.
* Available filters:
* [
* 'date_from'
* 'time_from'
* 'date_to'
* 'time_to'
* 'event_view_hr'
* 'id_agent'
* 'event_type'
* 'severity'
* 'id_group_filter'
* 'status'
* 'agent_alias'
* 'search'
* 'id_extra'
* 'id_source_event'
* 'user_comment'
* 'source'
* 'id_user_ack'
* 'tag_with'
* 'tag_without'
* 'filter_only_alert'
* 'module_search'
* 'group_rep'
* 'server_id'
* ].
*
* @param integer $offset Offset (pagination). * @param integer $offset Offset (pagination).
* @param integer $limit Limit (pagination). * @param integer $limit Limit (pagination).
* @param string $order Sort order. * @param string $order Sort order.
@ -631,6 +604,33 @@ function events_update_status($id_evento, $status, $filter=null)
* will be search. * will be search.
* @param boolean $nodeConnected Already connected to node (uses tevento). * @param boolean $nodeConnected Already connected to node (uses tevento).
* *
* Available filters:
* [
* 'date_from'
* 'time_from'
* 'date_to'
* 'time_to'
* 'event_view_hr'
* 'id_agent'
* 'event_type'
* 'severity'
* 'id_group_filter'
* 'status'
* 'agent_alias'
* 'search'
* 'id_extra'
* 'id_source_event'
* 'user_comment'
* 'source'
* 'id_user_ack'
* 'tag_with'
* 'tag_without'
* 'filter_only_alert'
* 'module_search'
* 'group_rep'
* 'server_id'
* ].
*
* @return array Events. * @return array Events.
* @throws Exception On error. * @throws Exception On error.
*/ */
@ -845,7 +845,7 @@ function events_get_all(
} }
} }
$groups = isset($filter['id_group_filter']) === true ? $filter['id_group_filter'] : null; $groups = (isset($filter['id_group_filter']) === true) ? $filter['id_group_filter'] : null;
if ((bool) $user_is_admin === false if ((bool) $user_is_admin === false
&& isset($groups) === false && isset($groups) === false
) { ) {
@ -1088,7 +1088,7 @@ function events_get_all(
// Validated or in process by. // Validated or in process by.
if (empty($filter['id_user_ack']) === false) { if (empty($filter['id_user_ack']) === false) {
$sql_filters[] = sprintf( $sql_filters[] = sprintf(
' AND te.id_usuario like lower("%%%s%%") ', ' AND te.owner_user like lower("%%%s%%") ',
$filter['id_user_ack'] $filter['id_user_ack']
); );
} }
@ -1333,7 +1333,11 @@ function events_get_all(
// Pagination. // Pagination.
$pagination = ''; $pagination = '';
if (is_metaconsole() === true && empty($id_server) === true) { if (is_metaconsole() === true
&& empty($id_server) === true
&& isset($filter['csv_all']) === false
&& $filter['csv_all'] !== 1
) {
// TODO: XXX TIP. captura el error. // TODO: XXX TIP. captura el error.
$pagination = sprintf( $pagination = sprintf(
' LIMIT %d', ' LIMIT %d',
@ -1632,7 +1636,11 @@ function events_get_all(
} }
); );
if (isset($limit, $offset) === true && $limit > 0) { if (isset($limit, $offset) === true
&& $limit !== 0
&& isset($filter['csv_all']) === false
&& $filter['csv_all'] !== 1
) {
$count = count($data); $count = count($data);
$end = ((int) $offset !== 0) ? ($offset + $limit) : $limit; $end = ((int) $offset !== 0) ? ($offset + $limit) : $limit;
$finally = array_slice($data, $offset, $end, true); $finally = array_slice($data, $offset, $end, true);

View File

@ -763,7 +763,13 @@ function delete_event(table, id_evento, event_rep, row, server_id) {
}); });
} }
function execute_delete_event_reponse(table, id_evento, event_rep, row) { function execute_delete_event_reponse(
table,
id_evento,
event_rep,
row,
server_id
) {
var button = document.getElementById("del-" + id_evento); var button = document.getElementById("del-" + id_evento);
if (!button) { if (!button) {
// Button does not exist. Ignore. // Button does not exist. Ignore.
@ -772,7 +778,14 @@ function execute_delete_event_reponse(table, id_evento, event_rep, row) {
} }
button.children[0]; button.children[0];
button.children[0].src = "images/spinner.gif"; button.children[0].src = "images/spinner.gif";
return update_event(table, id_evento, { delete_event: 1 }, event_rep, row); return update_event(
table,
id_evento,
{ delete_event: 1 },
event_rep,
row,
server_id
);
} }
// Imported from old files. // Imported from old files.
@ -855,6 +868,9 @@ function execute_event_response(event_list_btn) {
}); });
} }
} else { } else {
var event_id = $(this).val();
var server_id = $("#hidden-server_id_" + event_id).val();
// It is not a custom response // It is not a custom response
switch (response_id) { switch (response_id) {
case "in_progress_selected": case "in_progress_selected":
@ -864,7 +880,8 @@ function execute_event_response(event_list_btn) {
dt_events, dt_events,
$(this).val(), $(this).val(),
$(this).attr("event_rep"), $(this).attr("event_rep"),
this.parentElement.parentElement this.parentElement.parentElement,
server_id
); );
}); });
break; break;
@ -872,9 +889,10 @@ function execute_event_response(event_list_btn) {
$(".chk_val:checked").each(function() { $(".chk_val:checked").each(function() {
validate_event( validate_event(
dt_events, dt_events,
$(this).val(), event_id,
$(this).attr("event_rep"), $(this).attr("event_rep"),
this.parentElement.parentElement this.parentElement.parentElement,
server_id
); );
}); });
break; break;
@ -882,9 +900,10 @@ function execute_event_response(event_list_btn) {
$(".chk_val:checked").each(function() { $(".chk_val:checked").each(function() {
execute_delete_event_reponse( execute_delete_event_reponse(
dt_events, dt_events,
$(this).val(), event_id,
$(this).attr("event_rep"), $(this).attr("event_rep"),
this.parentElement.parentElement this.parentElement.parentElement,
server_id
); );
}); });
break; break;

View File

@ -502,6 +502,7 @@ class EventsListWidget extends Widget
\ui_require_css_file('events', 'include/styles/', true); \ui_require_css_file('events', 'include/styles/', true);
\ui_require_css_file('tables', 'include/styles/', true); \ui_require_css_file('tables', 'include/styles/', true);
\ui_require_javascript_file('pandora_events');
\ui_require_javascript_file('pandora_events', 'include/javascript/', true); \ui_require_javascript_file('pandora_events', 'include/javascript/', true);
$this->values['groupId'] = explode(',', $this->values['groupId'][0]); $this->values['groupId'] = explode(',', $this->values['groupId'][0]);
@ -643,9 +644,15 @@ class EventsListWidget extends Widget
// Recursive Groups. // Recursive Groups.
(bool) $this->values['groupRecursion'], (bool) $this->values['groupRecursion'],
// Already connected. // Already connected.
($this->nodeId > 0) // ($this->nodeId > 0)
); );
if (is_metaconsole() === true
&& empty($filter['server_id']) !== false
) {
$events = $events['data'];
}
if ($events === false) { if ($events === false) {
$events = []; $events = [];
} }
@ -689,6 +696,8 @@ class EventsListWidget extends Widget
metaconsole_connect(null, $this->nodeId); metaconsole_connect(null, $this->nodeId);
} }
hd($events, true);
foreach ($events as $event) { foreach ($events as $event) {
$data = []; $data = [];
$event['evento'] = \io_safe_output($event['evento']); $event['evento'] = \io_safe_output($event['evento']);

View File

@ -351,7 +351,7 @@ div.multi-response-buttons {
} }
#events_buffers_display ul { #events_buffers_display ul {
min-width: 250px; min-width: 400px;
} }
#events_buffers_display li { #events_buffers_display li {

View File

@ -2021,8 +2021,7 @@ function process_datatables_callback(table, settings) {
function process_buffers(buffers) { function process_buffers(buffers) {
$('#events_buffers_display').empty(); $('#events_buffers_display').empty();
console.log(buffers); if(buffers != null && buffers.settings != undefined && buffers.data) {
if(buffers.settings != undefined && buffers.data.length > 0) {
var html = '<h3>'+buffers.settings.translate.nev; var html = '<h3>'+buffers.settings.translate.nev;
html += ': ('+buffers.settings.total+')</h3>'; html += ': ('+buffers.settings.total+')</h3>';
html += '<ul>'; html += '<ul>';
@ -2040,7 +2039,7 @@ function process_buffers(buffers) {
class_total += ' danger'; class_total += ' danger';
str_total = buffers.settings.translate.tevn; str_total = buffers.settings.translate.tevn;
} }
html += '<span class='+class_total+'>'; html += '<span class="'+class_total+'">';
html += element[1]; html += element[1];
if(str_total != '') { if(str_total != '') {
html += '<span class="text">'; html += '<span class="text">';

View File

@ -159,6 +159,8 @@ try {
throw new Exception('Invalid filter. ['.$plain_filter.']'); throw new Exception('Invalid filter. ['.$plain_filter.']');
} }
$filter['csv_all'] = true;
$names = events_get_column_names($column_names); $names = events_get_column_names($column_names);
// Dump headers. // Dump headers.
@ -166,6 +168,10 @@ try {
echo io_safe_output($n).$config['csv_divider']; echo io_safe_output($n).$config['csv_divider'];
} }
if (is_metaconsole() === true) {
echo 'server_id'.$config['csv_divider'];
}
echo chr(13); echo chr(13);
// Dump events. // Dump events.
@ -178,11 +184,10 @@ try {
(($step++) * $events_per_step), (($step++) * $events_per_step),
$events_per_step, $events_per_step,
'desc', 'desc',
'timestamp', 'timestamp'
$filter['history']
); );
if ($events === false) { if ($events === false || empty($events) === true) {
break; break;
} }
@ -249,6 +254,10 @@ try {
echo $config['csv_divider']; echo $config['csv_divider'];
} }
if (is_metaconsole() === true) {
echo $row['server_id'].$config['csv_divider'];
}
echo chr(13); echo chr(13);
} }
} }

View File

@ -3289,107 +3289,6 @@ CREATE TABLE IF NOT EXISTS `tgraph_source_template` (
PRIMARY KEY(`id_gs_template`) PRIMARY KEY(`id_gs_template`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
-- ---------------------------------------------------------------------
-- Table `tmetaconsole_event`
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `tmetaconsole_event` (
`id_evento` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_source_event` BIGINT UNSIGNED NOT NULL,
`id_agente` INT NOT NULL DEFAULT 0,
`agent_name` VARCHAR(600) NOT NULL DEFAULT '',
`id_usuario` VARCHAR(255) NOT NULL DEFAULT '0',
`id_grupo` MEDIUMINT NOT NULL DEFAULT 0,
`group_name` VARCHAR(100) NOT NULL DEFAULT '',
`estado` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`timestamp` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
`evento` TEXT,
`utimestamp` BIGINT NOT NULL DEFAULT 0,
`event_type` ENUM('going_unknown','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal', 'configuration_change') DEFAULT 'unknown',
`id_agentmodule` INT NOT NULL DEFAULT 0,
`module_name` VARCHAR(600) NOT NULL,
`id_alert_am` INT NOT NULL DEFAULT 0,
`alert_template_name` TEXT,
`criticity` INT UNSIGNED NOT NULL DEFAULT 0,
`user_comment` TEXT,
`tags` TEXT,
`source` TINYTEXT,
`id_extra` TINYTEXT,
`critical_instructions` TEXT ,
`warning_instructions` TEXT ,
`unknown_instructions` TEXT ,
`owner_user` VARCHAR(100) NOT NULL DEFAULT '',
`ack_utimestamp` BIGINT NOT NULL DEFAULT 0,
`server_id` INT NOT NULL,
`custom_data` TEXT ,
`data` TINYTEXT ,
`module_status` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id_evento`),
KEY `idx_agente` (`id_agente`),
KEY `idx_agentmodule` (`id_agentmodule`),
KEY `server_id` (`server_id`),
KEY `idx_utimestamp` USING BTREE (`utimestamp`),
KEY `tme_timestamp_idx` (`timestamp`),
KEY `tme_module_status_idx` (`module_status`),
KEY `tme_criticity_idx` (`criticity`),
KEY `tme_agent_name_idx` (`agent_name`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
-- Criticity: 0 - Maintance (grey)
-- Criticity: 1 - Informational (blue)
-- Criticity: 2 - Normal (green) (status 0)
-- Criticity: 3 - Warning (yellow) (status 2)
-- Criticity: 4 - Critical (red) (status 1)
-- Criticity: 5 - Minor
-- Criticity: 6 - Major
-- ---------------------------------------------------------------------
-- Table `tmetaconsole_event_history`
-- ---------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `tmetaconsole_event_history` (
`id_evento` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_source_event` BIGINT UNSIGNED NOT NULL,
`id_agente` INT NOT NULL DEFAULT 0,
`agent_name` VARCHAR(600) NOT NULL DEFAULT '',
`id_usuario` VARCHAR(255) NOT NULL DEFAULT '0',
`id_grupo` MEDIUMINT NOT NULL DEFAULT 0,
`group_name` VARCHAR(100) NOT NULL DEFAULT '',
`estado` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`timestamp` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
`evento` TEXT,
`utimestamp` BIGINT NOT NULL DEFAULT 0,
`event_type` ENUM('going_unknown','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal', 'configuration_change') DEFAULT 'unknown',
`id_agentmodule` INT NOT NULL DEFAULT 0,
`module_name` VARCHAR(600) NOT NULL,
`id_alert_am` INT NOT NULL DEFAULT 0,
`alert_template_name` TEXT,
`criticity` INT UNSIGNED NOT NULL DEFAULT 0,
`user_comment` TEXT,
`tags` TEXT,
`source` TINYTEXT,
`id_extra` TINYTEXT,
`critical_instructions` TEXT ,
`warning_instructions` TEXT ,
`unknown_instructions` TEXT ,
`owner_user` VARCHAR(100) NOT NULL DEFAULT '',
`ack_utimestamp` BIGINT NOT NULL DEFAULT 0,
`server_id` INT NOT NULL,
`custom_data` TEXT ,
`data` DOUBLE DEFAULT NULL,
`module_status` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id_evento`),
KEY `idx_agente` (`id_agente`),
KEY `idx_agentmodule` (`id_agentmodule`),
KEY `idx_utimestamp` USING BTREE (`utimestamp`),
KEY `tmeh_estado_idx` (`estado`),
KEY `tmeh_timestamp_idx` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
-- Criticity: 0 - Maintance (grey)
-- Criticity: 1 - Informational (blue)
-- Criticity: 2 - Normal (green) (status 0)
-- Criticity: 3 - Warning (yellow) (status 2)
-- Criticity: 4 - Critical (red) (status 1)
-- Criticity: 5 - Minor
-- Criticity: 6 - Major
-- --------------------------------------------------------------------- -- ---------------------------------------------------------------------
-- Table `textension_translate_string` -- Table `textension_translate_string`
-- --------------------------------------------------------------------- -- ---------------------------------------------------------------------