Merge branch 'ent-7972-funcionalidad-historico-de-alertas-lanzadas' of brutus.artica.es:artica/pandorafms into ent-7972-funcionalidad-historico-de-alertas-lanzadas

This commit is contained in:
Jose Gonzalez 2021-10-15 09:37:02 +02:00
commit 33a3cd6e99
1 changed files with 37 additions and 12 deletions

View File

@ -840,7 +840,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
if ($alert_mode == RECOVERED_ALERT) {
# Avoid the use of alias bigger than 30 characters.
@actions = get_db_rows ($dbh,
'SELECT taa.*, tac.*, tatma.id AS id_alert_templ_module_actions,
'SELECT taa.name as action_name, taa.*, tac.*, tatma.id AS id_alert_templ_module_actions,
tatma.id_alert_template_module, tatma.id_alert_action, tatma.fires_min,
tatma.fires_max, tatma.module_action_threshold, tatma.last_execution
FROM talert_template_module_actions tatma, talert_actions taa, talert_commands tac
@ -854,7 +854,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
# Avoid the use of alias bigger than 30 characters.
if ($forced_alert){
@actions = get_db_rows ($dbh,
'SELECT taa.*, tac.*, tatma.id AS id_alert_templ_module_actions,
'SELECT taa.name as action_name, taa.*, tac.*, tatma.id AS id_alert_templ_module_actions,
tatma.id_alert_template_module, tatma.id_alert_action, tatma.fires_min,
tatma.fires_max, tatma.module_action_threshold, tatma.last_execution
FROM talert_template_module_actions tatma, talert_actions taa, talert_commands tac
@ -865,7 +865,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
} else {
@actions = get_db_rows ($dbh,
'SELECT taa.*, tac.*, tatma.id AS id_alert_templ_module_actions,
'SELECT taa.name as action_name, taa.*, tac.*, tatma.id AS id_alert_templ_module_actions,
tatma.id_alert_template_module, tatma.id_alert_action, tatma.fires_min,
tatma.fires_max, tatma.module_action_threshold, tatma.last_execution
FROM talert_template_module_actions tatma, talert_actions taa, talert_commands tac
@ -881,7 +881,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
# Get default action
if ($#actions < 0) {
@actions = get_db_rows ($dbh, 'SELECT * FROM talert_actions, talert_commands
@actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM talert_actions, talert_commands
WHERE talert_actions.id = ?
AND talert_actions.id_alert_command = talert_commands.id',
$alert->{'id_alert_action'});
@ -890,7 +890,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
# Event alert
else {
if ($alert_mode == RECOVERED_ALERT) {
@actions = get_db_rows ($dbh, 'SELECT * FROM tevent_alert_action, talert_actions, talert_commands
@actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM tevent_alert_action, talert_actions, talert_commands
WHERE tevent_alert_action.id_alert_action = talert_actions.id
AND talert_actions.id_alert_command = talert_commands.id
AND tevent_alert_action.id_event_alert = ?
@ -898,7 +898,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
OR ? >= fires_min)',
$alert->{'id'}, $alert->{'times_fired'});
} else {
@actions = get_db_rows ($dbh, 'SELECT * FROM tevent_alert_action, talert_actions, talert_commands
@actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM tevent_alert_action, talert_actions, talert_commands
WHERE tevent_alert_action.id_alert_action = talert_actions.id
AND talert_actions.id_alert_command = talert_commands.id
AND tevent_alert_action.id_event_alert = ?
@ -910,7 +910,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
# Get default action
if ($#actions < 0) {
@actions = get_db_rows ($dbh, 'SELECT * FROM talert_actions, talert_commands
@actions = get_db_rows ($dbh, 'SELECT talert_actions.name as action_name, * FROM talert_actions, talert_commands
WHERE talert_actions.id = ?
AND talert_actions.id_alert_command = talert_commands.id',
$alert->{'id_alert_action'});
@ -960,7 +960,7 @@ sub pandora_execute_alert ($$$$$$$$$;$$) {
}
pandora_execute_action ($pa_config, $data, $agent, $alert, $alert_mode, $action, $module, $dbh, $timestamp, $extra_macros);
push(@{$custom_data->{'actions'}}, safe_output($action->{'name'}));
push(@{$custom_data->{'actions'}}, safe_output($action->{'action_name'}));
} else {
if (defined ($module)) {
logger ($pa_config, "Skipping action " . safe_output($action->{'name'}) . " for alert '" . safe_output($alert->{'name'}) . "' module '" . safe_output($module->{'nombre'}) . "'.", 10);
@ -4218,14 +4218,20 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) {
}
# Execute alert
my $action = get_db_single_row ($dbh, 'SELECT *
my $action = get_db_single_row ($dbh, 'SELECT talert_actions.name as action_name, *
FROM talert_actions, talert_commands
WHERE talert_actions.id_alert_command = talert_commands.id
AND talert_actions.id = ?', $alert->{'id_alert'});
my $trap_rcv_full = $trap_oid . " " . $trap_value. " ". $trap_type. " " . $trap_custom_oid;
# Additional execution information for the console.
my $custom_data = {
'actions' => [],
};
pandora_execute_action ($pa_config, $trap_rcv_full, \%agent, \%alert, 1, $action, undef, $dbh, $timestamp, \%macros) if (defined ($action));
push(@{$custom_data->{'actions'}}, safe_output($action->{'action_name'}));
# Generate an event, ONLY if our alert action is different from generate an event.
if ($action->{'id_alert_command'} != 3 && $alert->{'disable_event'} == 0){
@ -4246,7 +4252,7 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) {
$alert->{'id_as'});
foreach my $other_alert (@more_actions_snmp) {
my $other_action = get_db_single_row ($dbh, 'SELECT *
my $other_action = get_db_single_row ($dbh, 'SELECT talert_actions.name as action_name, *
FROM talert_actions, talert_commands
WHERE talert_actions.id_alert_command = talert_commands.id
AND talert_actions.id = ?', $other_alert->{'alert_type'});
@ -4287,11 +4293,30 @@ sub pandora_evaluate_snmp_alerts ($$$$$$$$$) {
);
pandora_execute_action ($pa_config, $trap_rcv_full, \%agent, \%alert_action, 1, $other_action, undef, $dbh, $timestamp, \%macros) if (defined ($other_action));
push(@{$custom_data->{'actions'}}, safe_output($other_action->{'action_name'}));
# Generate an event, ONLY if our alert action is different from generate an event.
if ($other_action->{'id_alert_command'} != 3 && $alert->{'disable_event'} == 0){
pandora_event ($pa_config, "SNMP alert fired (" . safe_output($alert->{'description'}) . ")",
0, 0, $alert->{'priority'}, 0, 0, 'alert_fired', 0, $dbh);
pandora_event (
$pa_config,
"SNMP alert fired (" . safe_output($alert->{'description'}) . ")",
0,
0,
$alert->{'priority'},
0,
0,
'alert_fired',
0,
$dbh,
undef,
undef,
undef,
undef,
undef,
undef,
undef,,
undef,
p_encode_json($pa_config, $custom_data));
}
# Update alert status