".$lang_label["ag_title"]."";
echo "
";
$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 "";
}
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");
}
?>