$alert_type, 'al_field1' => $al_field1, 'al_field2' => $al_field2, 'al_field3' => $al_field3, 'description' => $description, 'agent' => $source_ip, 'custom_oid' => $custom_value, 'oid' => $oid, 'time_threshold' => $time_threshold, 'max_alerts' => $max_alerts, 'min_alerts' => $min_alerts, 'priority' => $priority, '_snmp_f1_' => $custom_oid_data_1, '_snmp_f2_' => $custom_oid_data_2, '_snmp_f3_' => $custom_oid_data_3, '_snmp_f4_' => $custom_oid_data_4, '_snmp_f5_' => $custom_oid_data_5, '_snmp_f6_' => $custom_oid_data_6, 'trap_type' => $trap_type, 'single_value' => $single_value); $result = db_process_sql_insert('talert_snmp', $values); if (!$result) { db_pandora_audit("SNMP management", "Fail try to create snmp alert"); ui_print_error_message(__('There was a problem creating the alert')); } else { db_pandora_audit("SNMP management", "Create snmp alert #$result"); ui_print_success_message(__('Successfully created')); } } else { $sql = sprintf ("UPDATE talert_snmp SET priority = %d, id_alert = %d, al_field1 = '%s', al_field2 = '%s', al_field3 = '%s', description = '%s', agent = '%s', custom_oid = '%s', oid = '%s', time_threshold = %d, max_alerts = %d, min_alerts = %d, _snmp_f1_ = '%s', _snmp_f2_ = '%s', _snmp_f3_ = '%s', _snmp_f4_ = '%s', _snmp_f5_ = '%s', _snmp_f6_ = '%s', trap_type = %d, single_value = '%s' WHERE id_as = %d", $priority, $alert_type, $al_field1, $al_field2, $al_field3, $description, $source_ip, $custom_value, $oid, $time_threshold, $max_alerts, $min_alerts, $custom_oid_data_1, $custom_oid_data_2, $custom_oid_data_3, $custom_oid_data_4, $custom_oid_data_5, $custom_oid_data_6, $trap_type, $single_value, $id_as); $result = db_process_sql ($sql); if (!$result) { db_pandora_audit("SNMP management", "Fail try to update snmp alert #$id_as"); ui_print_error_message(__('There was a problem updating the alert')); } else { db_pandora_audit("SNMP management", "Update snmp alert #$id_as"); ui_print_success_message(__('Successfully updated')); } } } else { ui_print_page_header (__('SNMP Console')." » ".__('Alert overview'), "images/computer_error.png", false, "snmp_alert", true); } // From variable init // ================== if ((isset ($_GET["update_alert"])) && ($_GET["update_alert"] != -1)) { $id_as = (int) get_parameter_get ("update_alert", -1); $alert = db_get_row ("talert_snmp", "id_as", $id_as); $id_as = $alert["id_as"]; $source_ip = $alert["agent"]; $alert_type = $alert["id_alert"]; $description = $alert["description"]; $oid = $alert["oid"]; $custom_value = $alert["custom_oid"]; $time_threshold = $alert["time_threshold"]; $al_field1 = $alert["al_field1"]; $al_field2 = $alert["al_field2"]; $al_field3 = $alert["al_field3"]; $max_alerts = $alert["max_alerts"]; $min_alerts = $alert["min_alerts"]; $priority = $alert["priority"]; $custom_oid_data_1 = $alert["_snmp_f1_"]; $custom_oid_data_2 = $alert["_snmp_f2_"]; $custom_oid_data_3 = $alert["_snmp_f3_"]; $custom_oid_data_4 = $alert["_snmp_f4_"]; $custom_oid_data_5 = $alert["_snmp_f5_"]; $custom_oid_data_6 = $alert["_snmp_f6_"]; $trap_type = $alert["trap_type"]; $single_value = $alert["single_value"]; } elseif (isset ($_GET["update_alert"])) { // Variable init $id_as = -1; $source_ip = ""; $alert_type = 1; //Event, e-mail $description = ""; $oid = ""; $custom_value = ""; $time_threshold = SECONDS_5MINUTES; $al_field1 = ""; $al_field2 = ""; $al_field3 = ""; $max_alerts = 1; $min_alerts = 0; $priority = 0; $custom_oid_data_1 = ''; $custom_oid_data_2 = ''; $custom_oid_data_3 = ''; $custom_oid_data_4 = ''; $custom_oid_data_5 = ''; $custom_oid_data_6 = ''; $trap_type = -1; $single_value = ''; } // Header // Alert Delete // ============= if (isset ($_GET["delete_alert"])) { // Delete alert $alert_delete = (int) get_parameter_get ("delete_alert", 0); $result = db_process_sql_delete('talert_snmp', array('id_as' => $alert_delete)); if ($result === false) { db_pandora_audit("SNMP management", "Fail try to delete snmp alert #$alert_delete"); ui_print_error_message(__('There was a problem deleting the alert')); } else { db_pandora_audit("SNMP management", "Delete snmp alert #$alert_delete"); ui_print_success_message(__('Successfully deleted')); } } // Alert form if (isset ($_GET["update_alert"])) { //the update_alert means the form should be displayed. If update_alert > 1 then an existing alert is updated echo '
'; /* SNMP alert filters */ echo ''; // Description echo ''; //echo ''; // OID echo ''; // Custom echo ''; // SNMP Agent echo ''; // Trap type echo ''; // Single value echo ''; // Custom OID/Data #1 echo ''; // Custom OID/Data #2 echo ''; // Custom OID/Data #3 echo ''; // Custom OID/Data #4 echo ''; // Custom OID/Data #5 echo ''; // Custom OID/Data #6 echo ''; //Button //echo '
'.__('Description').''; html_print_input_text ("description", $description, '', 60); echo '
' . __('Alert filters') . ui_print_help_icon("snmp_alert_filters", true) . '
'.__('OID').''; html_print_input_text ("oid", $oid, '', 50, 255); echo '
'.__('Custom Value/OID'); echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; html_print_textarea ("custom_value", $custom_value, 2, $custom_value, 'style="width:400px;"'); echo '
'.__('SNMP Agent').' (IP)'; html_print_input_text ("source_ip", $source_ip, '', 20); echo '
'.__('Trap type').''; $trap_types = array(-1 => __('None'), 0 => __('Cold start (0)'), 1 => __('Warm start (1)'), 2 => __('Link down (2)'), 3 => __('Link up (3)'), 4 => __('Authentication failure (4)'), 5 => __('Other')); echo html_print_select ($trap_types, 'trap_type', $trap_type, '', '', '', false, false, false); echo '
'.__('Single value').''; html_print_input_text ("single_value", $single_value, '', 20); echo '
'.__('Custom OID/Data #1'); echo ui_print_help_icon ("field_match_snmp", true); echo ''; html_print_input_text ("custom_oid_data_1", $custom_oid_data_1, '', 60); echo '
'.__('Custom OID/Data #2'); //echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; html_print_input_text ("custom_oid_data_2", $custom_oid_data_2, '', 60); echo '
'.__('Custom OID/Data #3'); //echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; html_print_input_text ("custom_oid_data_3", $custom_oid_data_3, '', 60); echo '
'.__('Custom OID/Data #4'); //echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; html_print_input_text ("custom_oid_data_4", $custom_oid_data_4, '', 60); echo '
'.__('Custom OID/Data #5'); //echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; html_print_input_text ("custom_oid_data_5", $custom_oid_data_5, '', 60); echo '
'.__('Custom OID/Data #6'); //echo ui_print_help_icon ("snmp_alert_custom", true); echo ''; html_print_input_text ("custom_oid_data_6", $custom_oid_data_6, '', 60); echo '
'; // End table //echo "
"; // Alert configuration //echo ''; //echo ''; // Alert fields echo ''; echo ''; echo ''; // Max / Min alerts echo ''; // Time Threshold echo ''; // Priority echo ''; // Alert type (e-mail, event etc.) echo ''; echo '
' . __('Alert configuration') . ui_print_help_icon("snmp_alert_configuration", true) . '
'.__('Field #1 (Alias, name)'); echo ui_print_help_icon ("snmp_alert_field1", true); echo ''; html_print_input_text ("al_field1", $al_field1, '', 60); echo '
'.__('Field #2 (Single Line)').''; html_print_input_text ("al_field2", $al_field2, '', 60); echo '
'.__('Field #3 (Full Text)').''; html_print_textarea ("al_field3", $al_field3, 4, $al_field3, 'style="width:400px"'); echo '
'.__('Min. number of alerts').''; html_print_input_text ("min_alerts", $min_alerts, '', 3); echo '
'.__('Max. number of alerts').''; html_print_input_text ("max_alerts", $max_alerts, '', 3); echo '
'.__('Time threshold').''; $fields = array (); $fields[$time_threshold] = human_time_description_raw ($time_threshold); $fields[SECONDS_5MINUTES] = human_time_description_raw (SECONDS_5MINUTES); $fields[SECONDS_10MINUTES] = human_time_description_raw (SECONDS_10MINUTES); $fields[SECONDS_15MINUTES] = human_time_description_raw (SECONDS_15MINUTES); $fields[SECONDS_30MINUTES] = human_time_description_raw (SECONDS_30MINUTES); $fields[SECONDS_1HOUR] = human_time_description_raw (SECONDS_1HOUR); $fields[SECONDS_2HOUR] = human_time_description_raw (SECONDS_2HOUR); $fields[SECONDS_5HOUR] = human_time_description_raw (SECONDS_5HOUR); $fields[SECONDS_12HOURS] = human_time_description_raw (SECONDS_12HOURS); $fields[SECONDS_1DAY] = human_time_description_raw (SECONDS_1DAY); $fields[SECONDS_1WEEK] = human_time_description_raw (SECONDS_1WEEK); $fields[-1] = __('Other value'); html_print_select ($fields, "time_threshold", $time_threshold, '', '', '0', false, false, false, '" style="margin-right:60px'); echo '
'.__('Priority').''; echo html_print_select (get_priorities (), "priority", $priority, '', '', '0', false, false, false); echo '
'.__('Alert action').''; $fields = array (); $result = db_get_all_rows_in_table ('talert_actions', "name"); if ($result === false) { $result = array (); } foreach ($result as $row) { $fields[$row["id"]] = $row["name"]; } switch ($config['dbtype']){ case "mysql": case "postgresql": html_print_select_from_sql ('SELECT id, name FROM talert_actions ORDER BY name', "alert_type", $alert_type, '', '', 0, false, false, false); break; case "oracle": html_print_select_from_sql ('SELECT id, dbms_lob.substr(name,4000,1) as name FROM talert_actions ORDER BY dbms_lob.substr(name,4000,1)', "alert_type", $alert_type, '', '', 0, false, false, false); break; } echo '
'; echo ""; echo '
'; if ($id_as > 0) { html_print_submit_button (__('Update'), "submit", false, 'class="sub upd"', false); } else { html_print_submit_button (__('Create'), "submit", false, 'class="sub wand"', false); } echo '
'; echo ""; } else { require_once ('include/functions_alerts.php'); //Overview $result = db_get_all_rows_in_table ("talert_snmp"); if ($result === false) { $result = array (); echo "
".__('There are no SNMP alerts')."
"; } $table->data = array (); $table->head = array (); $table->size = array (); $table->cellpadding = 4; $table->cellspacing = 4; $table->width = "98%"; $table->class= "databox"; $table->align = array (); $table->head[0] = __('Alert action'); $table->head[1] = __('SNMP Agent'); $table->size[1] = "90px"; $table->align[1] = 'center'; $table->head[2] = __('OID'); $table->align[2] = 'center'; $table->head[3] = __('Custom Value/OID'); $table->align[3] = 'center'; $table->head[4] = __('Description'); $table->head[5] = __('Times fired'); $table->align[5] = 'center'; $table->head[6] = __('Last fired'); $table->align[6] = 'center'; $table->head[7] = __('Action'); $table->size[7] = "50px"; $table->align[7] = 'center'; foreach ($result as $row) { $data = array (); $data[0] = '' . alerts_get_alert_action_name ($row["id_alert"]) . ''; $data[1] = __('SNMP Agent'); $data[1] = $row["agent"]; $data[2] = __('OID'); $data[2] = $row["oid"]; $data[3] = __('Custom Value/OID'); $data[3] = $row["custom_oid"]; $data[4] = $row["description"]; $data[5] = $row["times_fired"]; if (($row["last_fired"] != "1970-01-01 00:00:00") and ($row["last_fired"] != "01-01-1970 00:00:00")) { $data[6] = ui_print_timestamp($row["last_fired"], true); } else { $data[6] = __('Never'); } $data[7] = '' . html_print_image("images/config.png", true, array("border" => '0', "alt" => __('Update'))) . '' . '  ' . html_print_image("images/cross.png", true, array("border" => '0', "alt" => __('Delete'))) . ''; $idx = count ($table->data); //The current index of the table is 1 less than the count of table data so we count before adding to table->data array_push ($table->data, $data); $table->rowclass[$idx] = get_priority_class ($row["priority"]); } if (!empty ($table->data)) { html_print_table ($table); } unset ($table); echo '
'; echo ''; html_print_submit_button (__('Create'), "add_alert", false, 'class="sub next"'); echo "
"; echo '
'; echo '

'.__('Legend').'

'; foreach (get_priorities () as $num => $name) { echo ''.$name.''; echo '
'; } echo '
'; } ?>