2008-06-18 Esteban Sanchez <estebans@artica.es>

* functions.php: Added documentation to all the functions in JavaDoc
        format, which is an facto-standard. Deleted unused functions. Improved
        the code of some functions. Tab and blankspaces style correction.
        Replaced old lang_label with lang_string(). Some functions to print
        selects were replaced with a functio to get an array with all the
        possible values so the caller will use print_select() with them.

        * godmode/agentes/agent_manager.php: Use print_select() instead of
        deleted function.

        * godmode/agentes/alert_manager_editor.php: Use print_select() instead
        of deleted function. Use print_checkbox(). Style correction

        * godmode/reporting/map_builder.php, operation/agentes/ver_agente.php,
        operation/messages/message.php,
        operation/reporting/reporting_viewer_pdf.php:
        Replaced deleted functions with their equivalents.

        * include/functions_db.php: Documented some functions, some work is
        still required. Added get_reports() to get all the reports a user can
        see. Deleted unused functions. Replaced deleted functions with their
        equivalents. Added get_db_row_sql(), get_previous_data(). Fixed errors
        when calculating average, max, min and sum values of an agent module.

        * include/functions_reporting.php: Fixed errors when calculating SLA.

        * operation/events/events.php: Tab and blankspaces correction.
        Replaced form_priority with print_select(). Style correction.

        * operation/reporting/custom_reporting.php: Show all the reports a
        user can see. Use Pandora functions.

        * operation/reporting/reporting_viewer.php: Show unknown label if SLA
        can not be calculated.

        * operation/snmpconsole/snmp_alert.php: Avoid an extra indentation
        level by using check_login() properly. Tab and blankspaces correction.

        * index.php, operation/users/user_edit.php: Adopted to renamed
        function.

        * godmode/db/db_sanity.php, reporting/fgraph.php: Style correction.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@881 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
Esteban Sanchez 2008-06-19 09:01:12 +00:00
parent b6e45a9d99
commit f42b3c6003
18 changed files with 1788 additions and 1581 deletions

View File

@ -1,38 +1,82 @@
2008-06-18 Esteban Sanchez <estebans@artica.es>
* functions.php: Added documentation to all the functions in JavaDoc
format, which is an facto-standard. Deleted unused functions. Improved
the code of some functions. Tab and blankspaces style correction.
Replaced old lang_label with lang_string(). Some functions to print
selects were replaced with a functio to get an array with all the
possible values so the caller will use print_select() with them.
* godmode/agentes/agent_manager.php: Use print_select() instead of
deleted function.
* godmode/agentes/alert_manager_editor.php: Use print_select() instead
of deleted function. Use print_checkbox(). Style correction
* godmode/reporting/map_builder.php, operation/agentes/ver_agente.php,
operation/messages/message.php,
operation/reporting/reporting_viewer_pdf.php:
Replaced deleted functions with their equivalents.
* include/functions_db.php: Documented some functions, some work is
still required. Added get_reports() to get all the reports a user can
see. Deleted unused functions. Replaced deleted functions with their
equivalents. Added get_db_row_sql(), get_previous_data(). Fixed errors
when calculating average, max, min and sum values of an agent module.
* include/functions_reporting.php: Fixed errors when calculating SLA.
* operation/events/events.php: Tab and blankspaces correction.
Replaced form_priority with print_select(). Style correction.
* operation/reporting/custom_reporting.php: Show all the reports a
user can see. Use Pandora functions.
* operation/reporting/reporting_viewer.php: Show unknown label if SLA
can not be calculated.
* operation/snmpconsole/snmp_alert.php: Avoid an extra indentation
level by using check_login() properly. Tab and blankspaces correction.
* index.php, operation/users/user_edit.php: Adopted to renamed
function.
* godmode/db/db_sanity.php, reporting/fgraph.php: Style correction.
2008-06-18 Sancho Lerena <slerena@gmail.com> 2008-06-18 Sancho Lerena <slerena@gmail.com>
* pandoradbdata_13_to_20.sql: prototype. not functional. * pandoradbdata_13_to_20.sql: prototype. not functional.
* operation/events/export_csv.php: Event export to CSV. Support * operation/events/export_csv.php: Event export to CSV. Support passed
passed filters. filters.
* images/networkmap/*.png: Updated icons for network map. * images/networkmap/*.png: Updated icons for network map.
* godmode/menu.php, * godmode/menu.php, godmode/db/db_sanity.php: New sanity tool for
* godmode/db/db_sanity.php: New sanity tool for database in interactive database in interactive mode using console (ported from
mode using console (ported from pandora_db.pl). pandora_db.pl).
* reporting/fgraph.php: Added graphs for string data types. Fixed * reporting/fgraph.php: Added graphs for string data types. Fixed
event by agent/module graph for system events. event by agent/module graph for system events.
* general/logon_ok.php, tactica.php: Fixed a div0. * general/logon_ok.php, tactica.php: Fixed a div0.
* godmode/agentes/manage_config.php: Several fixes, and added a new * godmode/agentes/manage_config.php: Several fixes, and added a new
option to mass-deletion of agents. option to mass-deletion of agents.
* godmode/agentes/agent_manager.php, * godmode/agentes/agent_manager.php,
godmode/agentes/modificar_agente.php: Delete of remote configuration godmode/agentes/modificar_agente.php: Delete of remote configuration
when delete an agent and manually, by user. when delete an agent and manually, by user..
* operation/servers/view_server_detail.php: Added refresh option and * operation/servers/view_server_detail.php: Added refresh option and
fixed layout. fixed layout.
* status_monitor.php: Added new filter by state, most code rewritten. * status_monitor.php: Added new filter by state, most code rewritten.
Added pagination fixes, and corrected labels and legends. Added pagination fixes, and corrected labels and legends.
* operation/agentes/networkmap.php: Several fixes and modification to * operation/agentes/networkmap.php: Several fixes and modification to
render small maps and huge (>200 agents) maps. This should be fine by render small maps and huge (>200 agents) maps. This should be fine by
now. Need "Group/Section" drawing /by click into section line/. now. Need "Group/Section" drawing /by click into section line/.
2008-06-18 Esteban Sanchez <estebans@artica.es> 2008-06-18 Esteban Sanchez <estebans@artica.es>

View File

@ -70,14 +70,14 @@ echo '<td class="datos"><b>'.$lang_label["agent_name"].'</b></td>
<td class="datos"> <td class="datos">
<input type="text" name="agente" size=30 value="'.$nombre_agente.'">'; <input type="text" name="agente" size=30 value="'.$nombre_agente.'">';
if ((isset($id_agente)) && ($id_agente != "")){ if (isset ($id_agente) && $id_agente != "") {
echo " echo "
<a href='index.php?sec=estado& <a href='index.php?sec=estado&
sec2=operation/agentes/ver_agente&id_agente=".$id_agente."'> sec2=operation/agentes/ver_agente&id_agente=".$id_agente."'>
<img src='images/lupa.png' border='0' align='middle' alt=''></a>"; <img src='images/lupa.png' border='0' align='middle' alt=''></a>";
} }
// Remote configuration available // Remote configuration available
if (file_exists($config["remote_config"] . "/" . $agent_md5 . ".md5")) { if (file_exists ($config["remote_config"] . "/" . $agent_md5 . ".md5")) {
echo " echo "
<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente=".$id_agente."&disk_conf=" . $agent_md5 . "'> <a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente=".$id_agente."&disk_conf=" . $agent_md5 . "'>
<img src='images/application_edit.png' border='0' align='middle' alt=''></a>"; <img src='images/application_edit.png' border='0' align='middle' alt=''></a>";
@ -88,7 +88,7 @@ echo '<b>'.$lang_label["ip_address"].'</b>';
echo '<td class="datos2">'; echo '<td class="datos2">';
echo '<input type="text" name="direccion" size="16" value="'.$direccion_agente.'">'; echo '<input type="text" name="direccion" size="16" value="'.$direccion_agente.'">';
if ($create_agent != 1){ if ($create_agent != 1) {
echo "&nbsp;&nbsp;&nbsp;&nbsp;"; echo "&nbsp;&nbsp;&nbsp;&nbsp;";
echo '<select name="address_list">'; echo '<select name="address_list">';
@ -109,12 +109,13 @@ if ($create_agent != 1){
echo '<tr><td class="datos"><b>'.lang_string ("Parent").'</b>'; echo '<tr><td class="datos"><b>'.lang_string ("Parent").'</b>';
echo '<td class="datos">'; echo '<td class="datos">';
if ($create_agent != 1){ if ($create_agent != 1) {
form_agent_combo ($id_parent, "id_parent"); print_select_from_sql ('SELECT id_agente, nombre FROM tagente',
'id_parent', $id_agente, '', '', '');
} else {
print_select_from_sql ('SELECT id_agente, nombre FROM tagente',
'id_parent', 0, '', 'None', '0');
} }
else
form_agent_combo (0, "id_parent");
echo '<tr><td class="datos"><b>'.$lang_label["group"].'</b>'; echo '<tr><td class="datos"><b>'.$lang_label["group"].'</b>';
echo '<td class="datos"><select name="grupo" class="w130">'; echo '<td class="datos"><select name="grupo" class="w130">';
@ -242,11 +243,11 @@ echo '<tr><td class="datos"><b>'.lang_string("Remote configuration").'</b>';
echo '<td class="datos">'; echo '<td class="datos">';
$filename = $config["remote_config"] . "/" . $agent_md5 . ".md5"; $filename = $config["remote_config"] . "/" . $agent_md5 . ".md5";
if (file_exists($filename)){ if (file_exists($filename)){
echo date("F d Y H:i:s.", fileatime($filename)); echo date("F d Y H:i:s.", fileatime($filename));
// Delete remote configuration // Delete remote configuration
echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&disk_conf_delete=1&id_agente=$id_agente'><img src='images/cross.png'></A>"; echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&disk_conf_delete=1&id_agente=$id_agente'><img src='images/cross.png'></A>";
} else { } else {
echo '<i>'.lang_string("Not available").'</i>'; echo '<i>'.lang_string("Not available").'</i>';
} }
echo '</table><table width="650"><tr><td align="right">'; echo '</table><table width="650"><tr><td align="right">';

View File

@ -1,5 +1,4 @@
<?php
<?PHP
// Pandora FMS - the Free Monitoring System // Pandora FMS - the Free Monitoring System
// ======================================== // ========================================
@ -25,18 +24,18 @@ echo "<h3>".$lang_label["alert_asociation_form"]."</h3>";
echo '<form name="agente" method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$id_agente.'">'; echo '<form name="agente" method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$id_agente.'">';
if ($form_alerttype == "combined") if ($form_alerttype == "combined")
echo "<input type='hidden' name='combined' value ='1'>"; echo "<input type='hidden' name='combined' value ='1'>";
else else
echo "<input type='hidden' name='combined' value ='0'>"; echo "<input type='hidden' name='combined' value ='0'>";
if (! isset($update_alert)) if (! isset($update_alert))
$update_alert = -1; $update_alert = -1;
if ($update_alert != 1) { if ($update_alert != 1) {
echo '<input type="hidden" name="insert_alert" value=1>'; echo '<input type="hidden" name="insert_alert" value=1>';
} else { } else {
echo '<input type="hidden" name="update_alert" value=1>'; echo '<input type="hidden" name="update_alert" value=1>';
echo '<input type="hidden" name="id_aam" value="'.$alerta_id_aam.'">'; echo '<input type="hidden" name="id_aam" value="'.$alerta_id_aam.'">';
} }
echo '<input type="hidden" name="id_agente" value="'.$id_agente.'">'; echo '<input type="hidden" name="id_agente" value="'.$id_agente.'">';
@ -46,48 +45,48 @@ echo '<table width=600 cellpadding="4" cellspacing="4" class="databox_color" bor
echo '<tr><td class="datos3">'.lang_string("assigned_module"); echo '<tr><td class="datos3">'.lang_string("assigned_module");
echo '<td class="datos3">'; echo '<td class="datos3">';
if ($form_alerttype != "combined"){ if ($form_alerttype != "combined"){
if ($update_alert != 1) { if ($update_alert != 1) {
echo '<select name="agente_modulo" style="width:210px;"> '; echo '<select name="agente_modulo" style="width:210px;"> ';
$sql2 = "SELECT id_agente_modulo, id_tipo_modulo, nombre FROM tagente_modulo WHERE id_agente = $id_agente ORDER BY nombre"; $sql2 = "SELECT id_agente_modulo, id_tipo_modulo, nombre FROM tagente_modulo WHERE id_agente = $id_agente ORDER BY nombre";
$result2=mysql_query($sql2); $result2=mysql_query($sql2);
while ($row2=mysql_fetch_array($result2)){ while ($row2=mysql_fetch_array($result2)){
if ($row2["id_tipo_modulo"] != -1) { if ($row2["id_tipo_modulo"] != -1) {
$sql1='SELECT nombre FROM ttipo_modulo WHERE id_tipo = '.$row2["id_tipo_modulo"]; $sql1='SELECT nombre FROM ttipo_modulo WHERE id_tipo = '.$row2["id_tipo_modulo"];
$result=mysql_query($sql1); $result=mysql_query($sql1);
while ($row=mysql_fetch_array($result)){ while ($row=mysql_fetch_array($result)){
echo "<option value='".$row2["id_agente_modulo"]."'>".$row2["nombre"]." ( ".$row["nombre"]." )</option>"; echo "<option value='".$row2["id_agente_modulo"]."'>".$row2["nombre"]." ( ".$row["nombre"]." )</option>";
} }
} else // for -1, is a special module, keep alive monitor !! } else // for -1, is a special module, keep alive monitor !!
echo "<option value='".$row2["id_agente_modulo"]."'>".$row2["nombre"]."</option>"; echo "<option value='".$row2["id_agente_modulo"]."'>".$row2["nombre"]."</option>";
} }
echo "</select>"; echo "</select>";
} else { } else {
$agentmodule_name = get_db_sql ("SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = $alerta_id_agentemodulo"); $agentmodule_name = get_db_sql ("SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = $alerta_id_agentemodulo");
echo $agentmodule_name; echo $agentmodule_name;
} }
} else { } else {
echo lang_string ("N/A"); echo lang_string ("N/A");
} }
echo '<td class="datos3">'; echo '<td class="datos3">';
echo lang_string ("Priority"); echo lang_string ("Priority");
echo '<td class="datos3">'; echo '<td class="datos3">';
if (isset($alert_priority)){ if (! isset($alert_priority)) {
$alert_priority = 3; // Warning by default $alert_priority = 3; // Warning by default
} }
echo form_priority ($alert_priority, "alert_priority"); print_select (get_priorities (), "alert_priority", $alert_priority, '', '', '');
// Alert type // Alert type
echo '<tr><td class="datos">'; echo '<tr><td class="datos">';
echo $lang_label["alert_type"]; echo $lang_label["alert_type"];
echo '<td class="datos"><select name="tipo_alerta">'; echo '<td class="datos"><select name="tipo_alerta">';
if (isset($tipo_alerta)){ if (isset($tipo_alerta)){
echo "<option value='".$tipo_alerta."'>".dame_nombre_alerta($tipo_alerta)."</option>"; echo "<option value='".$tipo_alerta."'>".dame_nombre_alerta($tipo_alerta)."</option>";
} }
$sql1 = 'SELECT id_alerta, nombre FROM talerta ORDER BY nombre'; $sql1 = 'SELECT id_alerta, nombre FROM talerta ORDER BY nombre';
$result = mysql_query ($sql1); $result = mysql_query ($sql1);
while ($row = mysql_fetch_array ($result)){ while ($row = mysql_fetch_array ($result)){
echo "<option value='".$row["id_alerta"]."'>".$row["nombre"]."</option>"; echo "<option value='".$row["id_alerta"]."'>".$row["nombre"]."</option>";
} }
echo "</select>"; echo "</select>";
@ -97,11 +96,11 @@ echo $lang_label["alert_status"];
echo "<td class='datos'>"; echo "<td class='datos'>";
echo '<select name="disable_alert">'; echo '<select name="disable_alert">';
if ((isset($alerta_disable)) AND ($alerta_disable == "1")) { if ((isset($alerta_disable)) AND ($alerta_disable == "1")) {
echo "<option value='1'>".$lang_label["disabled"]; echo "<option value='1'>".$lang_label["disabled"];
echo "<option value='0'>".$lang_label["enabled"]; echo "<option value='0'>".$lang_label["enabled"];
} else { } else {
echo "<option value='0'>".$lang_label["enabled"]; echo "<option value='0'>".$lang_label["enabled"];
echo "<option value='1'>".$lang_label["disabled"]; echo "<option value='1'>".$lang_label["disabled"];
} }
echo "</select>"; echo "</select>";
@ -111,22 +110,22 @@ echo '<td class="datos2" colspan=4><input type="text" name="descripcion" size="6
// Trigger values for alert // Trigger values for alert
if ($form_alerttype != "combined"){ if ($form_alerttype != "combined"){
echo '<tr><td class="datos">'.$lang_label["min_value"]; echo '<tr><td class="datos">'.$lang_label["min_value"];
echo "<a href='#' class='tip'>&nbsp;<span>";echo $lang_label["min_valid_value_help"]."</span></a>"; echo "<a href='#' class='tip'>&nbsp;<span>";echo $lang_label["min_valid_value_help"]."</span></a>";
echo '<td class="datos"><input type="text" name="minimo" size="5" value="'.$alerta_dis_min.'" style="margin-right: 70px;">'; echo '<td class="datos"><input type="text" name="minimo" size="5" value="'.$alerta_dis_min.'" style="margin-right: 70px;">';
echo "<td class='datos'>"; echo "<td class='datos'>";
echo $lang_label["max_value"]; echo $lang_label["max_value"];
echo "<a href='#' class='tip'>&nbsp;<span>"; echo "<a href='#' class='tip'>&nbsp;<span>";
echo $lang_label["max_valid_value_help"]; echo $lang_label["max_valid_value_help"];
echo "</span></a>"; echo "</span></a>";
echo "<td class='datos'>"; echo "<td class='datos'>";
echo "<input type='text' name='maximo' size='5' value='$alerta_dis_max'>"; echo "<input type='text' name='maximo' size='5' value='$alerta_dis_max'>";
// <!-- FREE TEXT ALERT --> // <!-- FREE TEXT ALERT -->
echo '<tr><td class="datos2">'.$lang_label["alert_text"]."<a href='#' class='tip'>&nbsp;<span>NOTE: This field is for matching text on data. Regular Expression Supported </span></a>"; echo '<tr><td class="datos2">'.$lang_label["alert_text"]."<a href='#' class='tip'>&nbsp;<span>NOTE: This field is for matching text on data. Regular Expression Supported </span></a>";
echo '<td class="datos2" colspan=4><input type="text" name="alert_text" size="60" value ="'.$alert_text.'">'; echo '<td class="datos2" colspan=4><input type="text" name="alert_text" size="60" value ="'.$alert_text.'">';
} }
// Time Threshold (TT) // Time Threshold (TT)
@ -135,7 +134,7 @@ echo "<a href='#' class='tip'>&nbsp;<span>".$lang_label["alert_time_threshold_he
echo '<td class="datos">'; echo '<td class="datos">';
echo '<select name="time_threshold" style="margin-right: 60px;">'; echo '<select name="time_threshold" style="margin-right: 60px;">';
if ($alerta_time_threshold != ""){ if ($alerta_time_threshold != ""){
echo "<option value='".$alerta_time_threshold."'>".human_time_description($alerta_time_threshold)."</option>"; echo "<option value='".$alerta_time_threshold."'>".human_time_description($alerta_time_threshold)."</option>";
} }
echo ' echo '
<option value=300>5 Min.</option> <option value=300>5 Min.</option>
@ -162,9 +161,9 @@ echo "<tr><td class='datos2'>".$lang_label["min_alerts"];
echo '<td class="datos2">'; echo '<td class="datos2">';
echo '<input type="text" name="min_alerts" size="5" value="'; echo '<input type="text" name="min_alerts" size="5" value="';
if (isset($alerta_min_alerts)) if (isset($alerta_min_alerts))
echo $alerta_min_alerts; echo $alerta_min_alerts;
else else
echo 0; echo 0;
echo '" style="margin-right: 10px;">'; echo '" style="margin-right: 10px;">';
echo '<td class="datos2">'; echo '<td class="datos2">';
@ -172,9 +171,9 @@ echo $lang_label["max_alerts"];
echo '<td class="datos2">'; echo '<td class="datos2">';
echo '<input type="text" name="max_alerts" size="5" value="'; echo '<input type="text" name="max_alerts" size="5" value="';
if (isset($alerta_max_alerts)) if (isset($alerta_max_alerts))
echo $alerta_max_alerts; echo $alerta_max_alerts;
else else
echo 1; echo 1;
echo '" style="margin-right: 10px;">'; echo '" style="margin-right: 10px;">';
// Field1 // Field1
@ -202,14 +201,14 @@ echo '_timestamp_<br>_data_<br></span></a>';
echo "<tr><td class='datos2'>".$lang_label["time_from"]; echo "<tr><td class='datos2'>".$lang_label["time_from"];
echo "<td class='datos2'><select name='time_from'>"; echo "<td class='datos2'><select name='time_from'>";
if ($time_from != ""){ if ($time_from != ""){
echo "<option value='$time_from'>".substr($time_from,0,5); echo "<option value='$time_from'>".substr($time_from,0,5);
} }
for ($a=0; $a < 48; $a++){ for ($a=0; $a < 48; $a++){
echo "<option value='"; echo "<option value='";
echo render_time ($a); echo render_time ($a);
echo "'>"; echo "'>";
echo render_time ($a); echo render_time ($a);
} }
echo "<option value='23:59'>23:59"; echo "<option value='23:59'>23:59";
echo "</select>"; echo "</select>";
@ -217,14 +216,14 @@ echo "</select>";
echo "<td class='datos2'>".$lang_label["time_to"]; echo "<td class='datos2'>".$lang_label["time_to"];
echo "<td class='datos2'><select name='time_to'>"; echo "<td class='datos2'><select name='time_to'>";
if ($time_from != ""){ if ($time_from != ""){
echo "<option value='$time_to'>".substr($time_to,0,5); echo "<option value='$time_to'>".substr($time_to,0,5);
} }
for ($a=0; $a < 48; $a++){ for ($a=0; $a < 48; $a++){
echo "<option value='"; echo "<option value='";
echo render_time ($a); echo render_time ($a);
echo "'>"; echo "'>";
echo render_time ($a); echo render_time ($a);
} }
echo "<option value='23:59'>23:59"; echo "<option value='23:59'>23:59";
echo "</select>"; echo "</select>";
@ -233,27 +232,25 @@ echo "</select>";
echo "<tr><td class='datos'>".lang_string ("Days of week"); echo "<tr><td class='datos'>".lang_string ("Days of week");
echo "<td class='datos' colspan=4>"; echo "<td class='datos' colspan=4>";
echo lang_string("Mon"); echo lang_string("Mon");
echo form_render_check ("alert_d1", $alert_d1); print_checkbox ("alert_d1", 1, $alert_d1);
echo "&nbsp;&nbsp;"; echo "&nbsp;&nbsp;";
echo lang_string("Tue"); echo lang_string("Tue");
echo form_render_check ("alert_d2", $alert_d2); print_checkbox ("alert_d2", 1, $alert_d2);
echo "&nbsp;&nbsp;"; echo "&nbsp;&nbsp;";
echo lang_string("Wed"); echo lang_string("Wed");
echo form_render_check ("alert_d3", $alert_d3); print_checkbox ("alert_d3", 1, $alert_d3);
echo "&nbsp;&nbsp;"; echo "&nbsp;&nbsp;";
echo lang_string("Thu"); echo lang_string("Thu");
echo form_render_check ("alert_d4", $alert_d4); print_checkbox ("alert_d4", 1, $alert_d4);
echo "&nbsp;&nbsp;"; echo "&nbsp;&nbsp;";
echo lang_string("Fri"); echo lang_string("Fri");
echo form_render_check ("alert_d5", $alert_d5); print_checkbox ("alert_d5", 1, $alert_d5);
echo "&nbsp;&nbsp;"; echo "&nbsp;&nbsp;";
echo lang_string("Sat"); echo lang_string("Sat");
echo form_render_check ("alert_d6", $alert_d6); print_checkbox ("alert_d6", 1, $alert_d6);
echo "&nbsp;&nbsp;"; echo "&nbsp;&nbsp;";
echo lang_string("Sun"); echo lang_string("Sun");
echo form_render_check ("alert_d7", $alert_d7); print_checkbox ("alert_d7", 1, $alert_d7);
// Field2 Recovery // Field2 Recovery
echo '<tr><td class="datos2">'.lang_string ("Field #2 (Rec)"); echo '<tr><td class="datos2">'.lang_string ("Field #2 (Rec)");
@ -266,11 +263,11 @@ echo lang_string ("Alert recovery");
echo "<td class='datos2'>"; echo "<td class='datos2'>";
echo '<select name="alert_recovery">'; echo '<select name="alert_recovery">';
if ((isset($alert_recovery)) AND ($alert_recovery == "1")) { if ((isset($alert_recovery)) AND ($alert_recovery == "1")) {
echo "<option value='1'>".$lang_label["enabled"]; echo "<option value='1'>".$lang_label["enabled"];
echo "<option value='0'>".$lang_label["disabled"]; echo "<option value='0'>".$lang_label["disabled"];
} else { } else {
echo "<option value='0'>".$lang_label["disabled"]; echo "<option value='0'>".$lang_label["disabled"];
echo "<option value='1'>".$lang_label["enabled"]; echo "<option value='1'>".$lang_label["enabled"];
} }
echo "</select>"; echo "</select>";
@ -285,56 +282,56 @@ echo '<input type="text" name="campo_3_rec" size="60" value="'.$alerta_campo3_re
echo "</td></tr></table>"; echo "</td></tr></table>";
echo '<table width=605>'; echo '<table width=605>';
echo '<tr><td align="right">'; echo '<tr><td align="right">';
if ($update_alert== "1"){ if ($update_alert== "1"){
echo '<input name="updbutton" type="submit" class="sub upd" value="'.$lang_label["update"].'">'; echo '<input name="updbutton" type="submit" class="sub upd" value="'.$lang_label["update"].'">';
} else { } else {
echo '<input name="crtbutton" type="submit" class="sub wand" value="'.$lang_label["add"].'">'; echo '<input name="crtbutton" type="submit" class="sub wand" value="'.$lang_label["add"].'">';
} }
echo '</form>'; echo '</form>';
echo '</td></tr></table>'; echo '</td></tr></table>';
if (($form_alerttype == "combined") AND ($update_alert != -1)){ if (($form_alerttype == "combined") AND ($update_alert != -1)){
echo "<h3>".lang_string ("Combined alert components")."</h3>"; echo "<h3>".lang_string ("Combined alert components")."</h3>";
echo '<table width=605 class="databox" border=0 cellpadding=4 cellspacing=4>'; echo '<table width=605 class="databox" border=0 cellpadding=4 cellspacing=4>';
echo '<form method=POST action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$id_agente.'&update_alert='.$alerta_id_aam.'&add_component=1&form_alerttype=combined">'; echo '<form method=POST action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$id_agente.'&update_alert='.$alerta_id_aam.'&add_component=1&form_alerttype=combined">';
if ($form_alerttype == "combined") if ($form_alerttype == "combined")
echo "<input type='hidden' name='combined' value ='1'>"; echo "<input type='hidden' name='combined' value ='1'>";
else else
echo "<input type='hidden' name='combined' value ='0'>"; echo "<input type='hidden' name='combined' value ='0'>";
echo '<input type="hidden" name="add_alert_combined" value="1">'; echo '<input type="hidden" name="add_alert_combined" value="1">';
echo '<input type="hidden" name="id_agente" value="'.$id_agente.'">'; echo '<input type="hidden" name="id_agente" value="'.$id_agente.'">';
echo "<tr><td>"; echo "<tr><td>";
echo lang_string ("Source Agent/Alert"); echo lang_string ("Source Agent/Alert");
echo "<td>"; echo "<td>";
echo "<select name='component_item'>"; echo "<select name='component_item'>";
// Add to combo single alerts // Add to combo single alerts
$result_alert = mysql_query("SELECT tagente_modulo.id_agente_modulo, tagente.nombre, tagente_modulo.nombre, id_aam, tagente.id_grupo FROM talerta_agente_modulo, tagente_modulo, tagente WHERE talerta_agente_modulo.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.id_agente = tagente.id_agente"); $result_alert = mysql_query("SELECT tagente_modulo.id_agente_modulo, tagente.nombre, tagente_modulo.nombre, id_aam, tagente.id_grupo FROM talerta_agente_modulo, tagente_modulo, tagente WHERE talerta_agente_modulo.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.id_agente = tagente.id_agente");
while ($alertrow = mysql_fetch_array($result_alert)){ while ($alertrow = mysql_fetch_array($result_alert)){
if (give_acl ($config["id_user"], $alertrow[4], "AR") == 1) if (give_acl ($config["id_user"], $alertrow[4], "AR") == 1)
echo "<option value='".$alertrow[3]."'>(S) ".$alertrow[1]." - ".$alertrow[2]; echo "<option value='".$alertrow[3]."'>(S) ".$alertrow[1]." - ".$alertrow[2];
} }
// Add to combo combined alerts // Add to combo combined alerts
$result_alert = mysql_query("SELECT tagente.id_grupo, tagente.nombre, talerta_agente_modulo.id_aam, talerta_agente_modulo.descripcion FROM talerta_agente_modulo, tagente WHERE talerta_agente_modulo.id_agent = tagente.id_agente AND tagente.id_agente != '' AND tagente.id_agente > 0"); $result_alert = mysql_query("SELECT tagente.id_grupo, tagente.nombre, talerta_agente_modulo.id_aam, talerta_agente_modulo.descripcion FROM talerta_agente_modulo, tagente WHERE talerta_agente_modulo.id_agent = tagente.id_agente AND tagente.id_agente != '' AND tagente.id_agente > 0");
while ($alertrow = mysql_fetch_array($result_alert)){ while ($alertrow = mysql_fetch_array($result_alert)){
if (give_acl ($config["id_user"], $alertrow[0], "AR")) if (give_acl ($config["id_user"], $alertrow[0], "AR"))
echo "<option value='".$alertrow[2]."'>(C) ".$alertrow[1]." - ".$alertrow[3]; echo "<option value='".$alertrow[2]."'>(C) ".$alertrow[1]." - ".$alertrow[3];
} }
echo "</select>"; echo "</select>";
// there is any component already in this alert ? // there is any component already in this alert ?
$result = mysql_query ("SELECT COUNT(*) FROM tcompound_alert, talerta_agente_modulo WHERE tcompound_alert.id = $id_aam AND talerta_agente_modulo.id_aam = tcompound_alert.id_aam"); $result = mysql_query ("SELECT COUNT(*) FROM tcompound_alert, talerta_agente_modulo WHERE tcompound_alert.id = $id_aam AND talerta_agente_modulo.id_aam = tcompound_alert.id_aam");
$row=mysql_fetch_array($result); $row=mysql_fetch_array($result);
if ($row[0] > 0){ if ($row[0] > 0){
echo "<td>"; echo "<td>";
echo lang_string ("Operation"); echo lang_string ("Operation");
@ -351,60 +348,57 @@ if (($form_alerttype == "combined") AND ($update_alert != -1)){
echo "<input type=hidden name='component_operation' value='NOP'>"; echo "<input type=hidden name='component_operation' value='NOP'>";
} }
echo "<td>"; echo "<td>";
echo '<input name="crtbutton" type="submit" class="sub wand" value="'.$lang_label["add"].'">'; echo '<input name="crtbutton" type="submit" class="sub wand" value="'.$lang_label["add"].'">';
echo "</form>"; echo "</form>";
echo "</table>"; echo "</table>";
echo '<table width=750 cellpadding="4" cellspacing="4" class="databox" border=0>'; echo '<table width=750 cellpadding="4" cellspacing="4" class="databox" border=0>';
echo '<tr>'; echo '<tr>';
echo '<th>'.lang_string ("agent"); echo '<th>'.lang_string ("agent");
echo '<th>'.lang_string ("module"); echo '<th>'.lang_string ("module");
echo "<th>".$lang_label["type"]."</th> echo "<th>".$lang_label["type"]."</th>
<th>".lang_string ("Oper")."</th> <th>".lang_string ("Oper")."</th>
<th>".$lang_label["threshold"]."</th> <th>".$lang_label["threshold"]."</th>
<th>".$lang_label["min."]."</th> <th>".$lang_label["min."]."</th>
<th>".$lang_label["max."]."</th> <th>".$lang_label["max."]."</th>
<th>".$lang_label["time"]."</th> <th>".$lang_label["time"]."</th>
<th>".$lang_label["description"]."</th> <th>".$lang_label["description"]."</th>
<th>".lang_string ("info")."</th> <th>".lang_string ("info")."</th>
<th width='50'>".$lang_label["action"]."</th></tr>"; <th width='50'>".$lang_label["action"]."</th></tr>";
$id_aam = $alerta_id_aam; $id_aam = $alerta_id_aam;
$sql2 = "SELECT * FROM tcompound_alert, talerta_agente_modulo WHERE tcompound_alert.id = $id_aam AND talerta_agente_modulo.id_aam = tcompound_alert.id_aam"; $sql2 = "SELECT * FROM tcompound_alert, talerta_agente_modulo WHERE tcompound_alert.id = $id_aam AND talerta_agente_modulo.id_aam = tcompound_alert.id_aam";
$result2=mysql_query($sql2); $result2=mysql_query($sql2);
$string = ""; $string = "";
$color = 1; $color = 1;
while ($row2=mysql_fetch_array($result2)){ while ($row2=mysql_fetch_array($result2)) {
// Show data for each component of this combined alert // Show data for each component of this combined alert
if ($color == 1){ if ($color == 1){
$tdcolor="datos"; $tdcolor="datos";
$color =0; $color =0;
} else { } else {
$tdcolor="datos2"; $tdcolor="datos2";
$color =1; $color =1;
} }
$module = get_db_row ("tagente_modulo", "id_agente_modulo", $row2["id_agente_modulo"]); $module = get_db_row ("tagente_modulo", "id_agente_modulo", $row2["id_agente_modulo"]);
$description = $row2["descripcion"]; $description = $row2["descripcion"];
$alert_mode = $row2["operation"]; $alert_mode = $row2["operation"];
$id_agente_name = get_db_value ("nombre", "tagente", "id_agente", $module["id_agente"]); $id_agente_name = get_db_value ("nombre", "tagente", "id_agente", $module["id_agente"]);
echo "<tr>"; echo "<tr>";
echo "<td class='$tdcolor'>".$id_agente_name; echo "<td class='$tdcolor'>".$id_agente_name;
echo "<td class='$tdcolor'>".$module["nombre"]; echo "<td class='$tdcolor'>".$module["nombre"];
echo show_alert_row_edit ($row2, $tdcolor, $module["id_tipo_modulo"],1); echo show_alert_row_edit ($row2, $tdcolor, $module["id_tipo_modulo"],1);
echo "</td><td class='$tdcolor'>"; echo "</td><td class='$tdcolor'>";
$id_grupo = dame_id_grupo($id_agente); $id_grupo = dame_id_grupo($id_agente);
if (give_acl($id_user, $id_grupo, "LW")==1){ if (give_acl($id_user, $id_grupo, "LW")==1){
echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente=".$id_agente."&delete_alert_comp=".$row2["id_aam"]."'> <img src='images/cross.png' border=0 alt='".$lang_label["delete"]."'></a> &nbsp; "; echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente=".$id_agente."&delete_alert_comp=".$row2["id_aam"]."'> <img src='images/cross.png' border=0 alt='".$lang_label["delete"]."'></a> &nbsp; ";
echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente=".$id_agente."&update_alert=".$row2["id_aam"]."'> echo "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente=".$id_agente."&update_alert=".$row2["id_aam"]."'>
<img src='images/config.png' border=0 alt='".$lang_label["update"]."'></a>"; <img src='images/config.png' border=0 alt='".$lang_label["update"]."'></a>";
} }
echo "</td>"; echo "</td>";
} }
echo "</table>"; echo "</table>";
} }
?> ?>

View File

@ -27,13 +27,13 @@ echo "<h2>".lang_string("Database sanity tool")."</h2>";
$sanity = get_parameter ("sanity", 0); $sanity = get_parameter ("sanity", 0);
if ($sanity == 1){ if ($sanity == 1) {
// Create tagente estado when missing // Create tagente estado when missing
// ---------------------------------- // ----------------------------------
echo "<h2>".lang_string("Checking tagente_estado table")."</h2>"; echo "<h2>".lang_string ("Checking tagente_estado table")."</h2>";
$sql = "SELECT * FROM tagente_modulo"; $sql = "SELECT * FROM tagente_modulo";
$result=mysql_query($sql); $result = mysql_query ($sql);
while ($row=mysql_fetch_array($result)){ while ($row = mysql_fetch_array ($result)) {
$id_agente_modulo = $row[0]; $id_agente_modulo = $row[0];
$id_agente = $row["id_agente"]; $id_agente = $row["id_agente"];
// check if exist in tagente_estado and create if not // check if exist in tagente_estado and create if not
@ -49,37 +49,36 @@ if ($sanity == 1){
echo "<h3>".lang_string("Checking database consistency")."</h2>"; echo "<h3>".lang_string("Checking database consistency")."</h2>";
$query1 = "SELECT * FROM tagente_estado"; $query1 = "SELECT * FROM tagente_estado";
$result=mysql_query($query1); $result = mysql_query($query1);
while ($row=mysql_fetch_array($result)){ while ($row = mysql_fetch_array ($result)) {
$id_agente_modulo = $row[1]; $id_agente_modulo = $row[1];
# check if exist in tagente_estado and create if not # check if exist in tagente_estado and create if not
$query2 = "SELECT COUNT(*) FROM tagente_modulo WHERE id_agente_modulo = $id_agente_modulo"; $query2 = "SELECT COUNT(*) FROM tagente_modulo WHERE id_agente_modulo = $id_agente_modulo";
$result2=mysql_query($query2); $result2 = mysql_query ($query2);
$row2=mysql_fetch_array($result2); $row2 = mysql_fetch_array ($result2);
if ($row2[0] == 0){ if ($row2[0] == 0) {
$query3 = "DELETE FROM tagente_estado WHERE id_agente_modulo = $id_agente_modulo"; $query3 = "DELETE FROM tagente_estado WHERE id_agente_modulo = $id_agente_modulo";
echo "Deleting non-existing module $id_agente_modulo in state table <br>"; echo "Deleting non-existing module $id_agente_modulo in state table <br>";
mysql_query($query3); mysql_query($query3);
} }
} }
} } elseif ($sanity == 2) {
elseif ($sanity == 2){
echo "<h3>".lang_string("Deleting non-init data")."</h2>"; echo "<h3>".lang_string("Deleting non-init data")."</h2>";
$query1 = "SELECT * FROM tagente_estado WHERE utimestamp = 0"; $query1 = "SELECT * FROM tagente_estado WHERE utimestamp = 0";
$result=mysql_query($query1); $result = mysql_query ($query1);
while ($row=mysql_fetch_array($result)){ while ($row = mysql_fetch_array ($result)) {
$id_agente_modulo = $row[1]; $id_agente_modulo = $row[1];
$query0 = "DELETE FROM tagente_modulo WHERE id_agente_modulo = $id_agente_modulo";
$query1 = "DELETE FROM tagente_estado WHERE id_agente_modulo = $id_agente_modulo";
echo "Deleting non init module $id_agente_modulo <br>"; echo "Deleting non init module $id_agente_modulo <br>";
mysql_query($query0); $sql = "DELETE FROM tagente_modulo WHERE id_agente_modulo = $id_agente_modulo";
mysql_query($query1); mysql_query ($sql);
$sql = "DELETE FROM tagente_estado WHERE id_agente_modulo = $id_agente_modulo";
mysql_query ($sql);
} }
} }
echo "<br>"; echo "<br>";
echo "<div style='width:520px'>"; echo "<div style='width:520px'>";
echo lang_string("Pandora FMS Sanity tool is used to remove bad database structure data, created modules with missing status, or modules that cannot be initialized (and don't report any valid data) but retry each it's own interval to get data. This kind of bad modules could degrade performance of Pandora FMS. This database sanity tool is also implemented in the <b>pandora_db.pl</b> that you should be running each day or week. This console sanity DONT compact your database, only delete bad structured data."); echo lang_string ("Pandora FMS Sanity tool is used to remove bad database structure data, created modules with missing status, or modules that cannot be initialized (and don't report any valid data) but retry each it's own interval to get data. This kind of bad modules could degrade performance of Pandora FMS. This database sanity tool is also implemented in the <b>pandora_db.pl</b> that you should be running each day or week. This console sanity DONT compact your database, only delete bad structured data.");
echo "<br><br>"; echo "<br><br>";
echo "<b><a href='index.php?sec=gdbman&sec2=godmode/db/db_sanity&sanity=1'>"; echo "<b><a href='index.php?sec=gdbman&sec2=godmode/db/db_sanity&sanity=1'>";
@ -91,7 +90,7 @@ echo "</a></b>";
echo "<br><br>"; echo "<br><br>";
echo "<b><a href='index.php?sec=gdbman&sec2=godmode/db/db_sanity&sanity=2'>"; echo "<b><a href='index.php?sec=gdbman&sec2=godmode/db/db_sanity&sanity=2'>";
echo "<img src='images/status_away.png'> &nbsp;"; echo "<img src='images/status_away.png'> &nbsp;";
echo lang_string("Delete non-initialized modules now"); echo lang_string ("Delete non-initialized modules now");
echo "</a></b>"; echo "</a></b>";
echo "</div>"; echo "</div>";

View File

@ -1,4 +1,4 @@
<?PHP <?php
// Pandora FMS - the Free monitoring system // Pandora FMS - the Free monitoring system
// ======================================== // ========================================
@ -91,12 +91,12 @@ if (isset($_GET["update_module"])){
include ("general/noaccess.php"); include ("general/noaccess.php");
exit; exit;
} }
$pos_x = give_parameter_post ("pos_x",0); $pos_x = get_parameter ("pos_x",0);
$pos_y = give_parameter_post ("pos_y",0); $pos_y = get_parameter ("pos_y",0);
$my_height = give_parameter_post ("height"); $my_height = get_parameter ("height");
$my_width = give_parameter_post ("width"); $my_width = get_parameter ("width");
$my_label = give_parameter_post ("label"); $my_label = get_parameter ("label");
$my_image = give_parameter_post ("image"); $my_image = get_parameter ("image");
$sql = "UPDATE tlayout_data SET $sql = "UPDATE tlayout_data SET
pos_x = '$pos_x', pos_x = '$pos_x',
@ -125,21 +125,21 @@ if (isset($_GET["add_module"])){
include ("general/noaccess.php"); include ("general/noaccess.php");
exit; exit;
} }
$my_id_map = give_parameter_post ("id_map",0); $my_id_map = get_parameter ("id_map",0);
$my_id_agent = give_parameter_post ("id_agent",0); $my_id_agent = get_parameter ("id_agent",0);
$my_id_module = give_parameter_post ("id_module",0); $my_id_module = get_parameter ("id_module",0);
$my_period = give_parameter_post ("period",3600); $my_period = get_parameter ("period",3600);
$my_type = give_parameter_post ("type",0); $my_type = get_parameter ("type",0);
$my_pos_x = give_parameter_post ("pos_x",0); $my_pos_x = get_parameter ("pos_x",0);
$my_pos_y = give_parameter_post ("pos_y",0); $my_pos_y = get_parameter ("pos_y",0);
$my_height = give_parameter_post ("height"); $my_height = get_parameter ("height");
$my_width = give_parameter_post ("width"); $my_width = get_parameter ("width");
$my_label = give_parameter_post ("label"); $my_label = get_parameter ("label");
$my_image = give_parameter_post ("image"); $my_image = get_parameter ("image");
$my_map_linked = give_parameter_post ("map_linked"); $my_map_linked = get_parameter ("map_linked");
$my_parent_item = give_parameter_post ("parent_item"); $my_parent_item = get_parameter ("parent_item");
$my_label_color = give_parameter_post ("label_color",""); $my_label_color = get_parameter ("label_color","");
$my_link_color = give_parameter_post ("link_color",0); $my_link_color = get_parameter ("link_color",0);
$sql = "INSERT INTO tlayout_data (id_layout, pos_x, pos_y, height, width, label, image, type, period, id_agente_modulo, id_layout_linked, parent_item, label_color, no_link_color) VALUES ('$my_id_map', '$my_pos_x', '$my_pos_y', '$my_height', '$my_width', '$my_label', '$my_image', '$my_type', '$my_period', '$my_id_module', '$my_map_linked', '$my_parent_item', '$my_label_color', '$my_link_color')"; $sql = "INSERT INTO tlayout_data (id_layout, pos_x, pos_y, height, width, label, image, type, period, id_agente_modulo, id_layout_linked, parent_item, label_color, no_link_color) VALUES ('$my_id_map', '$my_pos_x', '$my_pos_y', '$my_height', '$my_width', '$my_label', '$my_image', '$my_type', '$my_period', '$my_id_module', '$my_map_linked', '$my_parent_item', '$my_label_color', '$my_link_color')";
if ($res=mysql_query($sql)) if ($res=mysql_query($sql))
$result = "<h3 class=suc>".$lang_label["create_ok"]."</h3>"; $result = "<h3 class=suc>".$lang_label["create_ok"]."</h3>";

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,14 @@
// GNU General Public License for more details. // GNU General Public License for more details.
function check_login() { /**
* Check if login session variables are set.
*
* It will stop the execution if those variables were not set
*
* @return 0 on success
*/
function check_login () {
global $config; global $config;
if (!isset($config["homedir"])){ if (!isset($config["homedir"])){
// No exists $config. Exit inmediatly // No exists $config. Exit inmediatly
@ -28,7 +35,7 @@ function check_login() {
$rowdup = mysql_fetch_array($resq1); $rowdup = mysql_fetch_array($resq1);
$nombre = $rowdup[0]; $nombre = $rowdup[0];
if ( $id == $nombre ){ if ( $id == $nombre ){
return 0 ; return 0;
} }
} }
audit_db("N/A", getenv("REMOTE_ADDR"), "No session", "Trying to access without a valid session"); audit_db("N/A", getenv("REMOTE_ADDR"), "No session", "Trying to access without a valid session");
@ -36,13 +43,28 @@ function check_login() {
exit; exit;
} }
// --------------------------------------------------------------- /**
// give_acl () * Check access privileges to resources
// Main Function to get access to resources *
// Return 0 if no access, > 0 if access * Access can be:
// --------------------------------------------------------------- * IR - Incident Read
* IW - Incident Write
function give_acl($id_user, $id_group, $access){ * IM - Incident Management
* AR - Agent Read
* AW - Agent Write
* LW - Alert Write
* UM - User Management
* DM - DB Management
* LM - Alert Management
* PM - Pandora Management
*
* @param id_user User id to check
* @param id_group Agents group id to check access
* @param access Access privilege to check
*
* @return 1 if the user has privileges, 0 if not.
*/
function give_acl ($id_user, $id_group, $access) {
// IF user is level = 1 then always return 1 // IF user is level = 1 then always return 1
// Access can be: // Access can be:
/* /*
@ -64,44 +86,76 @@ function give_acl($id_user, $id_group, $access){
$res=mysql_query($query1); $res=mysql_query($query1);
$row=mysql_fetch_array($res); $row=mysql_fetch_array($res);
if ($row["nivel"] == 1) if ($row["nivel"] == 1)
$result = 1; return 1;
else { if ($id_group == 0) // Group doesnt matter, any group, for check permission to do at least an action in a group
if ($id_group == 0) // Group doesnt matter, any group, for check permission to do at least an action in a group $query1="SELECT * FROM tusuario_perfil WHERE id_usuario = '".$id_user."'"; // GroupID = 0, group doesnt matter (use with caution!)
$query1="SELECT * FROM tusuario_perfil WHERE id_usuario = '".$id_user."'"; // GroupID = 0, group doesnt matter (use with caution!) else
else $query1="SELECT * FROM tusuario_perfil WHERE id_usuario = '".$id_user."' and ( id_grupo =".$id_group." OR id_grupo = 1)"; // GroupID = 1 ALL groups
$query1="SELECT * FROM tusuario_perfil WHERE id_usuario = '".$id_user."' and ( id_grupo =".$id_group." OR id_grupo = 1)"; // GroupID = 1 ALL groups $resq1=mysql_query($query1);
$resq1=mysql_query($query1); $result = 0;
$result = 0; while ($rowdup=mysql_fetch_array($resq1)){
while ($rowdup=mysql_fetch_array($resq1)){ $id_perfil=$rowdup["id_perfil"];
$id_perfil=$rowdup["id_perfil"]; // For each profile for this pair of group and user do...
// For each profile for this pair of group and user do... $query2="SELECT * FROM tperfil WHERE id_perfil = ".$id_perfil;
$query2="SELECT * FROM tperfil WHERE id_perfil = ".$id_perfil; $resq2=mysql_query($query2);
$resq2=mysql_query($query2); if ($rowq2=mysql_fetch_array($resq2)){
if ($rowq2=mysql_fetch_array($resq2)){ switch ($access) {
switch ($access) { case "IR":
case "IR": $result = $result + $rowq2["incident_view"]; break; $result = $result + $rowq2["incident_view"];
case "IW": $result = $result + $rowq2["incident_edit"]; break;
case "IM": $result = $result + $rowq2["incident_management"]; break; break;
case "AR": $result = $result + $rowq2["agent_view"]; break; case "IW":
case "AW": $result = $result + $rowq2["agent_edit"]; break; $result = $result + $rowq2["incident_edit"];
case "LW": $result = $result + $rowq2["alert_edit"]; break;
case "LM": $result = $result + $rowq2["alert_management"]; break; break;
case "PM": $result = $result + $rowq2["pandora_management"]; break; case "IM":
case "DM": $result = $result + $rowq2["db_management"]; break; $result = $result + $rowq2["incident_management"];
case "UM": $result = $result + $rowq2["user_management"]; break;
} break;
case "AR":
$result = $result + $rowq2["agent_view"];
break;
case "AW":
$result = $result + $rowq2["agent_edit"];
break;
case "LW":
$result = $result + $rowq2["alert_edit"];
break;
case "LM":
$result = $result + $rowq2["alert_management"];
break;
case "PM":
$result = $result + $rowq2["pandora_management"];
break;
case "DM":
$result = $result + $rowq2["db_management"];
break;
case "UM":
$result = $result + $rowq2["user_management"];
break;
} }
} }
} // else }
if ($result > 1) if ($result > 1)
$result = 1; $result = 1;
return $result; return $result;
} }
// --------------------------------------------------------------- /**
// audit_db, update audit log * Adds an audit log entry.
// --------------------------------------------------------------- *
* @param id User id that makes the incident
* @param ip Client IP who makes the incident
* @param accion Action description
* @param descripcion Long action description
*/
function audit_db ($id, $ip, $accion, $descripcion){ function audit_db ($id, $ip, $accion, $descripcion){
require("config.php"); require("config.php");
$today=date('Y-m-d H:i:s'); $today=date('Y-m-d H:i:s');
@ -110,32 +164,38 @@ function audit_db ($id, $ip, $accion, $descripcion){
$result=mysql_query($sql1); $result=mysql_query($sql1);
} }
/**
// --------------------------------------------------------------- * Log in a user into Pandora.
// logon_db, update entry in logon audit *
// --------------------------------------------------------------- * @param id_user User id
* @param ip Client user IP address.
function logon_db($id,$ip){ */
require("config.php"); function logon_db ($id_user, $ip) {
audit_db($id,$ip,"Logon","Logged in"); require ("config.php");
audit_db ($id_user, $ip, "Logon", "Logged in");
// Update last registry of user to get last logon // Update last registry of user to get last logon
$sql2='UPDATE tusuario fecha_registro = $today WHERE id_usuario = "$id"'; $sql = 'UPDATE tusuario fecha_registro = $today WHERE id_usuario = "$id_user"';
$result=mysql_query($sql2); $result = mysql_query ($sql);
} }
// --------------------------------------------------------------- /**
// logoff_db, also adds audit log * Log out a user into Pandora.
// --------------------------------------------------------------- *
* @param id_user User id
function logoff_db($id,$ip){ * @param ip Client user IP address.
require("config.php"); */
audit_db($id,$ip,"Logoff","Logged out"); function logoff_db ($id_user, $ip) {
require ("config.php");
audit_db ($id_user, $ip, "Logoff", "Logged out");
} }
// --------------------------------------------------------------- /**
// Returns profile given ID * Get profile name from id.
// --------------------------------------------------------------- *
* @param id_profile Id profile in tperfil
*
* @return Profile name of the given id
*/
function dame_perfil ($id_profile) { function dame_perfil ($id_profile) {
return (string) get_db_value ('name', 'tperfil', 'id_perfil', (int) $id_profile); return (string) get_db_value ('name', 'tperfil', 'id_perfil', (int) $id_profile);
} }
@ -210,107 +270,142 @@ function get_alerts_in_agent ($id_agent) {
return array_merge ($simple_alerts, $combined_alerts); return array_merge ($simple_alerts, $combined_alerts);
} }
// --------------------------------------------------------------- /**
// Returns group given ID * Get a list of the reports the user can view.
// --------------------------------------------------------------- *
* A user can view a report by two ways:
* - The user created the report (id_user field in treport)
* - The report is not private and the user has reading privileges on
* the group associated to the report
*
* @param $id_user User id to get the reports.
*
* @return An array with all the reports the user can view.
*/
function get_reports ($id_user) {
$user_reports = array ();
$all_reports = get_db_all_rows_in_table ('treport');
if (sizeof ($all_reports) == 0) {
return $user_reports;
}
foreach ($all_reports as $report) {
/* The report is private and it does not belong to the user */
if ($report['private'] && $report['id_user'] != $id_user)
continue;
/* Check ACL privileges on report group */
if (! give_acl ($id_user, $report['id_group'], 'AR'))
continue;
array_push ($user_reports, $report);
}
return $user_reports;
}
/**
* Get group name from group.
*
* @param id_group Id group to get the name.
*
* @return The name of the given group
*/
function dame_grupo ($id_group) { function dame_grupo ($id_group) {
return (string) get_db_value ('nombre', 'tgrupo', 'id_grupo', (int) $id_group); return (string) get_db_value ('nombre', 'tgrupo', 'id_grupo', (int) $id_group);
} }
// --------------------------------------------------------------- /**
// Returns icon name given group ID * Get group icon from group.
// --------------------------------------------------------------- *
* @param id_group Id group to get the icon
*
* @return Icon path of the given group
*/
function dame_grupo_icono ($id_group) { function dame_grupo_icono ($id_group) {
return (string) get_db_value ('icon', 'tgrupo', 'id_grupo', (int) $id_group); return (string) get_db_value ('icon', 'tgrupo', 'id_grupo', (int) $id_group);
} }
// --------------------------------------------------------------- /**
// Return agent id given name of agent * Get agent id from an agent name.
// --------------------------------------------------------------- *
* @param agent_name Agent name to get its id.
*
* @return Id from the agent of the given name.
*/
function dame_agente_id ($agent_name) { function dame_agente_id ($agent_name) {
return (int) get_db_value ('id_agente', 'tagente', 'nombre', $agent_name); return (int) get_db_value ('id_agente', 'tagente', 'nombre', $agent_name);
} }
/**
// --------------------------------------------------------------- * Get user id of a note.
// Returns userid given name an note id *
// --------------------------------------------------------------- * @param id_note Note id.
*
* @return User id of the given note.
*/
function give_note_author ($id_note) { function give_note_author ($id_note) {
return (int) get_db_value ('id_usuario', 'tnota', 'id_nota', (int) $id_note); return (int) get_db_value ('id_usuario', 'tnota', 'id_nota', (int) $id_note);
} }
/**
// --------------------------------------------------------------- * Get description of an event.
// Returns agent id given name of agent *
// --------------------------------------------------------------- * @param id_event Event id.
*
function dame_agente_modulo_id ($id_agente, $id_tipomodulo, $nombre) { * @return Description of the given event.
$sql = sprintf ('SELECT id_agente_modulo FROM tagente_modulo */
WHERE id_agente = %d
AND id_tipo_modulo = %d AND nombre = "%s"',
$id_agent, $id_tipomodulo, $nombre);
return get_db_sql ($sql);
}
// ---------------------------------------------------------------
// Returns event description given it's id
// ---------------------------------------------------------------
function return_event_description ($id_event) { function return_event_description ($id_event) {
return (string) get_db_value ('evento', 'tevento', 'id_evento', (int) $id_event); return (string) get_db_value ('evento', 'tevento', 'id_evento', (int) $id_event);
} }
// --------------------------------------------------------------- /**
// Return ID_Group from an event given as id_event * Get group id of an event.
// --------------------------------------------------------------- *
* @param id_event Event id
*
* @return Group id of the given event.
*/
function gime_idgroup_from_idevent ($id_event) { function gime_idgroup_from_idevent ($id_event) {
return (int) get_db_value ('id_grupo', 'tevento', 'id_evento', (int) $id_event); return (int) get_db_value ('id_grupo', 'tevento', 'id_evento', (int) $id_event);
} }
/**
// --------------------------------------------------------------- * Get name of an agent.
// Return module id given name of module type *
// --------------------------------------------------------------- * @param id_agente Agent id.
*
function dame_module_id ($nombre){ * @return Name of the given agent.
return (int) get_db_value ('id_tipo', 'ttipo_modulo', 'nombre', $nombre); */
}
// ---------------------------------------------------------------
// Returns agent name when given its ID
// ---------------------------------------------------------------
function dame_nombre_agente ($id_agente) { function dame_nombre_agente ($id_agente) {
return (string) get_db_value ('nombre', 'tagente', 'id_agente', (int) $id_agente); return (string) get_db_value ('nombre', 'tagente', 'id_agente', (int) $id_agente);
} }
// --------------------------------------------------------------- /**
// Returns password (HASH) given user_id * Get password of an user.
// --------------------------------------------------------------- *
* @param id_usuario User id.
function dame_password ($id_usuario) { *
* @return Password of an user.
*/
function get_user_password ($id_usuario) {
return (string) get_db_value ('password', 'tusuario', 'id_usuario', (int) $id_usuario); return (string) get_db_value ('password', 'tusuario', 'id_usuario', (int) $id_usuario);
} }
// --------------------------------------------------------------- /**
// Returns name of an alert given ID * Get name of an alert
// --------------------------------------------------------------- *
* @param id_alert Alert id.
*
* @return Name of the alert.
*/
function dame_nombre_alerta ($id_alert) { function dame_nombre_alerta ($id_alert) {
return (string) get_db_value ('nombre', 'talerta', 'id_alerta', (int) $id_alert); return (string) get_db_value ('nombre', 'talerta', 'id_alerta', (int) $id_alert);
} }
// --------------------------------------------------------------- /**
// Returns name of a modules group * Get name of a module group.
// --------------------------------------------------------------- *
* @param id_module_group Module group id.
*
* @return Name of the given module group.
*/
function dame_nombre_grupomodulo ($id_module_group) { function dame_nombre_grupomodulo ($id_module_group) {
return (string) get_db_value ('name', 'tmodule_group', 'id_mg', (int) $id_module_group); return (string) get_db_value ('name', 'tmodule_group', 'id_mg', (int) $id_module_group);
} }
@ -920,13 +1015,9 @@ function agent_belong_group($id_agent, $id_group){
// Conexion con la base Datos // Conexion con la base Datos
$child[] = ""; $child[] = "";
$child[] = $id_group; $child[] = $id_group;
give_groupchild($id_group,$child); give_groupchild ($id_group, $child);
$id_agent_group = give_group_id($id_agent); $id_agent_group = give_group_id ($id_agent);
if (array_in($child,$id_agent_group)==1){ return in_array ($child, $id_agent_group);
return 1;
} else {
return 0;
}
} }
// --------------------------------------------------------------- // ---------------------------------------------------------------
@ -944,10 +1035,7 @@ function group_belong_group($id_group_a, $id_groupset){
(group_belong_group($id_group_a, $value) == 1)) (group_belong_group($id_group_a, $value) == 1))
return 1; return 1;
} }
if (array_in ($childgroup, $id_group_a) == 1) return in_array ($childgroup, $id_group_a);
return 1;
else
return 0;
} }
// --------------------------------------------------------------- // ---------------------------------------------------------------
@ -1161,6 +1249,18 @@ function give_db_value ($field, $table, $field_search, $condition) {
return get_db_value ($field, $table, $field_search, $condition); return get_db_value ($field, $table, $field_search, $condition);
} }
function get_db_row_sql ($sql) {
$result = mysql_query ($sql);
if (! $result) {
echo '<strong>Error:</strong> get_db_row("'.$sql.'") :'. mysql_error ().'<br />';
return NULL;
}
if ($row = mysql_fetch_array ($result))
return $row;
return NULL;
}
function get_db_row ($table, $field_search, $condition) { function get_db_row ($table, $field_search, $condition) {
global $config; global $config;
@ -1173,15 +1273,7 @@ function get_db_row ($table, $field_search, $condition) {
$sql = sprintf ('SELECT * FROM %s WHERE %s = "%s"', $table, $field_search, $condition); $sql = sprintf ('SELECT * FROM %s WHERE %s = "%s"', $table, $field_search, $condition);
} }
$result = mysql_query ($sql); return get_db_row_sql ($sql);
if (! $result) {
echo '<strong>Error:</strong> get_db_row("'.$sql.'") :'. mysql_error ().'<br />';
return NULL;
}
if ($row = mysql_fetch_array ($result))
return $row;
return NULL;
} }
// --------------------------------------------------------------- // ---------------------------------------------------------------
@ -1314,15 +1406,15 @@ function return_status_layout ($id_layout = 0){
$sql="SELECT * FROM tlayout_data WHERE id_layout = $id_layout"; $sql="SELECT * FROM tlayout_data WHERE id_layout = $id_layout";
$res=mysql_query($sql); $res=mysql_query($sql);
while ($row = mysql_fetch_array($res)){ while ($row = mysql_fetch_array($res)){
$id_agentmodule = $row["id_agente_modulo"]; $id_agentmodule = $row["id_agente_modulo"];
$type = $row["type"]; $type = $row["type"];
$parent_item = $row["parent_item"]; $parent_item = $row["parent_item"];
$link_layout = $row["id_layout_linked"]; $link_layout = $row["id_layout_linked"];
if (($link_layout != 0) && ($id_agentmodule == 0)) { if (($link_layout != 0) && ($id_agentmodule == 0)) {
$temp_status += return_status_layout ($link_layout); $temp_status += return_status_layout ($link_layout);
$temp_total++; $temp_total++;
} else { } else {
$temp_status += return_status_agent_module ($id_agentmodule); $temp_status += return_status_agent_module ($id_agentmodule);
$temp_total++; $temp_total++;
} }
} }
@ -1376,48 +1468,91 @@ function return_coordinate_y_layoutdata ($id_layoutdata){
return (0); return (0);
} }
/**
* Get the previous data to the timestamp provided.
*
* It's useful to know the first value of a module in an interval,
* since it will be the last value in the
*
* @param $id_agent_module Agent module id to look.
* @param $utimestamp The timestamp to look backwards from and get the data.
*
* @return The row of tagente_datos of the last period. NULL if there were no data.
*/
function get_previous_data ($id_agent_module, $utimestamp) {
$sql = sprintf ('SELECT * FROM tagente_datos
WHERE id_agente_modulo = %d
AND utimestamp <= %d
ORDER by utimestamp DESC LIMIT 1',
$id_agent_module, $utimestamp);
return get_db_row_sql ($sql);
}
function return_moduledata_avg_value ($id_agent_module, $period, $date = 0) { function return_moduledata_avg_value ($id_agent_module, $period, $date = 0) {
if (! $date) if (! $date)
$date = time (); $date = time ();
$datelimit = $date - $period; // limit date $datelimit = $date - $period;
$id_agent = get_db_value ("id_agente", "tagente_modulo", "id_agente_modulo", $id_agent_module);
$sql = sprintf ("SELECT AVG(datos) FROM tagente_datos $sql = sprintf ("SELECT SUM(datos), COUNT(*) FROM tagente_datos
WHERE id_agente = %d AND id_agente_modulo = %d WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d", AND utimestamp > %d AND utimestamp <= %d
$id_agent, $id_agent_module, $datelimit, $date); ORDER BY utimestamp ASC",
return (float) get_db_sql ($sql); $id_agent_module, $datelimit, $date);
$values = get_db_row_sql ($sql);
$sum = (float) $values[0];
$total = (int) $values[1];
/* Get also the previous data before the selected interval. */
$previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data)
return ($previous_data['datos'] + $sum) / ($total + 1);
return $sum / $total;
} }
function return_moduledata_max_value ($id_agent_module, $period, $date = 0) { function return_moduledata_max_value ($id_agent_module, $period, $date = 0) {
if (! $date) if (! $date)
$date = time (); $date = time ();
$datelimit = $date - $period; // limit date $datelimit = $date - $period;
$id_agent = get_db_value ("id_agente", "tagente_modulo", "id_agente_modulo", $id_agent_module);
$sql = sprintf ("SELECT MAX(datos) FROM tagente_datos $sql = sprintf ("SELECT MAX(datos) FROM tagente_datos
WHERE id_agente = %d AND id_agente_modulo = %d WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d", AND utimestamp > %d AND utimestamp <= %d
$id_agent, $id_agent_module, $datelimit, $date); ORDER BY utimestamp ASC",
return (float) get_db_sql ($sql); $id_agent_module, $datelimit, $date);
$max = (float) get_db_sql ($sql);
/* Get also the previous report before the selected interval. */
$previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data)
return max ($previous_data['datos'], $max);
return max ($previous_data, $max);
} }
function return_moduledata_min_value ($id_agent_module, $period, $date = 0) { function return_moduledata_min_value ($id_agent_module, $period, $date = 0) {
if (! $date) if (! $date)
$date = time (); $date = time ();
$datelimit = $date - $period; // limit date $datelimit = $date - $period;
$id_agent = get_db_value ("id_agente", "tagente_modulo", "id_agente_modulo", $id_agent_module);
$sql = sprintf ("SELECT MIN(datos) FROM tagente_datos $sql = sprintf ("SELECT MIN(datos) FROM tagente_datos
WHERE id_agente = %d AND id_agente_modulo = %d WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d", AND utimestamp > %d AND utimestamp <= %d
$id_agent, $id_agent_module, $datelimit, $date); ORDER BY utimestamp ASC",
return (float) get_db_sql ($sql); $id_agent_module, $datelimit, $date);
$min = (float) get_db_sql ($sql);
/* Get also the previous data before the selected interval. */
$previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data)
return min ($previous_data['datos'], $min);
return $min;
} }
function return_moduledata_sum_value ($id_agent_module, $period, $date = 0) { function return_moduledata_sum_value ($id_agent_module, $period, $date = 0) {
if (! $date) if (! $date)
$date = time (); $date = time ();
$datelimit = $date - $period; // limit date $datelimit = $date - $period; // limit date
$agent_module = get_db_row ('tagente_modulo', 'id_agente_modulo', $id_agent_module);
$module_name = get_db_value ('nombre', 'ttipo_modulo', 'id_tipo', $agent_module['id_tipo_modulo']); $module_name = get_db_value ('nombre', 'ttipo_modulo', 'id_tipo', $agent_module['id_tipo_modulo']);
if (is_module_data_string ($module_name)) { if (is_module_data_string ($module_name)) {
@ -1427,10 +1562,17 @@ function return_moduledata_sum_value ($id_agent_module, $period, $date = 0) {
// Get the whole interval of data // Get the whole interval of data
$sql = sprintf ('SELECT * FROM tagente_datos $sql = sprintf ('SELECT * FROM tagente_datos
WHERE id_agente = %d AND id_agente_modulo = %d WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d', AND utimestamp > %d AND utimestamp <= %d',
$agent_module['id_agente'], $id_agent_module, $datelimit, $date); $id_agent_module, $datelimit, $date);
$datas = get_db_all_rows_sqlfree ($sql); $datas = get_db_all_rows_sqlfree ($sql);
/* Get also the previous data before the selected interval. */
$previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data) {
/* Add data to the beginning */
array_unshift ($datas, $previous_data);
}
$last_data = ""; $last_data = "";
$total_badtime = 0; $total_badtime = 0;
$interval_begin = 0; $interval_begin = 0;
@ -1491,13 +1633,13 @@ function check_server_status () {
return $res; return $res;
} }
function show_alert_row_mini ($id_combined_alert){ function show_alert_row_mini ($id_combined_alert) {
global $config; global $config;
global $lang_label; global $lang_label;
$color=1; $color=1;
$sql_com = "SELECT talerta_agente_modulo.*, tcompound_alert.operation FROM talerta_agente_modulo, tcompound_alert WHERE tcompound_alert.id_aam = talerta_agente_modulo.id_aam AND tcompound_alert.id = ".$id_combined_alert; $sql = "SELECT talerta_agente_modulo.*, tcompound_alert.operation FROM talerta_agente_modulo, tcompound_alert WHERE tcompound_alert.id_aam = talerta_agente_modulo.id_aam AND tcompound_alert.id = ".$id_combined_alert;
$result_com = mysql_query ($sql_com); $result = mysql_query ($sql);
echo "<table width=400 cellpadding=2 cellspacing=2 class='databox'>"; echo "<table width=400 cellpadding=2 cellspacing=2 class='databox'>";
echo "<th>".lang_string("Name"); echo "<th>".lang_string("Name");
echo "<th>".lang_string("Oper"); echo "<th>".lang_string("Oper");
@ -1509,9 +1651,9 @@ function show_alert_row_mini ($id_combined_alert){
echo "<th>".lang_string("MinMax.Al"); echo "<th>".lang_string("MinMax.Al");
echo "<th>".lang_string("Days"); echo "<th>".lang_string("Days");
echo "<th>".lang_string("Fired"); echo "<th>".lang_string("Fired");
while ($row2=mysql_fetch_array($result_com)){ while ($row2 = mysql_fetch_array ($result)) {
if ($color == 1){ if ($color == 1) {
$tdcolor = "datos"; $tdcolor = "datos";
$color = 0; $color = 0;
} }
@ -1599,118 +1741,116 @@ function show_alert_row_mini ($id_combined_alert){
} }
echo "</table>"; echo "</table>";
} }
function smal_event_table ($filter = "", $limit = 10, $width=440){
global $config;
global $lang_label;
$sql2 = "SELECT * FROM tevento $filter ORDER BY timestamp DESC LIMIT $limit"; function smal_event_table ($filter = "", $limit = 10, $width = 440) {
echo "<table cellpadding='4' cellspacing='4' width='$width' border=0 class='databox'>"; global $config;
echo "<tr>"; global $lang_label;
echo "<th colspan=6>".lang_string("Latest events");
echo "<tr>";
echo "<td class='datos3 f9'>".lang_string ("St")."</th>";
echo "<td class='datos3 f9'>".lang_string ("Type")."</th>";
echo "<td class='datos3 f9'>".$lang_label["event_name"]."</th>";
echo "<td class='datos3 f9'>".$lang_label["agent_name"]."</th>";
echo "<td class='datos3 f9'>".$lang_label["id_user"]."</th>";
echo "<td class='datos3 f9'>".$lang_label["timestamp"]."</th>";
$result2=mysql_query($sql2);
while ($row2=mysql_fetch_array($result2)){
$id_grupo = $row2["id_grupo"];
if (give_acl($config["id_user"], $id_grupo, "AR") == 1){ // Only incident read access to view data !
switch ($row2["criticity"]) {
case 0:
$tdclass = "datos_blue";
break;
case 1:
$tdclass = "datos_grey";
break;
case 2:
$tdclass = "datos_green";
break;
case 3:
$tdclass = "datos_yellow";
break;
case 4:
$tdclass = "datos_red";
break;
default:
$tdclass = "datos_grey";
}
$criticity_label = return_priority ($row2["criticity"]);
// Colored box
echo "<tr><td class='$tdclass' title='$criticity_label' align='center'>";
if ($row2["estado"] == 0)
echo "<img src='images/pixel_red.png' width=20 height=20>";
else
echo "<img src='images/pixel_green.png' width=20 height=20>";
// Event type $sql2 = "SELECT * FROM tevento $filter ORDER BY timestamp DESC LIMIT $limit";
echo "<td class='".$tdclass."' title='".$row2["event_type"]."'>"; echo "<table cellpadding='4' cellspacing='4' width='$width' border=0 class='databox'>";
switch ($row2["event_type"]){ echo "<tr>";
case "unknown": echo "<th colspan=6>".lang_string("Latest events");
echo "<img src='images/err.png'>"; echo "<tr>";
break; echo "<th class='datos3 f9'>".lang_string ("St")."</th>";
case "alert_recovered": echo "<th class='datos3 f9'>".lang_string ("Type")."</th>";
echo "<img src='images/error.png'>"; echo "<th class='datos3 f9'>".$lang_label["event_name"]."</th>";
break; echo "<th class='datos3 f9'>".$lang_label["agent_name"]."</th>";
case "alert_manual_validation": echo "<th class='datos3 f9'>".$lang_label["id_user"]."</th>";
echo "<img src='images/eye.png'>"; echo "<th class='datos3 f9'>".$lang_label["timestamp"]."</th>";
break; $result2=mysql_query($sql2);
case "monitor_up": while ($row2=mysql_fetch_array($result2)){
echo "<img src='images/lightbulb.png'>"; $id_grupo = $row2["id_grupo"];
break; if (give_acl($config["id_user"], $id_grupo, "AR") == 1){ // Only incident read access to view data !
case "monitor_down": switch ($row2["criticity"]) {
echo "<img src='images/lightbulb_off.png'>"; case 0:
break; $tdclass = "datos_blue";
case "alert_fired": break;
echo "<img src='images/bell.png'>"; case 1:
break; $tdclass = "datos_grey";
case "system"; break;
echo "<img src='images/cog.png'>"; case 2:
break; $tdclass = "datos_green";
case "recon_host_detected"; break;
echo "<img src='images/network.png'>"; case 3:
break; $tdclass = "datos_yellow";
case "new_agent": break;
echo "<img src='images/wand.png'>"; case 4:
break; $tdclass = "datos_red";
} break;
default:
$tdclass = "datos_grey";
}
$criticity_label = return_priority ($row2["criticity"]);
// Colored box
echo "<tr><td class='$tdclass' title='$criticity_label' align='center'>";
if ($row2["estado"] == 0)
echo "<img src='images/pixel_red.png' width=20 height=20>";
else
echo "<img src='images/pixel_green.png' width=20 height=20>";
// Event description // Event type
echo "<td class='".$tdclass."f9' title='".$row2["evento"]."'>"; echo "<td class='".$tdclass."' title='".$row2["event_type"]."'>";
echo substr($row2["evento"],0,45); switch ($row2["event_type"]){
if (strlen($row2["evento"]) > 45) case "unknown":
echo ".."; echo "<img src='images/err.png'>";
if ($row2["id_agente"] > 0){ break;
// Agent name case "alert_recovered":
$agent_name = dame_nombre_agente($row2["id_agente"]); echo "<img src='images/error.png'>";
echo "<td class='".$tdclass."f9' title='$agent_name'><a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$row2["id_agente"]."'><b>"; break;
echo substr($agent_name, 0, 14); case "alert_manual_validation":
if (strlen($agent_name) > 14) echo "<img src='images/eye.png'>";
echo ".."; break;
echo "</b></a>"; case "monitor_up":
echo "<img src='images/lightbulb.png'>";
break;
case "monitor_down":
echo "<img src='images/lightbulb_off.png'>";
break;
case "alert_fired":
echo "<img src='images/bell.png'>";
break;
case "system";
echo "<img src='images/cog.png'>";
break;
case "recon_host_detected";
echo "<img src='images/network.png'>";
break;
}
// for System or SNMP generated alerts // Event description
} else { echo "<td class='".$tdclass."f9' title='".$row2["evento"]."'>";
if ($row2["event_type"] == "system"){ echo substr($row2["evento"],0,45);
echo "<td class='$tdclass'>".lang_string("System"); if (strlen($row2["evento"]) > 45)
} else { echo "..";
echo "<td class='$tdclass'>".$lang_label["alert"]."SNMP"; if ($row2["id_agente"] > 0){
} // Agent name
} $agent_name = dame_nombre_agente($row2["id_agente"]);
echo "<td class='".$tdclass."f9' title='$agent_name'><a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$row2["id_agente"]."'><b>";
echo substr($agent_name, 0, 14);
if (strlen($agent_name) > 14)
echo "..";
echo "</b></a>";
// User who validated event // for System or SNMP generated alerts
echo "<td class='$tdclass'>"; } else {
if ($row2["estado"] <> 0) if ($row2["event_type"] == "system"){
echo "<a href='index.php?sec=usuario&sec2=operation/users/user_edit&ver=".$row2["id_usuario"]."'>".substr($row2["id_usuario"],0,8)."<a href='#' class='tip'> <span>".dame_nombre_real($row2["id_usuario"])."</span></a></a>"; echo "<td class='$tdclass'>".lang_string("System");
} else {
echo "<td class='$tdclass'>".$lang_label["alert"]."SNMP";
}
}
// Timestamp // User who validated event
echo "<td class='".$tdclass."f9' title='".$row2["timestamp"]."'>"; echo "<td class='$tdclass'>";
echo human_time_comparation($row2["timestamp"]); if ($row2["estado"] <> 0)
echo "<a href='index.php?sec=usuario&sec2=operation/users/user_edit&ver=".$row2["id_usuario"]."'>".substr($row2["id_usuario"],0,8)."<a href='#' class='tip'> <span>".dame_nombre_real($row2["id_usuario"])."</span></a></a>";
} // Timestamp
} echo "<td class='".$tdclass."f9' title='".$row2["timestamp"]."'>";
echo "</table>"; echo human_time_comparation($row2["timestamp"]);
}
}
echo "</table>";
} }
?> ?>

View File

@ -22,37 +22,58 @@ function return_module_SLA ($id_agent_module, $period, $min_value, $max_value, $
$date = time (); $date = time ();
$datelimit = $date - $period; // limit date $datelimit = $date - $period; // limit date
$id_agent = give_db_value ('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_agent_module); $id_agent = give_db_value ('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_agent_module);
// Get the whole interval of data /* Get all the data in the interval */
$sql = sprintf ('SELECT * FROM tagente_datos $sql = sprintf ('SELECT * FROM tagente_datos
WHERE id_agente = %d AND id_agente_modulo = %d WHERE id_agente = %d AND id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d', AND utimestamp > %d AND utimestamp <= %d
ORDER BY utimestamp ASC',
$id_agent, $id_agent_module, $datelimit, $date); $id_agent, $id_agent_module, $datelimit, $date);
$result = mysql_query ($sql); $datas = get_db_all_rows_sqlfree ($sql);
$last_data = ""; $last_data = "";
$total_badtime = 0; $total_badtime = 0;
$interval_begin = 0; $interval_begin = 0;
$interval_last = 0; $interval_last = $date;
$previous_data_timestamp = 0;
if (! $result) { /* Get also the previous data before the selected interval. */
return 100; $previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data) {
/* Add data to the beginning */
array_unshift ($datas, $previous_data);
$previous_data_timestamp = $previous_data['utimestamp'];
} }
while ($row = mysql_fetch_array ($result)) { if (sizeof ($datas) == 0) {
if ( ($row["datos"] > $max_value) || ($row["datos"] < $min_value)) { return false;
}
foreach ($datas as $data) {
if ($data["datos"] > $max_value || $data["datos"] < $min_value) {
if ($interval_begin == 0) { if ($interval_begin == 0) {
$interval_begin = $row["utimestamp"]; $interval_begin = $data["utimestamp"];
} }
} elseif ($interval_begin != 0){ } elseif ($interval_begin != 0) {
// Here ends interval with data outside valid values, // Here ends interval with data outside valid values,
// Need to add this time to counter // Need to add this time to counter
$interval_last = $row["utimestamp"]; $interval_last = $data["utimestamp"];
$temp_time = $interval_last - $interval_begin; $temp_time = $interval_last - $interval_begin;
$total_badtime = $total_badtime + $temp_time; $total_badtime += $temp_time;
$interval_begin = 0; $interval_begin = 0;
$interval_last = 0; $interval_last = 0;
} }
} }
/* Check the last interval, if any */
if ($interval_begin != 0) {
/* The last time was the time of the previous data in the
interval. That means that in all the interval, the data was
not between the expected values, so the SLA is zero. */
if ($interval_begin = $previous_data_timestamp)
return 0;
$total_badtime += $interval_last - $interval_begin;
}
$result = 100 - ($total_badtime / $period) * 100; $result = 100 - ($total_badtime / $period) * 100;
return $result; return max ($result, 0);
} }
function general_stats ( $id_user, $id_group = 0) { function general_stats ( $id_user, $id_group = 0) {
@ -192,10 +213,10 @@ function event_reporting ($id_agent, $period, $date = 0, $return = false) {
$sql2="SELECT * FROM tevento WHERE id_agente = $id_agent AND utimestamp > '$mytimestamp'"; $sql2="SELECT * FROM tevento WHERE id_agente = $id_agent AND utimestamp > '$mytimestamp'";
// Make query for data (all data, not only distinct). // Make query for data (all data, not only distinct).
$result2=mysql_query($sql2); $result2 = mysql_query($sql2);
while ($row2=mysql_fetch_array($result2)){ while ($row2 = mysql_fetch_array($result2)) {
$id_grupo = $row2["id_grupo"]; $id_grupo = $row2["id_grupo"];
if (give_acl($id_user, $id_grupo, "IR") == 1){ // Only incident read access to view data ! if (give_acl($id_user, $id_grupo, "IR") == 1) { // Only incident read access to view data !
$id_group = $row2["id_grupo"]; $id_group = $row2["id_grupo"];
if ($color == 1){ if ($color == 1){
$tdcolor = "datos"; $tdcolor = "datos";

View File

@ -193,13 +193,15 @@ require "include/functions_db.php";
} }
$pagina = ""; $pagina = "";
if (isset ($_GET["sec2"])){ if (isset ($_GET["sec2"])){
$sec2 = parametro_limpio ($_GET["sec2"]); $sec2 = get_parameter_get ('sec2');
$sec2 = parameter_extra_clean ($sec2);
$pagina = $sec2; $pagina = $sec2;
} else } else
$sec2 = ""; $sec2 = "";
if (isset ($_GET["sec"])){ if (isset ($_GET["sec"])){
$sec = parametro_limpio ($_GET["sec"]); $sec = get_parameter_get ('sec');
$sec = parameter_extra_clean ($sec);
$pagina = $sec2; $pagina = $sec2;
} }
else else

View File

@ -53,7 +53,7 @@ if (comprueba_login() == 0) {
if (give_acl($id_usuario, $id_grupo, "AR")==1){ if (give_acl($id_usuario, $id_grupo, "AR")==1){
// Check for validate alert request // Check for validate alert request
$validate_alert = give_parameter_get ("validate_alert"); $validate_alert = get_parameter ("validate_alert");
if ($validate_alert != ""){ if ($validate_alert != ""){
if (give_acl($id_usuario, $id_grupo, "AW")==1){ if (give_acl($id_usuario, $id_grupo, "AW")==1){
$alert_row = get_db_row ("talerta_agente_modulo", "id_aam", $validate_alert); $alert_row = get_db_row ("talerta_agente_modulo", "id_aam", $validate_alert);

View File

@ -18,40 +18,36 @@
<script language="JavaScript" type="text/javascript"> <script language="JavaScript" type="text/javascript">
<!-- <!--
function CheckAll() function CheckAll () {
{ for (var i = 0; i < document.eventtable.elements.length; i++) {
for (var i=0;i<document.eventtable.elements.length;i++) var e = document.eventtable.elements[i];
{ if (e.type == 'checkbox' && e.name != 'allbox')
var e = document.eventtable.elements[i]; e.checked = 1;
if (e.type == 'checkbox' && e.name != 'allbox') }
e.checked = 1;
}
} }
function OpConfirm(text, conf) function OpConfirm (text, conf) {
{ for (var i = 0; i < document.pageform.elements.length; i++) {
for (var i=0;i<document.pageform.elements.length;i++) var e = document.pageform.elements[i];
{ if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1) {
var e = document.pageform.elements[i]; if (conf) {
if (e.type == 'checkbox' && e.name != 'allbox' && e.checked == 1 ) { return confirm (text);
if (conf) { } else {
return confirm(text); return 1;
} else { }
return 1;
} }
} }
} return false;
return false;
} }
/* Function to hide/unhide a specific Div id */ /* Function to hide/unhide a specific Div id */
function toggleDiv (divid){ function toggleDiv (divid){
if (document.getElementById(divid).style.display == 'none'){ if (document.getElementById(divid).style.display == 'none'){
document.getElementById(divid).style.display = 'block'; document.getElementById(divid).style.display = 'block';
} else { } else {
document.getElementById(divid).style.display = 'none'; document.getElementById(divid).style.display = 'none';
} }
} }
//--> //-->
</script> </script>
@ -164,36 +160,36 @@ $id_agent = get_parameter ("id_agent", -1);
$sql_post = ""; $sql_post = "";
if ($ev_group > 1) if ($ev_group > 1)
$sql_post .= " AND id_grupo = $ev_group"; $sql_post .= " AND id_grupo = $ev_group";
if ($status == 1) if ($status == 1)
$sql_post .= " AND estado = 1"; $sql_post .= " AND estado = 1";
if ($status == 0) if ($status == 0)
$sql_post .= " AND estado = 0"; $sql_post .= " AND estado = 0";
if ($search != "") if ($search != "")
$sql_post .= " AND evento LIKE '%$search%'"; $sql_post .= " AND evento LIKE '%$search%'";
if ($event_type != "") if ($event_type != "")
$sql_post .= " AND event_type = '$event_type'"; $sql_post .= " AND event_type = '$event_type'";
if ($severity != -1) if ($severity != -1)
$sql_post .= " AND criticity >= $severity"; $sql_post .= " AND criticity >= $severity";
if ($id_agent != -1) if ($id_agent != -1)
$sql_post .= " AND id_agente = $id_agent"; $sql_post .= " AND id_agente = $id_agent";
$url = "index.php?sec=eventos&sec2=operation/events/events&search=$search&event_type=$event_type&severity=$severity&status=$status&ev_group=$ev_group&refr=60&id_agent=$id_agent"; $url = "index.php?sec=eventos&sec2=operation/events/events&search=$search&event_type=$event_type&severity=$severity&status=$status&ev_group=$ev_group&refr=60&id_agent=$id_agent";
echo "<h2>".$lang_label["events"]." &gt; ".lang_string ("event_main_view"). "&nbsp"; echo "<h2>".$lang_label["events"]." &gt; ".lang_string ("event_main_view"). "&nbsp";
if ($config["pure"] == 1) if ($config["pure"] == 1)
echo "<a target='_top' href='$url&pure=0'><img src='images/monitor.png' title='".lang_string("Normal screen")."'></a>"; echo "<a target='_top' href='$url&pure=0'><img src='images/monitor.png' title='".lang_string("Normal screen")."'></a>";
else else
echo "<a target='_top' href='$url&pure=1'><img src='images/monitor.png' title='".lang_string("Full screen")."'></a>"; echo "<a target='_top' href='$url&pure=1'><img src='images/monitor.png' title='".lang_string("Full screen")."'></a>";
echo "</h2>"; echo "</h2>";
echo "<a href=\"javascript:;\" onmousedown=\"toggleDiv('event_control');\">"; echo "<a href=\"javascript:;\" onmousedown=\"toggleDiv('event_control');\">";
echo "<b>".lang_string("Event control filter")." ".'<img src="images/wand.png"></A></b>'; echo "<b>".lang_string("Event control filter")." ".'<img src="images/wand.png"></A></b>';
if ($config["pure"] == 1) if ($config["pure"] == 1)
echo "<div id='event_control' style='display:none'>"; echo "<div id='event_control' style='display:none'>";
else else
echo "<div id='event_control' style='display:all'>"; echo "<div id='event_control' style='display:all'>";
// Table who separate control and graph // Table who separate control and graph
echo "<table width=99% cellpadding=0 cellspacing=2 border=0>"; echo "<table width=99% cellpadding=0 cellspacing=2 border=0>";
@ -224,24 +220,25 @@ echo "<tr>";
// Severity // Severity
echo "<td>".lang_string ("Severity")."</td>"; echo "<td>".lang_string ("Severity")."</td>";
echo "<td>"; echo "<td>";
echo form_priority ($severity, "severity", 1);
print_select (get_priorities (), "severity", $severity, '', 'all', '-1');
// Status // Status
echo "<td>".lang_string ("Event status")."</td>"; echo "<td>".lang_string ("Event status")."</td>";
echo "<td>"; echo "<td>";
echo "<select name='status' onChange='javascript:this.form.submit();'>"; echo "<select name='status' onChange='javascript:this.form.submit();'>";
if ($status == 1){ if ($status == 1){
echo "<option value=1>". lang_string ("Only validated"); echo "<option value=1>". lang_string ("Only validated");
echo "<option value=-1>". lang_string ("All event"); echo "<option value=-1>". lang_string ("All event");
echo "<option value=0>". lang_string ("Only pending"); echo "<option value=0>". lang_string ("Only pending");
} elseif ($status == 0) { } elseif ($status == 0) {
echo "<option value=0>". lang_string ("Only pending"); echo "<option value=0>". lang_string ("Only pending");
echo "<option value=1>". lang_string ("Only validated"); echo "<option value=1>". lang_string ("Only validated");
echo "<option value=-1>". lang_string ("All event"); echo "<option value=-1>". lang_string ("All event");
} elseif ($status == -1) { } elseif ($status == -1) {
echo "<option value=-1>". lang_string ("All event"); echo "<option value=-1>". lang_string ("All event");
echo "<option value=0>". lang_string ("Only pending"); echo "<option value=0>". lang_string ("Only pending");
echo "<option value=1>". lang_string ("Only validated"); echo "<option value=1>". lang_string ("Only validated");
} }
echo "</select></td>"; echo "</select></td>";
echo "<tr>"; echo "<tr>";
@ -275,23 +272,23 @@ $total_events = $row3[0];
// Show pagination header // Show pagination header
if ($total_events > 0){ if ($total_events > 0){
$offset = get_parameter ( "offset",0); $offset = get_parameter ( "offset",0);
pagination ($total_events, $url."&pure=".$config["pure"], $offset); pagination ($total_events, $url."&pure=".$config["pure"], $offset);
// Show data. // Show data.
echo "<br>"; echo "<br>";
echo "<br>"; echo "<br>";
if ($config["pure"] == 0) if ($config["pure"] == 0)
echo "<table cellpadding='4' cellspacing='4' width='765' class='databox'>"; echo "<table cellpadding='4' cellspacing='4' width='765' class='databox'>";
else else
echo "<table cellpadding='4' cellspacing='4' class='databox'>"; echo "<table cellpadding='4' cellspacing='4' class='databox'>";
echo "<tr>"; echo "<tr>";
echo "<th class=f9>".lang_string ("St")."</th>"; echo "<th class=f9>".lang_string ("St")."</th>";
echo "<th class=f9>".lang_string ("Type")."</th>"; echo "<th class=f9>".lang_string ("Type")."</th>";
echo "<th class=f9>".$lang_label["event_name"]."</th>"; echo "<th class=f9>".$lang_label["event_name"]."</th>";
echo "<th class=f9>".$lang_label["agent_name"]."</th>"; echo "<th class=f9>".$lang_label["agent_name"]."</th>";
echo "<th class=f9>".lang_string ("source")."</th>"; echo "<th class=f9>".lang_string ("source")."</th>";
echo "<th class=f9>".$lang_label["group"]."</th>"; echo "<th class=f9>".$lang_label["group"]."</th>";
echo "<th class=f9>".$lang_label["id_user"]."</th>"; echo "<th class=f9>".$lang_label["id_user"]."</th>";
echo "<th class=f9>".$lang_label["timestamp"]."</th>"; echo "<th class=f9>".$lang_label["timestamp"]."</th>";
echo "<th class=f9>".$lang_label["action"]."</th>"; echo "<th class=f9>".$lang_label["action"]."</th>";
@ -309,121 +306,121 @@ if ($total_events > 0){
if (give_acl($config["id_user"], $id_grupo, "AR") == 1){ // Only incident read access to view data ! if (give_acl($config["id_user"], $id_grupo, "AR") == 1){ // Only incident read access to view data !
$id_group = $row2["id_grupo"]; $id_group = $row2["id_grupo"];
switch ($row2["criticity"]) { switch ($row2["criticity"]) {
case 0: case 0:
$tdclass = "datos_blue"; $tdclass = "datos_blue";
break; break;
case 1: case 1:
$tdclass = "datos_grey"; $tdclass = "datos_grey";
break; break;
case 2: case 2:
$tdclass = "datos_green"; $tdclass = "datos_green";
break; break;
case 3: case 3:
$tdclass = "datos_yellow"; $tdclass = "datos_yellow";
break; break;
case 4: case 4:
$tdclass = "datos_red"; $tdclass = "datos_red";
break; break;
default: default:
$tdclass = "datos_grey"; $tdclass = "datos_grey";
} }
$criticity_label = return_priority ($row2["criticity"]); $criticity_label = return_priority ($row2["criticity"]);
// Colored box // Colored box
echo "<tr><td class='$tdclass' title='$criticity_label' align='center'>"; echo "<tr><td class='$tdclass' title='$criticity_label' align='center'>";
if ($row2["estado"] == 0) if ($row2["estado"] == 0)
echo "<img src='images/pixel_red.png' width=20 height=35>"; echo "<img src='images/pixel_red.png' width=20 height=35>";
else else
echo "<img src='images/pixel_green.png' width=20 height=35>"; echo "<img src='images/pixel_green.png' width=20 height=35>";
// Event type // Event type
echo "<td class='".$tdclass."' title='".$row2["event_type"]."'>"; echo "<td class='".$tdclass."' title='".$row2["event_type"]."'>";
switch ($row2["event_type"]){ switch ($row2["event_type"]){
case "unknown": case "unknown":
echo "<img src='images/err.png'>"; echo "<img src='images/err.png'>";
break; break;
case "alert_recovered": case "alert_recovered":
echo "<img src='images/error.png'>"; echo "<img src='images/error.png'>";
break; break;
case "alert_manual_validation": case "alert_manual_validation":
echo "<img src='images/eye.png'>"; echo "<img src='images/eye.png'>";
break; break;
case "monitor_up": case "monitor_up":
echo "<img src='images/lightbulb.png'>"; echo "<img src='images/lightbulb.png'>";
break; break;
case "monitor_down": case "monitor_down":
echo "<img src='images/lightbulb_off.png'>"; echo "<img src='images/lightbulb_off.png'>";
break; break;
case "alert_fired": case "alert_fired":
echo "<img src='images/bell.png'>"; echo "<img src='images/bell.png'>";
break; break;
case "system"; case "system";
echo "<img src='images/cog.png'>"; echo "<img src='images/cog.png'>";
break; break;
case "recon_host_detected"; case "recon_host_detected";
echo "<img src='images/network.png'>"; echo "<img src='images/network.png'>";
break; break;
case "new_agent"; case "new_agent";
echo "<img src='images/wand.png'>"; echo "<img src='images/wand.png'>";
break; break;
} }
// Event description // Event description
$event_title = safe_input ($row2["evento"]); $event_title = safe_input ($row2["evento"]);
echo "<td class='".$tdclass."f9' title='$event_title'>"; echo "<td class='".$tdclass."f9' title='$event_title'>";
echo substr($row2["evento"],0,45); echo substr($row2["evento"],0,45);
if (strlen($row2["evento"]) > 45) if (strlen($row2["evento"]) > 45)
echo ".."; echo "..";
if ($row2["id_agente"] > 0){ if ($row2["id_agente"] > 0) {
// Agent name // Agent name
$agent_name = dame_nombre_agente($row2["id_agente"]); $agent_name = dame_nombre_agente($row2["id_agente"]);
echo "<td class='".$tdclass."f9' title='$agent_name'><a href='$url&pure=".$config["pure"]."&id_agent=".$row2["id_agente"]."'><b>"; echo "<td class='".$tdclass."f9' title='$agent_name'><a href='$url&pure=".$config["pure"]."&id_agent=".$row2["id_agente"]."'><b>";
echo substr($agent_name, 0, 14); echo substr($agent_name, 0, 14);
if (strlen($agent_name) > 14) if (strlen($agent_name) > 14)
echo ".."; echo "..";
echo "</b></a>"; echo "</b></a>";
// Module name / Alert // Module name / Alert
echo "<td class='$tdclass'>"; echo "<td class='$tdclass'>";
if ($row2["id_agentmodule"] != 0) if ($row2["id_agentmodule"] != 0)
echo "<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$row2["id_agente"]."&tab=data'><img src='images/bricks.png' border=0></A>"; echo "<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$row2["id_agente"]."&tab=data'><img src='images/bricks.png' border=0></A>";
echo "&nbsp;"; echo "&nbsp;";
if ($row2["id_alert_am"] != 0) if ($row2["id_alert_am"] != 0)
echo "<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$row2["id_agente"]."&tab=alert'><img src='images/bell.png' border=0></a>"; echo "<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$row2["id_agente"]."&tab=alert'><img src='images/bell.png' border=0></a>";
// Group icon // Group icon
echo "<td class='$tdclass' align='center'><img src='images/groups_small/".show_icon_group($id_group).".png' class='bot'></td>"; echo "<td class='$tdclass' align='center'><img src='images/groups_small/".show_icon_group($id_group).".png' class='bot'></td>";
// for System or SNMP generated alerts // for System or SNMP generated alerts
} else { } else {
if ($row2["event_type"] == "system"){ if ($row2["event_type"] == "system") {
echo "<td class='$tdclass' colspan=3>".lang_string("System"); echo "<td class='$tdclass' colspan=3>".lang_string("System");
} else { } else {
echo "<td class='$tdclass' colspan=3>".$lang_label["alert"]."SNMP"; echo "<td class='$tdclass' colspan=3>".$lang_label["alert"]."SNMP";
} }
} }
// User who validated event // User who validated event
echo "<td class='$tdclass'>"; echo "<td class='$tdclass'>";
if ($row2["estado"] <> 0) if ($row2["estado"] <> 0)
echo "<a href='index.php?sec=usuario&sec2=operation/users/user_edit&ver=".$row2["id_usuario"]."'>".substr($row2["id_usuario"],0,8)."<a href='#' class='tip'> <span>".dame_nombre_real($row2["id_usuario"])."</span></a></a>"; echo "<a href='index.php?sec=usuario&sec2=operation/users/user_edit&ver=".$row2["id_usuario"]."'>".substr($row2["id_usuario"],0,8)."<a href='#' class='tip'> <span>".dame_nombre_real($row2["id_usuario"])."</span></a></a>";
// Timestamp // Timestamp
echo "<td class='".$tdclass."f9' title='".$row2["timestamp"]."'>"; echo "<td class='".$tdclass."f9' title='".$row2["timestamp"]."'>";
echo human_time_comparation($row2["timestamp"]); echo human_time_comparation($row2["timestamp"]);
// Several options grouped here // Several options grouped here
echo "<td class='$tdclass' align='right'>"; echo "<td class='$tdclass' align='right'>";
// Validate event // Validate event
if (($row2["estado"] == 0) and (give_acl($config["id_user"], $id_group,"IW") ==1)) if (($row2["estado"] == 0) and (give_acl($config["id_user"], $id_group,"IW") ==1))
echo "<a href='$url&check=".$row2["id_evento"]."&pure=".$config["pure"]."'><img src='images/ok.png' border='0'></a> "; echo "<a href='$url&check=".$row2["id_evento"]."&pure=".$config["pure"]."'><img src='images/ok.png' border='0'></a> ";
// Delete event // Delete event
if (give_acl($config["id_user"], $id_group,"IM") ==1) if (give_acl($config["id_user"], $id_group,"IM") ==1)
echo "<a href='$url&delete=".$row2["id_evento"]."&pure=".$config["pure"]."'><img src='images/cross.png' border=0></a> "; echo "<a href='$url&delete=".$row2["id_evento"]."&pure=".$config["pure"]."'><img src='images/cross.png' border=0></a> ";
// Create incident from this event // Create incident from this event
if (give_acl($config["id_user"], $id_group,"IW") == 1) if (give_acl($config["id_user"], $id_group,"IW") == 1)
echo "<a href='index.php?sec=incidencias&sec2=operation/incidents/incident_detail&insert_form&from_event=".$row2["id_evento"]."'><img src='images/page_lightning.png' border=0></a>"; echo "<a href='index.php?sec=incidencias&sec2=operation/incidents/incident_detail&insert_form&from_event=".$row2["id_evento"]."'><img src='images/page_lightning.png' border=0></a>";
// Checbox // Checbox
echo "<td class='$tdclass' align='center'>"; echo "<td class='$tdclass' align='center'>";
echo "<input type='checkbox' class='chk' name='eventid".$offset_counter."' value='".$row2["id_evento"]."'>"; echo "<input type='checkbox' class='chk' name='eventid".$offset_counter."' value='".$row2["id_evento"]."'>";
echo "</td></tr>"; echo "</td></tr>";
@ -438,21 +435,21 @@ if ($total_events > 0){
echo "<input class='sub delete' type='submit' name='deletebt' value='".$lang_label["delete"]."'>"; echo "<input class='sub delete' type='submit' name='deletebt' value='".$lang_label["delete"]."'>";
} }
echo "</form></table>"; echo "</form></table>";
echo "<table>"; echo "<table>";
echo "<tr>"; echo "<tr>";
echo "<td rowspan='4' class='f9' style='padding-left: 30px; line-height: 17px; vertical-align: top;'>"; echo "<td rowspan='4' class='f9' style='padding-left: 30px; line-height: 17px; vertical-align: top;'>";
echo "<h3>".$lang_label["status"]."</h3>"; echo "<h3>".$lang_label["status"]."</h3>";
echo "<img src='images/dot_green.png'> - ".$lang_label["validated_event"]; echo "<img src='images/dot_green.png'> - ".$lang_label["validated_event"];
echo "<br>"; echo "<br>";
echo "<img src='images/dot_red.png'> - ".$lang_label["not_validated_event"]; echo "<img src='images/dot_red.png'> - ".$lang_label["not_validated_event"];
echo "</td>"; echo "</td>";
echo "<td rowspan='4' class='f9' style='padding-left: 30px; line-height: 17px; vertical-align: top;'>"; echo "<td rowspan='4' class='f9' style='padding-left: 30px; line-height: 17px; vertical-align: top;'>";
echo "<h3>".$lang_label["action"]."</h3>"; echo "<h3>".$lang_label["action"]."</h3>";
echo "<img src='images/ok.png'> - ".$lang_label["validate_event"]; echo "<img src='images/ok.png'> - ".$lang_label["validate_event"];
echo "<br>"; echo "<br>";
echo "<img src='images/cross.png'> - ".$lang_label["delete_event"]; echo "<img src='images/cross.png'> - ".$lang_label["delete_event"];
echo "<br>"; echo "<br>";
echo "<img src='images/page_lightning.png'> - ".$lang_label["create_incident"]; echo "<img src='images/page_lightning.png'> - ".$lang_label["create_incident"];
echo "</td></tr></table>"; echo "</td></tr></table>";
} // no events to show } // no events to show
?> ?>

View File

@ -60,17 +60,17 @@ $resultado3=mysql_query($sql3);
if (isset($_GET["nuevo_mensaje"])){ if (isset($_GET["nuevo_mensaje"])){
// Create message // Create message
$usuario_destino = give_parameter_post ("u_destino"); $usuario_destino = get_parameter ("u_destino");
$subject = give_parameter_post ("subject"); $subject = get_parameter ("subject");
$mensaje = give_parameter_post ("mensaje"); $mensaje = get_parameter ("mensaje");
create_message($iduser, $usuario_destino, $subject, $mensaje); create_message($iduser, $usuario_destino, $subject, $mensaje);
} }
if (isset($_GET["nuevo_mensaje_g"])){ if (isset($_GET["nuevo_mensaje_g"])){
// Create message to groups // Create message to groups
$grupo_destino = give_parameter_post ("g_destino"); $grupo_destino = get_parameter ("g_destino");
$subject = give_parameter_post ("subject"); $subject = get_parameter ("subject");
$mensaje = give_parameter_post ("mensaje"); $mensaje = get_parameter ("mensaje");
$sql= 'SELECT id_usuario FROM tusuario_perfil WHERE id_grupo ='. $grupo_destino; $sql= 'SELECT id_usuario FROM tusuario_perfil WHERE id_grupo ='. $grupo_destino;
$result = mysql_query($sql); $result = mysql_query($sql);

View File

@ -29,48 +29,38 @@ if (comprueba_login() != 0) {
//echo "SLA for Tato: %".return_module_SLA (50, 604800, 1, 1); //echo "SLA for Tato: %".return_module_SLA (50, 604800, 1, 1);
echo "<h2>".$lang_label["reporting"]." &gt; "; echo "<h2>".lang_string ('reporting')." &gt; ";
echo $lang_label["custom_reporting"]."</h2>"; echo lang_string ('custom_reporting')."</h2>";
$color=1; $reports = get_reports ($config['id_user']);
$sql="SELECT * FROM treport";
$res=mysql_query($sql);
if (mysql_num_rows($res)) {
echo "<table width='580' cellpadding=4 cellpadding=4 class='databox'>";
echo "<tr>
<th>".$lang_label["report_name"]."</th>
<th>".$lang_label["description"]."</th>
<th>HTML</th>
<th>PDF</th>
</tr>";
while ($row = mysql_fetch_array($res)){ if (sizeof ($reports) == 0) {
if (($row["private"]==0) || ($row["id_user"] == $id_user)){
// Calculate table line color
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
echo "<tr>";
echo "<td valign='top' class='$tdcolor'>".$row["name"]."</td>";
echo "<td class='$tdcolor'>".$row["description"]."</td>";
$id_report = $row["id_report"];
echo "<td valign='middle' class='$tdcolor' align='center'>
<a href='index.php?sec=reporting&sec2=operation/reporting/reporting_viewer&id=$id_report'>
<img src='images/reporting.png'></a>
</td>";
echo "<td valign='middle' class='$tdcolor' align='center'><a target='_new' href='operation/reporting/reporting_viewer_pdf.php?id=$id_report&rtype=general'><img src='images/pdf.png'></a></td>'";
echo "</tr>";
}
}
echo "</table>";
} else {
echo "<div class='nf'>".$lang_label["no_reporting_def"]."</div>"; echo "<div class='nf'>".$lang_label["no_reporting_def"]."</div>";
return;
} }
$table->width = '580px';
$table->head = array ();
$table->head[0] = lang_string ('report_name');
$table->head[1] = lang_string ('description');
$table->head[2] = lang_string ('HTML');
$table->head[3] = lang_string ('PDF');
$table->align = array ();
$table->align[2] = 'center';
$table->align[3] = 'center';
$table->data = array ();
foreach ($reports as $report) {
$data = array ();
$data[0] = $report['name'];
$data[1] = $report['description'];
$data[2] = '<a href="index.php?sec=reporting&sec2=operation/reporting/reporting_viewer&id='.$report['id_report'].'">
<img src="images/reporting.png"></a>';
$data[3] = '<a href="operation/reporting/reporting_viewer_pdf.php?id='.$report['id_report'].'&rtype=general"
target="_new"><img src="images/pdf.png"></a>';
array_push ($table->data, $data);
}
print_table ($table);
?> ?>

View File

@ -184,7 +184,8 @@ foreach ($contents as $content) {
$n = array_push ($table->data, $data); $n = array_push ($table->data, $data);
$table->rowclass[$n - 1] = 'datos3'; $table->rowclass[$n - 1] = 'datos3';
$slas = get_db_all_rows_field_filter ('treport_content_sla_combined', 'id_report_content', $content['id_rc']); $slas = get_db_all_rows_field_filter ('treport_content_sla_combined',
'id_report_content', $content['id_rc']);
if (sizeof ($slas) == 0) { if (sizeof ($slas) == 0) {
$data = array (); $data = array ();
$table->colspan[$n][0] = 3; $table->colspan[$n][0] = 3;
@ -193,21 +194,28 @@ foreach ($contents as $content) {
} }
foreach ($slas as $sla) { foreach ($slas as $sla) {
$data = array (); $data = array ();
$sla_result = format_numeric (return_module_SLA ($sla['id_agent_module'], $content['period'],
$sla['sla_min'], $sla['sla_max'], $datetime));
$table->colspan[$n][0] = 2;
$table->data[0] = '<span style="font-size: 0.6em">';
$table->data[0] .= lang_string ('sla_max')." : ".$sla['sla_max']."<br>";
$table->data[0] .= lang_string ('sla_min')." : ".$sla['sla_min']."<br>";
$table->data[0] .= lang_string ('sla_limit')." : ".$sla['sla_limit']."<br>";
$table->data[0] .= "</span>";
if ($sla_result >= $sla['sla_limit']) $table->colspan[$n][0] = 2;
$table->data[1] = "<span style='font: bold 3em Arial, Sans-serif; color: #000000;'>"; $data[0] = '<span style="font-size: 0.6em">';
else $data[0] .= lang_string ('sla_max')." : ".$sla['sla_max']."<br>";
$table->data[1] = "<span style='font: bold 3em Arial, Sans-serif; color: #ff0000;'>"; $data[0] .= lang_string ('sla_min')." : ".$sla['sla_min']."<br>";
$table->data[1] .= $sla_result. " %"; $data[0] .= lang_string ('sla_limit')." : ".$sla['sla_limit']."<br>";
$table->data[1] .= "</span>"; $data[0] .= "</span>";
$sla_value = return_module_SLA ($sla['id_agent_module'], $content['period'],
$sla['sla_min'], $sla['sla_max'], $datetime);
if ($sla_value === false) {
$data[1] = '<span style="font: bold 3em Arial, Sans-serif; color: #0000FF;">';
$data[1] .= lang_string ('unknown');
} else {
if ($sla_value >= $sla['sla_limit'])
$data[1] = '<span style="font: bold 3em Arial, Sans-serif; color: #000000;">';
else
$data[1] = '<span style="font: bold 3em Arial, Sans-serif; color: #ff0000;">';
$data[1] .= format_numeric ($sla_value). " %";
}
$data[1] .= "</span>";
$n = array_push ($table->data, $data); $n = array_push ($table->data, $data);
} }

View File

@ -51,7 +51,7 @@ if ((give_acl($id_user,0,"AR") != 1 ) AND (dame_admin($id_user)!=1)) {
} }
$id_report = give_parameter_get ( 'id', $default = ""); $id_report = get_parameter ('id');
if ($id_report == ""){ if ($id_report == ""){
audit_db($id_user,$REMOTE_ADDR, "HACK Attempt","Trying to access graph viewer withoud ID"); audit_db($id_user,$REMOTE_ADDR, "HACK Attempt","Trying to access graph viewer withoud ID");
include ("general/noaccess.php"); include ("general/noaccess.php");

View File

@ -20,86 +20,261 @@
// Load global vars // Load global vars
require("include/config.php"); require("include/config.php");
if (give_acl($id_user, 0, "LW")==1) { if (! give_acl($id_user, 0, "LW")) {
// Variable init audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access SNMP Alert Management");
$view_alert=1; require ("general/noaccess.php");
$alert_add = 0; }
$alert_update=0; // Variable init
$alert_submit=0; $view_alert=1;
$alert_add = 0;
$alert_update=0;
$alert_submit=0;
$id_as = ""; $id_as = "";
$id_alert = ""; $id_alert = "";
$nombre_alerta = ""; $nombre_alerta = "";
$alert_type = ""; $alert_type = "";
$agent = ""; $agent = "";
$description = ""; $description = "";
$oid = ""; $oid = "";
$custom_oid = ""; $custom_oid = "";
$time_threshold = ""; $time_threshold = "";
$al_field1 = ""; $al_field1 = "";
$al_field2 = ""; $al_field2 = "";
$al_field3 = ""; $al_field3 = "";
$last_fired = ""; $last_fired = "";
$max_alerts = ""; $max_alerts = "";
$min_alerts = ""; $min_alerts = "";
$priority = ""; $priority = "";
// Alert Delete // Alert Delete
// ============= // =============
if (isset($_GET["delete_alert"])){ // Delete alert if (isset($_GET["delete_alert"])){ // Delete alert
$alert_delete = $_GET["delete_alert"]; $alert_delete = $_GET["delete_alert"];
$sql1='DELETE FROM talert_snmp WHERE id_as = '.$alert_delete; $sql1='DELETE FROM talert_snmp WHERE id_as = '.$alert_delete;
$result=mysql_query($sql1); $result=mysql_query($sql1);
if (!$result)
echo "<h3 class='error'>".$lang_label["delete_alert_no"]."</h3>";
else
echo "<h3 class='suc'>".$lang_label["delete_alert_ok"]."</h3>";
}
// Alert submit (for insert or update)
if (isset($_GET["submit"])){
$alert_submit=1;
$create = entrada_limpia($_POST["create"]);
$update = entrada_limpia($_POST["update"]);
$id_as = entrada_limpia($_POST["id_as"]);
$max = entrada_limpia($_POST["max"]);
$min = entrada_limpia($_POST["min"]);
$time = entrada_limpia($_POST["time"]);
$description = entrada_limpia($_POST["description"]);
$oid = entrada_limpia($_POST["oid"]);
$agent = entrada_limpia($_POST["agent"]);
$custom = entrada_limpia($_POST["custom"]);
$alert_id = entrada_limpia($_POST["alert_id"]);
$alert_type = entrada_limpia($_POST["alert_type"]);
$field1 = entrada_limpia($_POST["field1"]);
$field2 = entrada_limpia($_POST["field2"]);
$field3 = entrada_limpia($_POST["field3"]);
$priority = get_parameter ("priority",0);
if ($create == 1){
$sql = "INSERT INTO talert_snmp (id_alert,al_field1,al_field2,al_field3,description,alert_type,agent,custom_oid,oid,time_threshold,max_alerts,min_alerts, priority) VALUES ($alert_id,'$field1','$field2','$field3','$description', $alert_type, '$agent', '$custom', '$oid', $time, $max, $min, $priority)";
$result=mysql_query($sql);
if (!$result) if (!$result)
echo "<h3 class='error'>".$lang_label["delete_alert_no"]."</h3>"; echo "<h3 class='error'>".$lang_label["create_alert_no"]."</h3>";
else else
echo "<h3 class='suc'>".$lang_label["delete_alert_ok"]."</h3>"; echo "<h3 class='suc'>".$lang_label["create_alert_ok"]."</h3>";
} else {
$sql = "UPDATE talert_snmp set priority = $priority, id_alert= $alert_id, al_field1 = '$field1', al_field2 = '$field2', al_field3 = '$field3', description = '$description', alert_type = $alert_type, agent = '$agent', custom_oid = '$custom', oid = '$oid', time_threshold = $time, max_alerts = '$max', min_alerts = '$min' WHERE id_as = $id_as";
$result=mysql_query($sql);
if (!$result)
echo "<h3 class='error'>".$lang_label["update_alert_no"]."</h3>";
else
echo "<h3 class='suc'>".$lang_label["create_alert_ok"]."</h3>";
} }
// Alert submit (for insert or update)
if (isset($_GET["submit"])){
$alert_submit=1;
$create = entrada_limpia($_POST["create"]);
$update = entrada_limpia($_POST["update"]);
$id_as = entrada_limpia($_POST["id_as"]);
$max = entrada_limpia($_POST["max"]);
$min = entrada_limpia($_POST["min"]);
$time = entrada_limpia($_POST["time"]);
$description = entrada_limpia($_POST["description"]);
$oid = entrada_limpia($_POST["oid"]);
$agent = entrada_limpia($_POST["agent"]);
$custom = entrada_limpia($_POST["custom"]);
$alert_id = entrada_limpia($_POST["alert_id"]);
$alert_type = entrada_limpia($_POST["alert_type"]);
$field1 = entrada_limpia($_POST["field1"]);
$field2 = entrada_limpia($_POST["field2"]);
$field3 = entrada_limpia($_POST["field3"]);
$priority = get_parameter ("priority",0);
if ($create == 1){
$sql = "INSERT INTO talert_snmp (id_alert,al_field1,al_field2,al_field3,description,alert_type,agent,custom_oid,oid,time_threshold,max_alerts,min_alerts, priority) VALUES ($alert_id,'$field1','$field2','$field3','$description', $alert_type, '$agent', '$custom', '$oid', $time, $max, $min, $priority)";
$result=mysql_query($sql);
if (!$result)
echo "<h3 class='error'>".$lang_label["create_alert_no"]."</h3>";
else
echo "<h3 class='suc'>".$lang_label["create_alert_ok"]."</h3>";
} else {
$sql = "UPDATE talert_snmp set priority = $priority, id_alert= $alert_id, al_field1 = '$field1', al_field2 = '$field2', al_field3 = '$field3', description = '$description', alert_type = $alert_type, agent = '$agent', custom_oid = '$custom', oid = '$oid', time_threshold = $time, max_alerts = '$max', min_alerts = '$min' WHERE id_as = $id_as";
$result=mysql_query($sql);
if (!$result)
echo "<h3 class='error'>".$lang_label["update_alert_no"]."</h3>";
else
echo "<h3 class='suc'>".$lang_label["create_alert_ok"]."</h3>";
}
}
// Alert update: (first, load data used in form), later use insert/add form
// ============
if (isset($_GET["update_alert"])){
$alert_update = $_GET["update_alert"];
$sql1='SELECT * FROM talert_snmp WHERE id_as = '.$alert_update;
$result=mysql_query($sql1);
if ($row=mysql_fetch_array($result)){
$id_as = $row["id_as"];
$id_alert = $row["id_alert"];
$nombre_alerta = dame_nombre_alerta($id_alert);
$alert_type = $row["alert_type"];
$agent = $row["agent"];
$description = $row["description"];
$oid = $row["oid"];
$custom_oid = $row["custom_oid"];
$time_threshold = $row["time_threshold"];
$al_field1 = $row["al_field1"];
$al_field2 = $row["al_field2"];
$al_field3 = $row["al_field3"];
$last_fired = $row["last_fired"];
$max_alerts = $row["max_alerts"];
$min_alerts = $row["min_alerts"];
$priority = $row["priority"];
} }
// Alert update: (first, load data used in form), later use insert/add form }
// ============ if (isset($_POST["add_alert"])){
if (isset($_GET["update_alert"])){ $alert_add = 1;
$alert_update = $_GET["update_alert"]; }
$sql1='SELECT * FROM talert_snmp WHERE id_as = '.$alert_update; echo "<h2>Pandora SNMP &gt; ";
$result=mysql_query($sql1); // Add alert form
if ($row=mysql_fetch_array($result)){ if (($alert_update != 0) || ($alert_add == 1)) {
if ($alert_update != 0) {
echo $lang_label["update_alert"]."</h2>";
} else {
echo $lang_label["create_alert"]."</h2>";
}
echo '<form name="agente" method="post" action="index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert&submit=1">';
echo '<input type="hidden" name="id_as" value="'.$id_as.'">'; // if known, if add will be undetermined (0).
echo '<table cellpadding="4" cellspacing="4" width="650" class="databox_color">';
// Alert
echo '<tr><td class=datos>'.$lang_label["alert"].'<td class=datos><select name="alert_id">';
if ($alert_update != 0) { // calculate first item
$sql0='SELECT * FROM talerta WHERE id_alerta = '.$id_alert;
$result0=mysql_query($sql0);
$row0=mysql_fetch_array($result0);
echo "<option value='".$row0["id_alerta"]."'>".$row0["nombre"]."</option>";
}
$sql1='SELECT * FROM talerta';
$result1=mysql_query($sql1);
while ($row1=mysql_fetch_array($result1)){
echo "<option value='".$row1["id_alerta"]."'>".$row1["nombre"]."</option>";
}
echo "</select>";
// Alert type
echo '<tr><td class="datos2">'.$lang_label["alert_type"];
echo '<td class="datos2"><select name="alert_type">';
if ($alert_type == 0) {
echo '
<option value=0>OID</option>
<option value=1>CustomOID/Value</option>
<option value=2>SNMPAgent</option>';
} elseif ($alert_type == 1) {
echo '
<option value=1>CustomOID/Value</option>
<option value=0>OID</option>
<option value=2>SNMPAgent</option>';
} else {
echo '
<option value=2>SNMPAgent</option>
<option value=0>OID</option>
<option value=1>CustomOID/Value</option>';
}
echo '</select></td></tr>';
// Description
echo '<tr><td class=datos>'.$lang_label["description"].'</td>';
echo '<td class=datos><input type="text" size=60 name="description" value="'.$description.'">';
// OID
echo '<tr><td class="datos2">'.$lang_label["OID"].'</td>';
echo '<td class="datos2"><input type="text" size=30 name="oid" value="'.$oid.'">';
// OID Custom
echo '<tr><td class=datos>'.$lang_label["customvalue"].'</td>';
echo '<td class=datos><input type="text" size=30 name="custom" value="'.$custom_oid.'">';
// SNMP Agent
echo '<tr><td class="datos2">'.$lang_label["SNMP_agent"].' IP</td>';
echo '<td class="datos2"><input type="text" size=30 name="agent" value="'.$agent.'">';
// Alert fields
echo '<tr><td class=datos>'.$lang_label["field1"].'</td>';
echo '<td class=datos><input type="text" size=30 name="field1" value="'.$al_field1.'"></td>';
echo '<tr><td class="datos2">'.$lang_label["field2"].'</td>';
echo '<td class="datos2"><input type="text" size=40 name="field2" value="'.$al_field2.'"></td>';
echo '<tr><td class=datos valign="top">'.$lang_label["field3"];
echo '<td class=datos><textarea rows=4 style="width:400px" name="field3">'.$al_field3.'</textarea>';
// Max / Min alerts
echo '<tr>
<td class="datos2">'.$lang_label["min_alerts"].'</td>';
echo '<td class="datos2"><input type="text" size=3 name="min" value="'.$min_alerts.'"></td>';
echo '<tr>
<td class="datos">'.$lang_label["max_alerts"].'</td>';
echo '<td class=datos><input type="text" size=3 name="max" value="'.$max_alerts.'"></td>';
// Time THreshold
echo '<tr>
<td class="datos2">'.$lang_label["time_threshold"].'</td>';
echo '<td class="datos2">';
echo '<select name="time" style="margin-right: 60px;">';
if ($time_threshold != ""){
echo "<option value='".$time_threshold."'>".human_time_description($time_threshold)."</option>";
}
echo '<option value=300>5 Min.</option>
<option value=600>10 Min.</option>
<option value=900>15 Min.</option>
<option value=1800>30 Min.</option>
<option value=3600>1 Hour</option>
<option value=7200>2 Hour</option>
<option value=18000>5 Hour</option>
<option value=43200>12 Hour</option>
<option value=86400>1 Day</option>
<option value=604800>1 Week</option>
<option value=-1>Other value</option>
</select>';
// Priority
echo '<tr><td class="datos">'.lang_string("Priority");
echo '<td class="datos">';
echo form_priority ($priority);
echo '</tr></table>';
echo '<table cellpadding="4" cellspacing="4" width="650">
<tr><td align="right">';
// Update or Add button
if ($alert_update != 0) {
echo '<input name="uptbutton" type="submit" class="sub upd" value="'.$lang_label["update"].'">';
echo "<input type='hidden' name='update' value='1'>";
echo "<input type='hidden' name='create' value='0'>";
} else {
echo '<input name="createbutton" type="submit" class="sub next" value="'.$lang_label["create"].'">';
echo "<input type='hidden' name='update' value='0'>";
echo "<input type='hidden' name='create' value='1'>";
}
// Endtable
echo "</td></tr></table>";
$view_alert =0; // Do not show alert list
}
if ($view_alert == 1) { // View alerts defined on SNMP traps
$sql1='SELECT * FROM talert_snmp';
$result=mysql_query($sql1);
echo $lang_label["snmp_assigned_alerts"]."</h2>";
if (mysql_num_rows($result)){
echo '<table cellpadding="4" cellspacing="4" width="750" class="databox">';
echo '<tr><th>'.$lang_label["alert"]."</th>";
echo '<th width=75>'.$lang_label["alert_type"]."</th>";
echo '<th>'.$lang_label["SNMP_agent"]."</th>";
echo '<th>'.$lang_label["OID"]."</th>";
echo '<th>'.$lang_label["customvalue"]."</th>";
echo '<th>'.$lang_label["description"]."</th>";
echo '<th>'.$lang_label["times_fired"]."</th>";
echo '<th>'.$lang_label["last_fired"]."</th>";
echo '<th width="50">'.$lang_label["action"]."</th>";
$color=1;
while ($row=mysql_fetch_array($result)){
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
$id_as = $row["id_as"]; $id_as = $row["id_as"];
$id_alert = $row["id_alert"]; $id_alert = $row["id_alert"];
$nombre_alerta = dame_nombre_alerta($id_alert); $nombre_alerta = dame_nombre_alerta($id_alert);
@ -113,253 +288,75 @@ if (give_acl($id_user, 0, "LW")==1) {
$al_field2 = $row["al_field2"]; $al_field2 = $row["al_field2"];
$al_field3 = $row["al_field3"]; $al_field3 = $row["al_field3"];
$last_fired = $row["last_fired"]; $last_fired = $row["last_fired"];
$times_fired = $row["times_fired"];
$max_alerts = $row["max_alerts"]; $max_alerts = $row["max_alerts"];
$min_alerts = $row["min_alerts"]; $min_alerts = $row["min_alerts"];
$priority = $row["priority"];
}
}
if (isset($_POST["add_alert"])){
$alert_add = 1;
}
echo "<h2>Pandora SNMP &gt; ";
// Add alert form
if (($alert_update != 0) || ($alert_add == 1)) {
if ($alert_update != 0) { echo "<tr><td class='$tdcolor'>";
echo $lang_label["update_alert"]."</h2>"; echo $nombre_alerta;
} else { echo "</td><td class='$tdcolor'>";
echo $lang_label["create_alert"]."</h2>"; if ($alert_type == 0) {
} $tipo_alerta = $lang_label["OID"];
echo '<form name="agente" method="post" action="index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert&submit=1">'; } elseif ($alert_type == 1) {
echo '<input type="hidden" name="id_as" value="'.$id_as.'">'; // if known, if add will be undetermined (0). $tipo_alerta = $lang_label["customvalue"];
echo '<table cellpadding="4" cellspacing="4" width="650" class="databox_color">'; } elseif ($alert_type == 2) {
// Alert $tipo_alerta = $lang_label["SNMP_agent"];
echo '<tr><td class=datos>'.$lang_label["alert"].'<td class=datos><select name="alert_id">'; } else {
if ($alert_update != 0) { // calculate first item $tipo_alerta = "N/A";
$sql0='SELECT * FROM talerta WHERE id_alerta = '.$id_alert; }
$result0=mysql_query($sql0); echo $tipo_alerta;
$row0=mysql_fetch_array($result0); echo "</td><td class='$tdcolor'>";
echo "<option value='".$row0["id_alerta"]."'>".$row0["nombre"]."</option>"; if ($alert_type == 2) {
} echo $agent;
$sql1='SELECT * FROM talerta'; } else {
$result1=mysql_query($sql1); echo "N/A";
while ($row1=mysql_fetch_array($result1)){
echo "<option value='".$row1["id_alerta"]."'>".$row1["nombre"]."</option>";
}
echo "</select>";
// Alert type
echo '<tr><td class="datos2">'.$lang_label["alert_type"];
echo '<td class="datos2"><select name="alert_type">';
if ($alert_type == 0) {
echo '
<option value=0>OID</option>
<option value=1>CustomOID/Value</option>
<option value=2>SNMPAgent</option>';
} elseif ($alert_type == 1) {
echo '
<option value=1>CustomOID/Value</option>
<option value=0>OID</option>
<option value=2>SNMPAgent</option>';
} else {
echo '
<option value=2>SNMPAgent</option>
<option value=0>OID</option>
<option value=1>CustomOID/Value</option>';
}
echo '</select></td></tr>';
// Description
echo '<tr><td class=datos>'.$lang_label["description"].'</td>';
echo '<td class=datos><input type="text" size=60 name="description" value="'.$description.'">';
// OID
echo '<tr><td class="datos2">'.$lang_label["OID"].'</td>';
echo '<td class="datos2"><input type="text" size=30 name="oid" value="'.$oid.'">';
// OID Custom
echo '<tr><td class=datos>'.$lang_label["customvalue"].'</td>';
echo '<td class=datos><input type="text" size=30 name="custom" value="'.$custom_oid.'">';
// SNMP Agent
echo '<tr><td class="datos2">'.$lang_label["SNMP_agent"].' IP</td>';
echo '<td class="datos2"><input type="text" size=30 name="agent" value="'.$agent.'">';
// Alert fields
echo '<tr><td class=datos>'.$lang_label["field1"].'</td>';
echo '<td class=datos><input type="text" size=30 name="field1" value="'.$al_field1.'"></td>';
echo '<tr><td class="datos2">'.$lang_label["field2"].'</td>';
echo '<td class="datos2"><input type="text" size=40 name="field2" value="'.$al_field2.'"></td>';
echo '<tr><td class=datos valign="top">'.$lang_label["field3"];
echo '<td class=datos><textarea rows=4 style="width:400px" name="field3">'.$al_field3.'</textarea>';
// Max / Min alerts
echo '<tr>
<td class="datos2">'.$lang_label["min_alerts"].'</td>';
echo '<td class="datos2"><input type="text" size=3 name="min" value="'.$min_alerts.'"></td>';
echo '<tr>
<td class="datos">'.$lang_label["max_alerts"].'</td>';
echo '<td class=datos><input type="text" size=3 name="max" value="'.$max_alerts.'"></td>';
// Time THreshold
echo '<tr>
<td class="datos2">'.$lang_label["time_threshold"].'</td>';
echo '<td class="datos2">';
echo '<select name="time" style="margin-right: 60px;">';
if ($time_threshold != ""){
echo "<option value='".$time_threshold."'>".human_time_description($time_threshold)."</option>";
}
echo '
<option value=300>5 Min.</option>
<option value=600>10 Min.</option>
<option value=900>15 Min.</option>
<option value=1800>30 Min.</option>
<option value=3600>1 Hour</option>
<option value=7200>2 Hour</option>
<option value=18000>5 Hour</option>
<option value=43200>12 Hour</option>
<option value=86400>1 Day</option>
<option value=604800>1 Week</option>
<option value=-1>Other value</option>
</select>';
// Priority
echo '<tr><td class="datos">'.lang_string("Priority");
echo '<td class="datos">';
echo form_priority ($priority);
echo '</tr></table>';
echo '<table cellpadding="4" cellspacing="4" width="650">
<tr><td align="right">';
// Update or Add button
if ($alert_update != 0) {
echo '<input name="uptbutton" type="submit" class="sub upd" value="'.$lang_label["update"].'">';
echo "<input type='hidden' name='update' value='1'>";
echo "<input type='hidden' name='create' value='0'>";
} else {
echo '<input name="createbutton" type="submit" class="sub next" value="'.$lang_label["create"].'">';
echo "<input type='hidden' name='update' value='0'>";
echo "<input type='hidden' name='create' value='1'>";
}
// Endtable
echo "</td></tr></table>";
$view_alert =0; // Do not show alert list
}
if ($view_alert == 1) { // View alerts defined on SNMP traps
$sql1='SELECT * FROM talert_snmp';
$result=mysql_query($sql1);
echo $lang_label["snmp_assigned_alerts"]."</h2>";
if (mysql_num_rows($result)){
echo '<table cellpadding="4" cellspacing="4" width="750" class="databox">';
echo '<tr><th>'.$lang_label["alert"]."</th>";
echo '<th width=75>'.$lang_label["alert_type"]."</th>";
echo '<th>'.$lang_label["SNMP_agent"]."</th>";
echo '<th>'.$lang_label["OID"]."</th>";
echo '<th>'.$lang_label["customvalue"]."</th>";
echo '<th>'.$lang_label["description"]."</th>";
echo '<th>'.$lang_label["times_fired"]."</th>";
echo '<th>'.$lang_label["last_fired"]."</th>";
echo '<th width="50">'.$lang_label["action"]."</th>";
$color=1;
while ($row=mysql_fetch_array($result)){
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
$id_as = $row["id_as"];
$id_alert = $row["id_alert"];
$nombre_alerta = dame_nombre_alerta($id_alert);
$alert_type = $row["alert_type"];
$agent = $row["agent"];
$description = $row["description"];
$oid = $row["oid"];
$custom_oid = $row["custom_oid"];
$time_threshold = $row["time_threshold"];
$al_field1 = $row["al_field1"];
$al_field2 = $row["al_field2"];
$al_field3 = $row["al_field3"];
$last_fired = $row["last_fired"];
$times_fired = $row["times_fired"];
$max_alerts = $row["max_alerts"];
$min_alerts = $row["min_alerts"];
echo "<tr><td class='$tdcolor'>";
echo $nombre_alerta;
echo "</td><td class='$tdcolor'>";
if ($alert_type == 0) {
$tipo_alerta = $lang_label["OID"];
} elseif ($alert_type == 1) {
$tipo_alerta = $lang_label["customvalue"];
} elseif ($alert_type == 2) {
$tipo_alerta = $lang_label["SNMP_agent"];
} else {
$tipo_alerta = "N/A";
}
echo $tipo_alerta;
echo "</td><td class='$tdcolor'>";
if ($alert_type == 2) {
echo $agent;
} else {
echo "N/A";
}
echo "</td><td class='$tdcolor'>";
if ($alert_type == 0) {
echo $oid;
} else {
echo "N/A";
}
echo "</td><td class='$tdcolor'>";
if ($alert_type == 1) {
echo $custom_oid;
} else {
echo "N/A";
}
echo "</td><td class='$tdcolor'>";
echo $description;
echo "</td><td class='$tdcolor'>";
echo $times_fired;
echo "</td><td class='$tdcolor'>";
if ($last_fired != "0000-00-00 00:00:00")
echo $last_fired;
else
echo $lang_label["never"];
echo "</td><td class='$tdcolor'>";
echo "<a href='index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert&delete_alert=".$id_as."'>
<img src='images/cross.png' border=0 alt='".$lang_label["delete"]."'></b></a> &nbsp; ";
echo "<a href='index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert&update_alert=".$id_as."'>
<img src='images/config.png' border=0 alt='".$lang_label["update"]."'></b></a></td></tr>";
} }
echo "</table>";
echo "<table width='750px'>";
echo "<tr><td align='right'>";
echo '<form name="agente" method="post" action="index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert">';
echo '<input name="add_alert" type="submit" class="sub next" value="'.$lang_label["create"].'">';
echo "</form>";
echo "</td></tr></table>";
} else {
echo "<div class='nf'>".$lang_label["no_snmp_alert"]."</div>";
echo "<br>";
echo '<form name="agente" method="post" action="index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert">';
echo '<input name="add_alert" type="submit" class="sub next" value="'.$lang_label["create"].'">';
echo "</form>";
} // End of view snmp alert
}
} else {
audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access SNMP Alert Management");
require ("general/noaccess.php");
}
echo "</td><td class='$tdcolor'>";
if ($alert_type == 0) {
echo $oid;
} else {
echo "N/A";
}
echo "</td><td class='$tdcolor'>";
if ($alert_type == 1) {
echo $custom_oid;
} else {
echo "N/A";
}
echo "</td><td class='$tdcolor'>";
echo $description;
echo "</td><td class='$tdcolor'>";
echo $times_fired;
echo "</td><td class='$tdcolor'>";
if ($last_fired != "0000-00-00 00:00:00")
echo $last_fired;
else
echo $lang_label["never"];
echo "</td><td class='$tdcolor'>";
echo "<a href='index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert&delete_alert=".$id_as."'>
<img src='images/cross.png' border=0 alt='".$lang_label["delete"]."'></b></a> &nbsp; ";
echo "<a href='index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert&update_alert=".$id_as."'>
<img src='images/config.png' border=0 alt='".$lang_label["update"]."'></b></a></td></tr>";
}
echo "</table>";
echo "<table width='750px'>";
echo "<tr><td align='right'>";
echo '<form name="agente" method="post" action="index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert">';
echo '<input name="add_alert" type="submit" class="sub next" value="'.$lang_label["create"].'">';
echo "</form>";
echo "</td></tr></table>";
} else {
echo "<div class='nf'>".$lang_label["no_snmp_alert"]."</div>";
echo "<br>";
echo '<form name="agente" method="post" action="index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_alert">';
echo '<input name="add_alert" type="submit" class="sub next" value="'.$lang_label["create"].'">';
echo "</form>";
} // End of view snmp alert
}
?> ?>
<tr> <tr>
</table> </table>

View File

@ -61,7 +61,7 @@ if (comprueba_login() == 0) {
//echo "<br>DEBUG for ".$nombre; //echo "<br>DEBUG for ".$nombre;
//echo "<br>Comments:".$comentarios; //echo "<br>Comments:".$comentarios;
$comentarios = entrada_limpia($_POST["comentarios"]); $comentarios = entrada_limpia($_POST["comentarios"]);
if (dame_password($nombre)!=$pass1){ if (get_user_password($nombre)!=$pass1){
// Only when change password // Only when change password
$pass1=md5($pass1); $pass1=md5($pass1);
$sql = "UPDATE tusuario SET nombre_real = '".$nombre_real."', password = '".$pass1."', telefono ='".$telefono."', direccion ='".$direccion." ', comentarios = '".$comentarios."' WHERE id_usuario = '".$nombre."'"; $sql = "UPDATE tusuario SET nombre_real = '".$nombre_real."', password = '".$pass1."', telefono ='".$telefono."', direccion ='".$direccion." ', comentarios = '".$comentarios."' WHERE id_usuario = '".$nombre."'";

View File

@ -1363,7 +1363,6 @@ function graph_event_module ($width = 300, $height = 200, $id_agent) {
} }
} }
$max_items = 6; $max_items = 6;
// Take only the first x items // Take only the first x items
if (sizeof($data) >= $max_items) { if (sizeof($data) >= $max_items) {