".$lang_label["ag_title"].""; echo "

".$lang_label["group_view"]." ".$lang_label["help"]."

"; $iduser_temp=$_SESSION['id_usuario']; $sql1='SELECT * FROM tgrupo'; $result2=mysql_query($sql1); if (mysql_num_rows($result2)){ while ($row=mysql_fetch_array($result2)){ if ($row["id_grupo"]!=1) if (give_acl($iduser_temp,$row["id_grupo"], "AR") == 1) $mis_grupos[]=$row["id_grupo"]; //All my groups in an array } // Update network modules for this group // Check for Network FLAG change request if (isset($_GET["update_netgroup"])){ if (give_acl($id_user, $_GET["update_netgroup"], "AW")==1){ $sql = "SELECT * FROM tagente WHERE id_grupo = ".$_GET["update_netgroup"]; $result=mysql_query($sql); while ($row=mysql_fetch_array($result)){ $id_agente = $row["id_agente"]; $query2 ="UPDATE tagente_modulo SET flag=1 WHERE id_agente = ".$id_agente; $res=mysql_query($query2); } } } $contador_grupo = 0; $contador_agente=0; $array_index = 0; // Recorro cada grupo para ver el estado de todos los modulos foreach ($mis_grupos as $migrupo) if ($migrupo != "") { $grupo[$array_index]["agent"]=0; $grupo[$array_index]["ok"]=0; $grupo[$array_index]["down"]=0; $grupo[$array_index]["bad"]=0; $grupo[$array_index]["alerts"]=0; $grupo[$array_index]["data"]=0; $grupo[$array_index]["icon"]=dame_grupo_icono($migrupo); $grupo[$array_index]["id_grupo"]=$migrupo; $existen_agentes =0; $sql1="SELECT * FROM tagente WHERE disabled=0 AND id_grupo =".$migrupo; if ($result1=mysql_query($sql1)){ while ($row1 = mysql_fetch_array($result1)){ $existen_agentes =1; $id_agente=$row1["id_agente"]; // Check for recent alerts if (check_alert_fired($id_agente) == 1){ $grupo[$array_index]["alerts"]++; } $grupo[$array_index]["agent"]++; $grupo[$array_index]["group"]=dame_nombre_grupo($migrupo); $contador_agente++; // Estado grupo, agent $sql3="SELECT * FROM tagente_estado WHERE id_agente = ".$row1["id_agente"]; $result3=mysql_query($sql3); while ($row3 = mysql_fetch_array($result3)){ $estado = $row3["estado"]; // Get module interval $ahora=date("Y/m/d H:i:s"); $sql4="SELECT * FROM tagente_modulo WHERE id_agente_modulo = ".$row3["id_agente_modulo"]; $result4=mysql_query($sql4); if ($row4 = mysql_fetch_array($result4)){ $module_interval = $row4["module_interval"]; if ($module_interval !=0) $intervalo_comp = $module_interval; else $intervalo_comp = $intervalo; } $ultimo_contacto_modulo = $row3["timestamp"]; # Defines if module is down (interval x 2 > time last contact) if ($ultimo_contacto_modulo != "2000-00-00 00:00:00"){ $seconds = strtotime($ahora) - strtotime($ultimo_contacto_modulo); if ($seconds >= ($intervalo_comp*2)){ $grupo[$array_index]["down"]++; } elseif ($estado != 100) { if ($row3["datos"] !=0) $grupo[$array_index]["ok"]++; else $grupo[$array_index]["bad"]++; } elseif ($estado == 100) // For data module, not monitors $grupo[$array_index]["data"]++; // Data module } } } } if ($existen_agentes == 1){ $array_index++; } } if ($contador_agente==0) {echo "".$lang_label["no_agent_def"]."";} $ancho = ceil(sqrt($array_index+1)); $real_count =0; // Puedo tener una tabla con mas items en ella que los que realmente debo mostrar, real count cuenta los que voy poniendo hasta llegar a array_index que son los que hay en el array $grupo. echo ""; for ($table=0;$table < $ancho;$table++){ echo ""; for ($table_row=0;$table_row < $ancho;$table_row++){ if ($real_count < $array_index){ $group_name = $grupo[$real_count]["group"]; $icono_grupo = $grupo[$real_count]["icon"]; $icono_type=""; if ($grupo[$real_count]["down"]>0) { $icono_type=""; } if ($grupo[$real_count]["bad"]>0) { $icono_type=$icono_type.""; } if ($grupo[$real_count]["ok"]>0) { $icono_type=$icono_type.""; } if ($grupo[$real_count]["data"]>0) { $icono_type=$icono_type.""; } // Show yellow light if there are recent alerts fired for this group if ($grupo[$real_count]["alerts"] > 0 ){ $icono_type=$icono_type.""; } // TOOLTIP. $celda = ""; } echo "
 
".$lang_label["agents"].":
".$grupo[$real_count]["agent"]."
".ucfirst($lang_label["monitors"]).":
".$lang_label["ok"].": ".$grupo[$real_count]["ok"]."
".$lang_label["down"].": ".$grupo[$real_count]["down"]."
".$lang_label["fail"].": ".$grupo[$real_count]["bad"]."
".$lang_label["alerts"].": ".$grupo[$real_count]["alerts"]."
"; // Render network exec module button, only when this group is writtable by user if (give_acl($id_user, $grupo[$real_count]["id_grupo"], "AW")==1){ $celda = $celda . ""; } $celda = $celda . "

".$icono_type."

".$group_name.""; echo $celda; } $real_count++; } echo "
"; } else { echo ''.$lang_label["no_agent"].''; } } else { audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access Agent view (Grouped)"); require ("general/noaccess.php"); } ?>