, 2003-2006 // Raúl Mateos , 2005-2006 // Load global vars require("include/config.php"); if (comprueba_login() == 0) if (give_acl($id_user, 0, "AR")==1) { echo "

".$lang_label["ag_title"]."

"; echo "

".$lang_label["group_view"]."

"; $iduser_temp=$_SESSION['id_usuario']; // $mis_grupos - Define array mis_grupos to put here all groups with Agent Read permission $sql1='SELECT * FROM tgrupo'; $result2=mysql_query($sql1); 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 } $contador_grupo = 0; $contador_agente=0; $array_index = 0; $estado_grupo_ok =0; $estado_grupo_down =0; $estado_grupo_bad =0; // Debug // echo "tengo un total de ".count($mis_grupos)." grupos

"; // 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]["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"]; $ultimo_contacto = $row1["ultimo_contacto"]; $intervalo = $row1["intervalo"]; $ahora=date("Y/m/d H:i:s"); if ($ultimo_contacto <> "") $seconds = strtotime($ahora) - strtotime($ultimo_contacto); else $seconds = -100000; # Defines if Agent is down (interval x 2 > time last contact $down=0; if ($seconds >= ($intervalo*2)){ // Si hace Intervalo x 2 segundos que no recibimos nada, sacamos alerta $grupo[$array_index]["down"]++; // Estado grupo, agent down $estado_grupo_down++; $down=1; } $grupo[$array_index]["agent"]++; $grupo[$array_index]["group"]=dame_nombre_grupo($migrupo); $contador_agente++; // Estado grupo, agent if ($down ==0){ $sql2="SELECT * FROM tagente_modulo WHERE ( id_tipo_modulo = 2 OR id_tipo_modulo = 6 OR id_tipo_modulo = 10 ) and id_agente =".$row1["id_agente"]; $result2=mysql_query($sql2); while ($row2 = mysql_fetch_array($result2)){ $sql3="SELECT * FROM tagente_estado WHERE id_agente_modulo = ".$row2["id_agente_modulo"]; $result3=mysql_query($sql3); $row3 = mysql_fetch_array($result3); if ($row3["datos"] !=0){ $estado_grupo_ok++; $grupo[$array_index]["ok"]++; // Estado grupo, agent ok } else { $estado_grupo_bad++; $grupo[$array_index]["bad"]++; // Estado grupo, agent BAD } } } } if ($existen_agentes == 1){ $array_index++; } } if ($contador_agente==0) {echo "".$lang_label["no_agent_def"]."";} /* for ($a=0; $a < $array_index; $a++) { // Debug, show all groups parsed as valid echo $grupo[$a]['group']; //echo $grupo[$a]["icon"]; echo "
"; } */ //echo "Count ".$contador_grupo."

"; $ancho = ceil(sqrt($array_index+1)); //echo "DEBUG ANCHO: $ancho
"; $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.""; } $celda = ""; /* Not used anymore if ($grupo[$real_count]["agent"] == 1 ){ $celda = ""; } elseif ($grupo[$real_count]["agent"]<5){ $celda = ""; } elseif ($grupo[$real_count]["agent"]<10){ $celda = ""; } else { $celda = ""; } */ $celda = ""; echo $celda; } $real_count++; } echo ""; } echo "
".$celda."

".$icono_type."

".$group_name."
"; $celda = $celda.""; $celda = $celda.""; $celda = $celda.""; $celda = $celda.""; $celda = $celda."
".$lang_label["agents"].":
".$grupo[$real_count]["agent"].""; $celda = $celda."
".ucfirst($lang_label["monitors"]).":
".$lang_label["ok"].": ".$grupo[$real_count]["ok"].""; $celda = $celda."
".$lang_label["down"].": ".$grupo[$real_count]["down"].""; $celda = $celda."
".$lang_label["fail"].": ".$grupo[$real_count]["bad"].""; $celda = $celda."
"; $celda = $celda."
"; /* // Version vieja (tabular sin gr�icos) $texto = ""; $texto = $texto."
".$lang_label["group"]; $texto = $texto."".$lang_label["agents"]; $texto = $texto."".$lang_label["monitors"]; $texto = $texto."".$lang_label["status"]; $texto = $texto."".$lang_label["ok"]."".$lang_label["fail"]."".$lang_label["down"]; echo $texto; // Recorro cada grupo para ver el estado de todos los modulos foreach ($mis_grupos as $migrupo) if ($migrupo != "") { $contador_grupo = 0; $estado_grupo_ok = 0; $estado_grupo_bad = 0; $estado_grupo_down = 0; $contador_agente = 0; $sql1="SELECT * FROM tagente WHERE disabled=0 AND id_grupo =".$migrupo; if ($result1=mysql_query($sql1)) while ($row1 = mysql_fetch_array($result1)){ $id_agente=$row1["id_agente"]; $ultimo_contacto = $row1["ultimo_contacto"]; $intervalo = $row1["intervalo"]; $ahora=date("Y/m/d H:i:s"); if ($ultimo_contacto <> "") $seconds = strtotime($ahora) - strtotime($ultimo_contacto); else $seconds = -100000; # Defines if Agent is down (interval x 2 > time last contact $down=0; if ($seconds >= ($intervalo*2)){ // Si hace Intervalo x 2 segundos que no recibimos nada, sacamos alerta $estado_grupo_down++; $down=1; } $contador_agente++; if ($down ==0){ $sql2="SELECT * FROM tagente_modulo WHERE id_tipo_modulo = 2 and id_agente =".$row1["id_agente"]; $result2=mysql_query($sql2); while ($row2 = mysql_fetch_array($result2)){ $sql3="SELECT * FROM tagente_estado WHERE id_agente_modulo = ".$row2["id_agente_modulo"]; $result3=mysql_query($sql3); $row3 = mysql_fetch_array($result3); if ($row3["datos"] !=0) $estado_grupo_ok++; else $estado_grupo_bad++; $contador_grupo++; } } } if ($contador_agente > 0){ echo "
".dame_nombre_grupo($migrupo).""; echo "".$contador_agente; echo "".$contador_grupo; echo ""; if ($estado_grupo_ok > 0) echo ""; if ($estado_grupo_bad > 0) echo ""; if ($estado_grupo_down > 0) echo ""; if ($estado_grupo_down + $estado_grupo_bad + $estado_grupo_ok == 0) echo ""; echo "".$estado_grupo_ok; echo "".$estado_grupo_bad; echo "".$estado_grupo_down; } } // foreach - if echo "

"; //echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
"; echo " - ".$lang_label["green_light"]."
"; echo " - ".$lang_label["red_light"]."
"; echo " - ".$lang_label["broken_light"]."
"; echo " - ".$lang_label["no_light"]."
"; */ } else { audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access Agent viewi (Grouped)"); require ("general/noaccess.php"); } ?>