".__('Pandora Agents')." > ".__('Summary').""; // Show group selector (POST) if (isset($_POST["ag_group"])){ $ag_group = $_POST["ag_group"]; echo "
"; } else { echo ""; } echo ""; echo ""; echo "
".__('Group').""; $groups = get_user_groups (); print_select ($groups, 'ag_group', $ag_group, 'this.form.submit()', '', ''); echo " "; echo __('Free text for search (*)'); echo ""; echo "
"; echo ""; echo "
"; echo ""; echo ""; echo "
"; if ($search != ""){ $search_sql = " AND nombre LIKE '%$search%' OR direccion LIKE '%$search%' "; } else { $search_sql = ""; } // Show only selected groups if ($ag_group > 1){ $sql="SELECT * FROM tagente WHERE id_grupo=$ag_group AND disabled = 0 $search_sql ORDER BY nombre LIMIT $offset, ".$config["block_size"]; $sql2="SELECT COUNT(id_agente) FROM tagente WHERE id_grupo=$ag_group AND disabled = 0 $search_sql ORDER BY nombre"; // Not selected any specific group } else { // Is admin user ?? if (is_user_admin ($config["id_user"])) { $sql = "SELECT * FROM tagente WHERE disabled = 0 $search_sql ORDER BY nombre, id_grupo LIMIT $offset, ".$config["block_size"]; $sql2 = "SELECT COUNT(id_agente) FROM tagente WHERE disabled = 0 $search_sql ORDER BY nombre, id_grupo"; // standard user } else { // User has explicit permission on group 1 ? $sql = sprintf ("SELECT COUNT(id_grupo) FROM tusuario_perfil WHERE id_usuario='%s' AND id_grupo = 1", $config['id_user']); $all_group = get_db_sql ($sql); if ($all_group > 0) { $sql = sprintf ("SELECT * FROM tagente WHERE disabled = 0 %s ORDER BY nombre, id_grupo LIMIT %d,%d", $search_sql, $offset, $config["block_size"]); $sql2 = sprintf ("SELECT COUNT(id_agente) FROM tagente WHERE disabled = 0 %s ORDER BY nombre, id_grupo", $search_sql); } else { $sql = sprintf ("SELECT * FROM tagente WHERE disabled = 0 %s AND id_grupo IN (SELECT id_grupo FROM tusuario_perfil WHERE id_usuario='%s') ORDER BY nombre, id_grupo LIMIT %d,%d", $search_sql, $config['id_user'], $offset, $config["block_size"]); $sql2 = sprintf ("SELECT COUNT(id_agente) FROM tagente WHERE disabled = 0 %s AND id_grupo IN (SELECT id_grupo FROM tusuario_perfil WHERE id_usuario='%s') ORDER BY nombre, id_grupo", $search_sql, $config['id_user']); } } } $result2 = mysql_query ($sql2); $row2 = mysql_fetch_array ($result2); $total_events = $row2[0]; // Prepare pagination pagination ($total_events, "index.php?sec=estado&sec2=operation/agentes/estado_agente&group_id=$ag_group&refr=60", $offset); // Show data. $agents = get_db_all_rows_sql ($sql); if ($agents !== false) { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; // For every agent defined in the agent table $color = 1; foreach ($agents as $agent) { $intervalo = $agent["intervalo"]; // Interval in seconds $id_agente = $agent['id_agente']; $nombre_agente = substr (strtoupper ($agent["nombre"]), 0, 18); $direccion_agente = $agent["direccion"]; $id_grupo = $agent["id_grupo"]; $id_os = $agent["id_os"]; $ultimo_contacto = $agent["ultimo_contacto"]; $biginterval = $intervalo; $pertenece = 0; foreach ($groups as $migrupo) { //Verifiy if the group this agent begins is one of the user groups if ($migrupo || $id_grupo == $migrupo) { $pertenece = 1; break; } } if (! $pertenece == 1) continue; // Obtenemos la lista de todos los modulos de cada agente $sql = "SELECT * FROM tagente_estado, tagente_modulo WHERE tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_modulo.id_agente=".$id_agente; $modules = get_db_all_rows_sql ($sql); if ($modules === false) $modules = array (); $numero_modulos = 0; $est_timestamp = ""; $monitor_normal = 0; $monitor_warning = 0; $monitor_critical = 0; $monitor_down = 0; $agent_down = 0; $now = get_system_time (); // Calculate module/monitor totals for this agent foreach ($modules as $module) { $numero_modulos ++; $ultimo_contacto_modulo = $module["timestamp"]; $module_interval = $module["module_interval"]; $module_type = $module["id_tipo_modulo"]; if ($module_interval > $biginterval) $biginterval = $module_interval; if ($module_interval != 0) $intervalo_comp = $module_interval; else $intervalo_comp = $intervalo; if ($ultimo_contacto != "") $seconds = $now - strtotime ($ultimo_contacto_modulo); else $seconds = -1; if ($module_type < 21 || $module_type != 100) { $async = 0; } else { $async = 1; } // Defines if Agent is down (interval x 2 > time last contact if (($seconds >= ($intervalo_comp * 2)) AND ($module_type < 21)) { // If (intervalx2) secs. ago we don't get anything, show alert $agent_down = 1; if ($async == 0) $monitor_down++; } else { if ($module["estado"] == 2) $monitor_warning++; elseif ($module["estado"]== 1) $monitor_critical++; else $monitor_normal++; } } // Color change for each line (1.2 beta2) if ($color == 1){ $tdcolor = "datos"; $color = 0; } else { $tdcolor = "datos2"; $color = 1; } echo ""; echo ""; // Show SO icon echo ""; // If there are a module interval bigger than agent interval if ($biginterval > $intervalo) { echo ""; } else { echo ""; } // Show GROUP icon echo '"; echo ""; echo ""; } echo ""; echo "
".__('Agent')."".__('OS')."".__('Interval')."".__('Group')."".__('Modules')."".__('Status')."".__('Alerts')."".__('Last contact')."
"; if (give_acl ($config['id_user'], $id_grupo, "AW")) { echo "  "; } echo ''; echo $nombre_agente; echo ""; print_os_icon ($id_os, false); echo " ".$biginterval."".$intervalo."'; echo ""; echo print_group_icon ($id_grupo); //echo ' ('; //echo get_group_name ($id_grupo); //echo ")"; echo ""; echo "".$numero_modulos." : "; if ($monitor_normal > 0) echo " ".$monitor_normal.""; if ($monitor_warning > 0) echo " ".$monitor_warning.""; if ($monitor_critical > 0) echo " ".$monitor_critical.""; if ($monitor_down > 0) echo " ".$monitor_down.""; echo ""; if ($numero_modulos > 0){ if ($agent_down > 0) { echo ''; } elseif ($monitor_critical > 0){ echo ''; } elseif ($monitor_warning > 0) { echo ''; } else { echo ''; } } else { echo ''; } // checks if an alert was fired recently echo ""; if (give_disabled_group ($id_grupo)) { echo ""; } else { if (check_alert_fired ($id_agente) == 1) echo ''; else echo ''; } echo ""; print_timestamp ($ultimo_contacto); echo "

"; require ("bulbs.php"); } else { echo '
'.__('There are no agents included in this group').'
'; if (give_acl ($config['id_user'], 0, "LM") || give_acl ($config['id_user'], 0, "AW") || give_acl ($config['id_user'], 0, "PM") || give_acl ($config['id_user'], 0, "DM") || give_acl ($config['id_user'], 0, "UM")) { echo '
'; print_input_hidden ('new_agent', 1); print_submit_button (__('Create agent'), 'crt', false, 'class="sub next"'); echo '
'; } } ?>