".$lang_label["ag_title"]." > "; echo $lang_label["tactical_view"].""; $data = general_stats($id_user,0); $monitor_checks = $data[0]; $monitor_ok = $data[1]; $monitor_bad = $data[2]; $monitor_unknown = $data[3]; $monitor_alert = $data[4]; $total_agents = $data[5]; $data_checks = $data[6]; $data_unknown = $data[7]; $data_alert = $data[8]; $data_alert_total = $data[9]; $monitor_alert_total = $data[10]; $data_not_init = $data[11]; $monitor_not_init = $data[12]; $total_checks = $data_checks + $monitor_checks; // Monitor checks // ~~~~~~~~~~~~~~~ echo ""; echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
".$lang_label["monitor_checks"]."
"."Monitor checks"."".$monitor_checks."
"."Monitor OK"."".$monitor_ok."
"."Monitor BAD".""; if ($monitor_bad > 0) echo $monitor_bad; else echo "-"; echo "
"."Monitor Unknown".""; if ($monitor_unknown > 0) echo $monitor_unknown; else echo "-"; echo "
"."Monitor Not Init".""; if ($monitor_not_init> 0) echo $monitor_not_init; else echo "-"; echo "
"."Alerts Fired".""; if ($monitor_alert > 0) echo $monitor_alert; else echo "-"; echo "
"."Alerts Total"."".$monitor_alert_total; echo "
"; // Data checks // ~~~~~~~~~~~~~~~ echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
".$lang_label["data_checks"]."
"."Data checks"."".$data_checks; echo "
"."Data Unknown".""; if ($data_unknown > 0) echo $data_unknown; else echo "-"; echo "
"."Data not init".""; if ($data_not_init > 0) echo $data_not_init; else echo "-"; echo "
"."Alerts Fired".""; if ($data_alert > 0) echo $data_alert; else echo "-"; echo "
"."Alerts Total"; echo "".$data_alert_total; echo "
"; // Summary // ~~~~~~~~~~~~~~~ echo ""; echo ""; echo ""; echo ""; echo "
".$lang_label["summary"]."
"."Total agents"."".$total_agents; echo "
"."Total checks"."".$total_checks; echo "
"; echo "
"; // Odometer Graph // ~~~~~~~~~~~~~~~ if ($monitor_checks > 0){ $monitor_health = format_numeric ((($monitor_ok - $monitor_alert - $monitor_unknown)/ $monitor_checks) * 100,1); } else $monitor_health = 100; if ($data_checks > 0){ $data_health = format_numeric ( (($data_checks -($data_unknown + $data_alert)) / $data_checks ) * 100,1);; } else $data_health = 100; if (($data_checks != 0) OR ($data_checks != 0)){ $global_health = format_numeric( ((($monitor_ok -$monitor_alert - $monitor_unknown )+($data_checks -($data_unknown + $data_alert))) / ($data_checks + $monitor_checks) ) * 100, 1); } else $global_health = 100; echo "

".$lang_label["tactical_indicator"]."

"; echo ""; // Server information // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Get total modules defined (network) $total_modules_network = get_db_sql ("SELECT COUNT(id_agente_modulo) FROM tagente_modulo WHERE id_tipo_modulo > 4 AND id_tipo_modulo != 100"); // Get total modules defined (data) $total_modules_data = get_db_sql ("SELECT COUNT(id_agente_modulo) FROM tagente_modulo WHERE id_tipo_modulo < 5 OR id_tipo_modulo = 100"); echo "

".$lang_label["tactical_server_information"]."

"; // Connect DataBase $sql='SELECT * FROM tserver'; $result=mysql_query($sql); if (mysql_num_rows($result)){ echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; $color=1; while ($row=mysql_fetch_array($result)){ if ($color == 1){ $tdcolor = "datos"; $color = 0; } else { $tdcolor = "datos2"; $color = 1; } $id_server = $row["id_server"]; $name = $row["name"]; $address = $row["ip_address"]; $status = $row["status"]; $laststart = $row["laststart"]; $keepalive = $row["keepalive"]; $network_server = $row["network_server"]; $data_server = $row["data_server"]; $snmp_server = $row["snmp_server"]; $recon_server = $row["recon_server"]; $master = $row["master"]; $checksum = $row["checksum"]; $description = $row["description"]; $version = $row["version"]; $modules_server = 0; if (($network_server == 1) OR ($data_server == 1)){ // Get total modules defined for this server (data modules) $sql2 = "SELECT COUNT(running_by) FROM tagente_estado WHERE running_by = $id_server"; $result2=mysql_query($sql2); $row2=mysql_fetch_array($result2); $modules_server = $row2[0]; echo "
".$lang_label["name"]."".$lang_label['status']."".$lang_label['load']."".$lang_label['modules']."".$lang_label['lag']."
"; echo "$name"; echo ""; if ($status ==0){ echo ""; } else { echo ""; } echo ""; if (($network_server == 1) OR ($data_server == 1)){ // Progress bar calculations if ($network_server == 1){ if ($modules_server == 0) $percentil = 0; if ($modules_server > 0) $percentil = $modules_server / ($total_modules_network / 100); else $percentil = 0; $total_modules_temp = $total_modules_network; } else { if ($total_modules_data == 0) $percentil = 0; else $percentil = $modules_server / ($total_modules_data / 100); $total_modules_temp = $total_modules_data; } } elseif ($recon_server == 1){ $sql2 = "SELECT COUNT(id_rt) FROM trecon_task WHERE id_network_server = $id_server"; $result2=mysql_query($sql2); $row2=mysql_fetch_array($result2); $modules_server = $row2[0]; $sql2 = "SELECT COUNT(id_rt) FROM trecon_task"; $result2=mysql_query($sql2); $row2=mysql_fetch_array($result2); $total_modules = $row2[0]; if ($total_modules == 0) $percentil = 0; else $percentil = $modules_server / ($total_modules / 100); $total_modules_temp = $total_modules; } else echo "-"; if (($network_server == 1) OR ($data_server == 1) OR ($recon_server == 1)){ if ($percentil > 100) $percentil = 100; // Progress bar render echo ''; } // Number of modules echo ""; if (($recon_server ==1) OR ($network_server == 1) OR ($data_server == 1)) echo $modules_server . " / ". $total_modules_temp; else echo "-"; // LAG CHECK echo ""; // Calculate lag: get oldest module of any proc_type, for this server, // and calculate difference in seconds // Get total modules defined for this server if (($network_server == 1) OR ($data_server == 1)){ if ($network_server == 1) $sql1 = "SELECT MIN(last_execution_try),current_interval FROM tagente_estado WHERE last_execution_try > 0 AND running_by=$id_server GROUP BY current_interval ORDER BY 1"; if ($data_server == 1) // This only checks for agent with a last_execution_try of at // maximun: ten times it's interval.... if is bigger, it probably // will be because an agent down $sql1 = "SELECT MAX(last_execution_try), current_interval, id_agente FROM tagente_estado WHERE last_execution_try > 0 AND (tagente_estado.last_execution_try + (tagente_estado.current_interval *10) > UNIX_TIMESTAMP()) AND running_by=$id_server GROUP BY id_agente ORDER BY 1 ASC LIMIT 1"; $nowtime = time(); $maxlag=0; if ($result1=mysql_query($sql1)) while ($row1=mysql_fetch_array($result1)){ if (($row1[0] + $row1[1]) < $nowtime){ $maxlag2 = $nowtime - ($row1[0] + $row1[1]); // More than 5 times module interval is not lag, is a big // problem in agent, network or servers.. if ($maxlag2 < ($row1[1]*5)) if ($maxlag2 > $maxlag) $maxlag = $maxlag2; } } if ($maxlag < 60) echo $maxlag." sec"; elseif ($maxlag < 86400) echo format_numeric($maxlag/60) . " min"; elseif ($maxlag > 86400) echo "+1 ".$lang_label["day"]; } elseif ($recon_server == 1) { $sql1 = "SELECT * FROM trecon_task WHERE id_network_server = $id_server"; $result1=mysql_query($sql1); $nowtime = time(); $maxlag=0;$maxlag2=0; while ($row1=mysql_fetch_array($result1)){ if (($row1["utimestamp"] + $row1["interval_sweep"]) < $nowtime){ $maxlag2 = $nowtime - ($row1["utimestamp"] + $row1["interval_sweep"]); if ($maxlag2 > $maxlag) $maxlag = $maxlag2; } } if ($maxlag < 60) echo $maxlag." sec"; elseif ($maxlag < 86400) echo format_numeric($maxlag/60) . " min"; elseif ($maxlag > 86400) echo "+1 ".$lang_label["day"]; } else echo "--"; } } echo '
'; } echo "
"; ?>