added tooltip in module description

git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@210 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
Azabel 2006-10-02 15:01:10 +00:00
parent 630cf3e6a4
commit 31004702a1
11 changed files with 1646 additions and 0 deletions

View File

@ -0,0 +1,121 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
function datos_raw($id_agente_modulo, $periodo){
require("include/config.php");
require("include/languages/language_".$language_code.".php");
// 24 hours date
$yesterday_year = date("Y", time()-86400);
$yesterday_month = date("m", time()-86400);
$yesterday_day = date ("d", time()-86400);
$yesterday_hour = date ("H", time()-86400);
$dia = $yesterday_year."-".$yesterday_month."-".$yesterday_day." ".$yesterday_hour.":00:00";
// 24x7 hours (one week)
$week_year = date("Y", time()-604800);
$week_month = date("m", time()-604800);
$week_day = date ("d", time()-604800);
$week_hour = date ("H", time()-604800);
$week = $week_year."-".$week_month."-".$week_day." ".$week_hour.":00:00";
// 24x7x30 Hours (one month)
$month_year = date("Y", time()-2592000);
$month_month = date("m", time()-2592000);
$month_day = date ("d", time()-2592000);
$month_hour = date ("H", time()-2592000);
$month = $month_year."-".$month_month."-".$month_day." ".$month_hour.":00:00";
$et = " ";
switch ($periodo) {
case "mes":
$periodo = $month;
$et=$lang_label["last_month"];
break;
case "semana":
$periodo = $week;
$et=$lang_label["last_week"];
break;
case "dia":
$periodo = $dia;
$et=$lang_label["last_24"];
break;
}
// Different query for string data type
$id_tipo_modulo = dame_id_tipo_modulo_agentemodulo($id_agente_modulo);
if ( (dame_nombre_tipo_modulo($id_tipo_modulo) == "generic_data_string" ) OR
(dame_nombre_tipo_modulo($id_tipo_modulo) == "remote_tcp_string" ) OR
(dame_nombre_tipo_modulo($id_tipo_modulo) == "remote_snmp_string" )) {
$sql1="SELECT * FROM tagente_datos_string WHERE id_agente_modulo = ".$id_agente_modulo." AND timestamp > '".$periodo."' ORDER BY timestamp";
}
else {
$sql1="SELECT * FROM tagente_datos WHERE id_agente_modulo = ".$id_agente_modulo." AND timestamp > '".$periodo."' ORDER BY timestamp";
}
$result=mysql_query($sql1);
$nombre_agente = dame_nombre_agente_agentemodulo($id_agente_modulo);
$nombre_modulo = dame_nombre_modulo_agentemodulo($id_agente_modulo);
echo "<h2>".$lang_label["data_received"]." '$nombre_agente' / '$nombre_modulo' </h2>";
echo "<h3> $et <a href='help/".$help_code."/chap3.php#3322' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
if (mysql_num_rows($result)){
echo "<table cellpadding='3' cellspacing='3' width='600' border='0'>";
$color=1;
echo "<th>".$lang_label["timestamp"]."</th>";
echo "<th>".$lang_label["data"]."</th>";
while ($row=mysql_fetch_array($result)){
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
echo "<tr>";
echo "<td class='".$tdcolor."f9 w130'>".$row["timestamp"];
echo "<td class='".$tdcolor."'>".salida_limpia($row["datos"]);
}
echo "<tr><td colspan='3'><div class='raya'></div></td></tr>";
echo "</table>";
}
else {
echo "no_data";
}
}
// Comienzo de la pagina en si misma
if (comprueba_login() == 0) {
if (isset($_GET["tipo"]) AND isset($_GET["id"])) {
$id =entrada_limpia($_GET["id"]);
$tipo= entrada_limpia($_GET["tipo"]);
}
else {
echo "<h3 class='error'>".$lang_label["graf_error"]."</h3>";
exit;
}
datos_raw($id,$tipo);
}
?>

View File

@ -0,0 +1,27 @@
<?php
// Pandora - The Free Monitoring System
// This code is protected by GPL license.
// Este codigo esta protegido por la licencia GPL.
// Sancho Lerena <slerena@gmail.com>, 2003-2006
// Raul Mateos <raulofpandora@gmail.com>, 2005-2006
// Load global vars
require("include/config.php");
if (comprueba_login() == 0){
$iduser_temp=$_SESSION['id_usuario'];
if (give_acl($iduser_temp, 0, "AR") == 1){
echo "<h2>".$lang_label["ag_title"]."</h2>";
echo "<h3>".$lang_label["db_stat_agent"]."<a href='help/".$help_code."/chap3.php#337' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
echo "<table border=0>";
echo "<tr><td><img src='reporting/fgraph.php?tipo=db_agente_modulo'><br>";
echo "<tr><td><br>";
echo "<tr><td><img src='reporting/fgraph.php?tipo=db_agente_paquetes'><br>";
echo "</table>";
}
else {
audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access Agent estatistics");
require ("general/noaccess.php");
}
}
?>

View File

@ -0,0 +1,271 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
if (comprueba_login() == 0) {
if ((give_acl($id_user, 0, "AR")==1) or (give_acl($id_user,0,"AW")) or (dame_admin($id_user)==1)) {
if (isset($_POST["ag_group"]))
$ag_group = $_POST["ag_group"];
elseif (isset($_GET["group_id"]))
$ag_group = $_GET["group_id"];
else
$ag_group = -1;
if (isset($_GET["ag_group_refresh"])){
$ag_group = $_GET["ag_group_refresh"];
}
echo "<h2>".$lang_label["ag_title"]."</h2>";
echo "<h3>".$lang_label["summary"]."<a href='help/".$help_code."/chap3.php#331' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
$iduser_temp=$_SESSION['id_usuario'];
// Show group selector
if (isset($_POST["ag_group"])){
$ag_group = $_POST["ag_group"];
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&ag_group_refresh=".$ag_group."'>";
} else {
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60'>";
}
echo "<table border='0'><tr><td valign='middle'>";
echo "<select name='ag_group' onChange='javascript:this.form.submit();'>";
if ( $ag_group > 1 ){
echo "<option value='".$ag_group."'>".dame_nombre_grupo($ag_group);
}
echo "<option value=1>".dame_nombre_grupo(1); // Group all is always active
// Group 1 (ALL) gives A LOT of problems, be careful with this code:
// Run query on all groups and show data only if ACL check its ok: $iduser_temp is user, and acl is AR (agent read)
$mis_grupos[]=""; // Define array mis_grupos to put here all groups with Agent Read permission
$sql='SELECT * FROM tgrupo';
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result)){
if ($row["id_grupo"] != 1){
if (give_acl($iduser_temp,$row["id_grupo"], "AR") == 1){
echo "<option value='".$row["id_grupo"]."'>".dame_nombre_grupo($row["id_grupo"]);
$mis_grupos[]=$row["id_grupo"]; //Put in an array all the groups the user belongs
}
}
}
echo "</select>";
echo "<td valign='middle'><noscript><input name='uptbutton' type='submit' class='sub' value='".$lang_label["show"]."'></noscript></form>";
// Show only selected groups
if ($ag_group > 1)
$sql='SELECT * FROM tagente WHERE id_grupo='.$ag_group.' and disabled = 0 order by nombre';
else
$sql='SELECT * FROM tagente WHERE disabled = 0 ORDER BY id_grupo, nombre';
$result=mysql_query($sql);
if (mysql_num_rows($result)){
// Load icon index from tgrupos
$iconindex_g[]="";
$sql_g='SELECT id_grupo, icon FROM tgrupo';
$result_g=mysql_query($sql_g);
while ($row_g=mysql_fetch_array($result_g)){
$iconindex_g[$row_g["id_grupo"]] = $row_g["icon"];
}
echo "<td class='f9l30'>";
echo "<img src='images/dot_red.gif'> - ".$lang_label["fired"];
echo "&nbsp;&nbsp;</td>";
echo "<td class='f9'>";
echo "<img src='images/dot_green.gif'> - ".$lang_label["not_fired"];
echo "</td></tr></table>";
echo "<br>";
echo "<table cellpadding='3' cellspacing='3' width='700'>";
echo "<th>".$lang_label["agent"]."</th>";
echo "<th>".$lang_label["os"]."</th>";
echo "<th>".$lang_label["interval"]."</th>";
echo "<th>".$lang_label["group"]."</th>";
echo "<th>".$lang_label["modules"]."</th>";
echo "<th>".$lang_label["status"]."</th>";
echo "<th>".$lang_label["alerts"]."</th>";
echo "<th>".$lang_label["last_contact"]."</th>";
// For every agent defined in the agent table
$color = 1;
while ($row=mysql_fetch_array($result)){
$intervalo = $row["intervalo"]; // Interval in seconds
$id_agente = $row['id_agente'];
$nombre_agente = $row["nombre"];
$direccion_agente =$row["direccion"];
$id_grupo=$row["id_grupo"];
$id_os = $row["id_os"];
$agent_type = $row["agent_type"];
$ultimo_contacto = $row["ultimo_contacto"];
$biginterval=$intervalo;
foreach ($mis_grupos as $migrupo){ //Verifiy if the group this agent begins is one of the user groups
if (($migrupo ==1) || ($id_grupo==$migrupo)){
$pertenece = 1;
break;
}
else
$pertenece = 0;
}
if ($pertenece == 1) { // Si el agente pertenece a uno de los grupos que el usuario puede visualizar
// Obtenemos la lista de todos los modulos de cada agente
$sql_t="SELECT * FROM tagente_estado, tagente_modulo WHERE tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.id_agente=".$id_agente;
$result_t=mysql_query($sql_t);
$estado_general = 0; $numero_modulos = 0; $numero_monitor = 0; $est_timestamp = ""; $monitor_bad=0; $monitor_ok = 0; $monitor_down=0; $numero_datamodules=0;
$estado_cambio=0; // Oops, I forgot initialize this fucking var... many problems due it
$ahora=date("Y/m/d H:i:s");
// Calculate module/monitor totals for this agent
while ($row_t=mysql_fetch_array($result_t)){
$est_modulo = $row_t["estado"];
$ultimo_contacto_modulo = $row_t["timestamp"];
$module_interval = $row_t["module_interval"];
if ($module_interval > $biginterval)
$biginterval = $module_interval;
if ($module_interval !=0)
$intervalo_comp = $module_interval;
else
$intervalo_comp = $intervalo;
if ($ultimo_contacto <> "")
$seconds = strtotime($ahora) - strtotime($ultimo_contacto_modulo);
else
$seconds = -1;
# Defines if Agent is down (interval x 2 > time last contact
if ($seconds >= ($intervalo_comp*2)){ // If (intervalx2) secs. ago we don't get anything, show alert
if ($est_modulo != 100)
$numero_monitor++;
$monitor_down++;
}
elseif ($est_modulo <> 100) { // estado=100 are data modules
$estado_general = $estado_general + $est_modulo;
$estado_cambio = $estado_cambio + $row_t["cambio"];
$numero_monitor ++;
if ($est_modulo <> 0)
$monitor_bad++;
else
$monitor_ok++;
} elseif ($est_modulo == 100){ // Data modules
$numero_datamodules++;
}
$numero_modulos++;
}
// Color change for each line (1.2 beta2)
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
echo "<tr>";
echo "<td class='$tdcolor'>";
$id_grupo=dame_id_grupo($id_agente);
if (give_acl($id_user, $id_grupo, "AW")==1){
echo "<a href='index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente&amp;id_agente=".$id_agente."'><img src='images/setup.gif' border=0 width=15></a>";
}
echo "&nbsp;&nbsp;<a href='index.php?sec=estado&amp;sec2=operation/agentes/ver_agente&amp;id_agente=".$id_agente."'><b>".$nombre_agente."</b></a>";
if ( $agent_type == 0) {
// Show SO icon :)
echo "<td class='$tdcolor' align='center'><img border=0 src='images/".dame_so_icon($id_os)."' height=18 alt='".dame_so_name($id_os)."'>";
} elseif ($agent_type == 1) {
// Show network icon (for pandora 1.2)
echo "<td class='$tdcolor' align='center'><img border=0 src='images/network.gif' height=18 alt='Network Agent'>";
}
// If there are a module interval bigger than agent interval
if ($biginterval > $intervalo)
echo "<td class='$tdcolor'><font color='green'>".$biginterval."</font>";
else
echo "<td class='$tdcolor'>".$intervalo;
echo '<td class="'.$tdcolor.'"><img src="images/g_'.$iconindex_g[$id_grupo].'.gif" border="0"> ( '.dame_grupo($id_grupo).' )';
echo "<td class='$tdcolor'> ".$numero_modulos." <b>/</b> ".$numero_monitor;
if ($monitor_bad <> 0)
echo " <b>/</b> <font class='red'>".$monitor_bad."</font>";
if ($monitor_down <> 0)
echo " <b>/</b> <font class='grey'>".$monitor_down."</font>";
if ($numero_monitor <> 0){
if ($estado_general <> 0){
if ($estado_cambio == 0){
echo "<td class='$tdcolor' align='center'><img src='images/b_red.gif'>";
} else {
echo "<td class='$tdcolor' align='center'><img src='images/b_yellow.gif'>";
}
} elseif ($monitor_ok > 0)
echo "<td class='$tdcolor' align='center'><img src='images/b_green.gif'>";
elseif ($numero_datamodules > 0)
echo "<td class='$tdcolor' align='center'><img src='images/b_white.gif'>";
elseif ($monitor_down > 0)
echo "<td class='$tdcolor' align='center'><img src='images/b_down.gif'>";
} else
echo "<td class='$tdcolor' align='center'><img src='images/b_blue.gif'>";
// checks if an alert was fired recently
echo "<td class='$tdcolor' align='center'>";
if (check_alert_fired($id_agente) == 1)
echo "<img src='images/dot_red.gif'>";
else
echo "<img src='images/dot_green.gif'>";
echo "<td class='$tdcolor'>";
if ( $ultimo_contacto == "0000-00-00 00:00:00")
echo $lang_label["never"];
else {
$ultima = strtotime($ultimo_contacto);
$ahora = strtotime("now");
$diferencia = $ahora - $ultima;
if ($biginterval > 0){
$percentil = round($diferencia/(($biginterval*2) / 100));
} else {
echo "N/A";
}
echo "<a href='#' class='info2'><img src='reporting/fgraph.php?tipo=progress&amp;percent=".$percentil."&amp;height=15&amp;width=80' border='0'>&nbsp;
<span>$ultimo_contacto</span></a>";
// echo $ultimo_contacto;
}
} // If pertenece/belongs to group
}
echo "<tr><td colspan='8'><div class='raya'></div></td></tr>";
echo "</table><br>";
echo "<table>";
echo "<tr><td class='f9i'>";
echo "<img src='images/b_green.gif'> - ".$lang_label["green_light"]."</td>";
echo "<td class='f9i'>";
echo "<img src='images/b_red.gif'> - ".$lang_label["red_light"]."</td>";
echo "<td class='f9i'>";
echo "<img src='images/b_yellow.gif'> - ".$lang_label["yellow_light"]."</td>";
echo "<tr><td class='f9i'>";
echo "<img src='images/b_white.gif'> - ".$lang_label["no_light"]."</td>";
echo "<td class='f9i'>";
echo "<img src='images/b_blue.gif'> - ".$lang_label["blue_light"]."</td>";
echo "<td class='f9i'>";
echo "<img src='images/b_down.gif'> - ".$lang_label["broken_light"]."</td>";
echo "</table>";
}
else {
echo '<tr><td></td></tr><tr><td class="red">'.$lang_label["no_agent"].'</td></tr></table>';
}
} else {
audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access Agent view");
require ("general/noaccess.php");
}
}
?>

View File

@ -0,0 +1,169 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
if (comprueba_login() == 0) {
if ((give_acl($id_user, 0, "AR")==1) or (give_acl($id_user,0,"AW")) or (dame_admin($id_user)==1)) {
if (isset($_GET["id_agente"])){
echo "<h3>".$lang_label["alert_listing"]."<a href='help/".$help_code."/chap3.php#3324' target='_help' class='help'><span>".$lang_label["help"]."</span></a></h3>";
$id_agente = $_GET["id_agente"];
$query_gen='SELECT talerta_agente_modulo.id_alerta, talerta_agente_modulo.descripcion, talerta_agente_modulo.last_fired, talerta_agente_modulo.times_fired, tagente_modulo.nombre, talerta_agente_modulo.dis_max, talerta_agente_modulo.dis_min, talerta_agente_modulo.max_alerts, talerta_agente_modulo.time_threshold, talerta_agente_modulo.min_alerts, talerta_agente_modulo.id_agente_modulo, tagente_modulo.id_agente_modulo FROM tagente_modulo, talerta_agente_modulo WHERE tagente_modulo.id_agente = '.$id_agente.' AND tagente_modulo.id_agente_modulo = talerta_agente_modulo.id_agente_modulo order by tagente_modulo.nombre';
$result_gen=mysql_query($query_gen);
if (mysql_num_rows ($result_gen)) {
echo "<table cellpadding='3' cellspacing='3' width=750 border=0>";
echo "<tr><th>".$lang_label["type"]."<th>".$lang_label["name"]."</th><th>".$lang_label["description"]."</th><th>".$lang_label["min_max"]."</th><th>".$lang_label["time_threshold"]."</th><th>".$lang_label["last_fired"]."</th><th>".$lang_label["times_fired"]."</th><th>".$lang_label["status"]."</th>";
$color=1;
while ($data=mysql_fetch_array($result_gen)){
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
echo "<tr>";
echo "<td class='".$tdcolor."'>".dame_nombre_alerta($data["id_alerta"]);
echo "<td class='".$tdcolor."'>".$data["nombre"];
echo "<td class='".$tdcolor."'>".$data["descripcion"];
echo "<td class='".$tdcolor."'>".$data["dis_max"]."/".$data["dis_min"];
echo "<td class='".$tdcolor."'>".$data["time_threshold"];
echo "<td class='".$tdcolor."f9'>".$data["last_fired"];
echo "<td class='".$tdcolor."'>".$data["times_fired"];
if ($data["times_fired"] <> 0)
echo "<td class='".$tdcolor."' align='center'><img src='images/dot_red.gif'>";
else
echo "<td class='".$tdcolor."' align='center'><img src='images/dot_green.gif'>";
}
echo '<tr><td colspan="9"><div class="raya"></div></td></tr></table>';
}
else echo "<font class='red'>".$lang_label["no_alerts"]."</font>";
}
else
{
echo "<h2>".$lang_label["ag_title"]."</h2>";
echo "<h3>".$lang_label["alert_listing"]."<a href='help/".$help_code."/chap3.php#335' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
$iduser_temp=$_SESSION['id_usuario'];
if (isset($_POST["ag_group"]))
$ag_group = $_POST["ag_group"];
elseif (isset($_GET["group_id"]))
$ag_group = $_GET["group_id"];
else
$ag_group = -1;
if (isset($_GET["ag_group_refresh"])){
$ag_group = $_GET["ag_group_refresh"];
}
if (isset($_POST["ag_group"])){
$ag_group = $_POST["ag_group"];
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/estado_alertas&refr=60&ag_group_refresh=".$ag_group."'>";
} else {
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/estado_alertas&refr=60'>";
}
echo "<table border='0'><tr><td valign='middle'>";
echo "<select name='ag_group' onChange='javascript:this.form.submit();'>";
if ( $ag_group > 1 ){
echo "<option value='".$ag_group."'>".dame_nombre_grupo($ag_group);
}
echo "<option value=1>".dame_nombre_grupo(1);
$mis_grupos[]=""; // Define array mis_grupos to put here all groups with Agent Read permission
$sql='SELECT * FROM tgrupo';
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result)){
if ($row["id_grupo"] != 1){
if (give_acl($iduser_temp,$row["id_grupo"], "AR") == 1){
echo "<option value='".$row["id_grupo"]."'>".dame_nombre_grupo($row["id_grupo"]);
$mis_grupos[]=$row["id_grupo"]; //Put in an array all the groups the user belongs
}
}
}
echo "</select>";
echo "<td valign='middle'><noscript><input name='uptbutton' type='submit' class='sub' value='".$lang_label["show"]."'></noscript></form>";
// Show only selected groups
if ($ag_group > 1)
$sql='SELECT * FROM tagente WHERE id_grupo='.$ag_group.' order by nombre';
else
$sql='SELECT * FROM tagente order by id_grupo, nombre';
$result=mysql_query($sql);
if (mysql_num_rows($result)){
$color=1;
while ($row=mysql_fetch_array($result)){ //while there are agents
if ($row["disabled"] == 0) {
$id_agente = $row['id_agente'];
$nombre_agente = $row["nombre"];
$query_gen='SELECT talerta_agente_modulo.id_alerta, talerta_agente_modulo.descripcion, talerta_agente_modulo.last_fired, talerta_agente_modulo.times_fired, talerta_agente_modulo.id_agente_modulo, tagente_modulo.id_agente_modulo FROM tagente_modulo, talerta_agente_modulo WHERE tagente_modulo.id_agente = '.$id_agente.' AND tagente_modulo.id_agente_modulo = talerta_agente_modulo.id_agente_modulo';
$result_gen=mysql_query($query_gen);
if (mysql_num_rows ($result_gen)) {
while ($data=mysql_fetch_array($result_gen)){
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
if (!isset($string)) {
$string='';
}
$string=$string."<tr><td class='".$tdcolor."'><a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$id_agente."'><b>".$nombre_agente."</b>";
$string=$string."<td class='".$tdcolor."'>".dame_nombre_alerta($data["id_alerta"]);
$string=$string."<td class='".$tdcolor."'>".$data["descripcion"];
$string=$string."<td class='".$tdcolor."'>".$data["last_fired"];
$string=$string."<td class='".$tdcolor."'>".$data["times_fired"];
if ($data["times_fired"] <> 0)
$string=$string."<td class='".$tdcolor."' align='center'><img src='images/dot_red.gif'>";
else
$string=$string."<td class='".$tdcolor."' align='center'><img src='images/dot_green.gif'>";
}
}
else if($ag_group>1) {
unset($string);
} //end result
} //end disabled=0
} //end while
if (isset($string)) {
echo "<td class='f9l30'>";
echo "<img src='images/dot_red.gif'> - ".$lang_label["fired"];
echo "&nbsp;&nbsp;</td>";
echo "<td class='f9'>";
echo "<img src='images/dot_green.gif'> - ".$lang_label["not_fired"];
echo "</td></tr></table>";
echo "<br>";
echo "<table cellpadding='3' cellspacing='3' width='700'>";
echo "<tr><th>".$lang_label["agent"]."</th><th>".$lang_label["type"]."</th><th>".$lang_label["description"]."</th><th>".$lang_label["last_fired"]."</th><th>".$lang_label["times_fired"]."</th><th>".$lang_label["status"]."</th>";
echo $string; //built table of alerts
echo "<tr><td colspan='6'><div class='raya'></div></td></tr></table>";
}
else {
echo "<tr><td></td></tr><tr><td><font class='red'>".$lang_label["no_alert"]."</font></td></tr></table>";
}
} else echo "<tr><td></td></tr><tr><td><font class='red'>". $lang_label["no_agent"].$lang_label["no_agent_alert"]."</td></tr></table>";
}
} //end acl
} //end login
?>

View File

@ -0,0 +1,144 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
if (comprueba_login() == 0) {
if (isset($_GET["id_agente"])){
$id_agente = $_GET["id_agente"];
// Connect BBDD
$sql1='SELECT * FROM tagente WHERE id_agente = '.$id_agente;
$result=mysql_query($sql1);
if ($row=mysql_fetch_array($result)){
$intervalo = $row["intervalo"]; // Interval in seconds to receive data
$nombre_agente = $row["nombre"];
$direccion_agente =$row["direccion"];
$ultima_act = $row["ultimo_contacto"];
$ultima_act_remota =$row["ultimo_contacto_remoto"];
$comentarios = $row["comentarios"];
$id_grupo = $row["id_grupo"];
$id_os= $row["id_os"];
$os_version = $row["os_version"];
$agent_version = $row["agent_version"];
$disabled= $row["disabled"];
$agent_type= $row["agent_type"];
$server = $row["id_server"];
} else
{
echo "<h3 class='error'>".$lang_label["agent_error"]."</h3>";
echo "</table>";
include ("general/footer.php");
exit;
}
}
// Load icon index from tgrupos
$iconindex_g[]="";
$sql_tg='SELECT id_grupo, icon FROM tgrupo';
$result_tg=mysql_query($sql_tg);
while ($row_tg=mysql_fetch_array($result_tg)){
$iconindex_g[$row_tg["id_grupo"]] = $row_tg["icon"];
}
echo "<h2>".$lang_label["ag_title"]."</h2>";
echo "<h3>".$lang_label["view_agent_general_data"]."<a href='help/".$help_code."/chap3.php#3321' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
echo '<table cellspacing=3 cellpadding=3 border=0 width=750>';
echo '<tr><td class="datos"><b>'.$lang_label["agent_name"].'</b> <td class="datos">'.salida_limpia($nombre_agente);
echo " &nbsp;<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$id_agente."&refr=60'><img src='images/refresh.gif' class='top' border=0></a>";
if (dame_admin($_SESSION['id_usuario'])==1 )
echo "&nbsp; <a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=".$id_agente."'><img src='images/setup.gif' border=0 width=19 class='top' ></a>";
// Data base access graph
echo "<td rowspan=4><b>".$lang_label["agent_access_rate"]."</b><br><br>
<img border=0 src='reporting/fgraph.php?id=".$id_agente."&tipo=agentaccess&periodo=1440' border=0>";
echo '<tr><td class="datos2"><b>'.$lang_label["ip_address"].'</b> <td class="datos2">'.salida_limpia($direccion_agente);
if ($agent_type == 0) {
echo '<tr><td class="datos"><b>'.$lang_label["os"].'</b> <td class="datos"><img border=0 src="images/'.dame_so_icon($id_os).'"> - '.dame_so_name($id_os);
} elseif ($agent_type == 1) {
echo '<tr><td class="datos2"><b>'.$lang_label["agent_type"].'</b> <td class="datos2"><img border=0 src="images/network.gif"';
}
if ($os_version != "") echo ' v'.salida_limpia($os_version);
echo '<tr><td class="datos2"><b>'.$lang_label["interval"].'</b> <td class="datos2">'.$intervalo;
echo '<tr><td class="datos"><b>'.salida_limpia($lang_label["description"]).'</b> <td class="datos">'.$comentarios;
echo "<td rowspan=6><b>".$lang_label["agent_module_shareout"]."</b><br><br>";
echo "<img border=0 src='reporting/fgraph.php?id=".$id_agente."&tipo=agentmodules' border=0>";
echo '<tr><td class="datos2"><b>'.salida_limpia($lang_label["group"]).'</b> <td class="datos2"> <img src="images/g_'.$iconindex_g[$row["id_grupo"]].'.gif" border="0"> ( '.dame_grupo($id_grupo).' )';
if ($agent_type == 0) {
echo '<tr><td class="datos"><b>'.$lang_label["agentversion"].'</b> <td class="datos">'.salida_limpia($agent_version);
}
// Total packets
echo '<tr><td class="datos2"><b>'.$lang_label["total_packets"].'</b> <td class="datos2">';
$total_paketes= 0;
$id_agente = dame_agente_id($nombre_agente);
$sql_2='SELECT * FROM tagente_modulo WHERE id_agente = '.$id_agente;
$result_t=mysql_query($sql_2);
while ($row=mysql_fetch_array($result_t)){
$sql_3='SELECT COUNT(*) FROM tagente_datos WHERE id_agente_modulo = '.$row["id_agente_modulo"];
$result_3=mysql_query($sql_3);
$row3=mysql_fetch_array($result_3);
$total_paketes = $total_paketes + $row3[0];
}
echo $total_paketes;
// Last contact
echo '<tr><td class="datos"><b>'.$lang_label["last_contact"]." / ".$lang_label["remote"].'</b> <td class="datosf9">';
echo $ultima_act." / ".$ultima_act_remota;
// Asigned/active server
echo '<tr><td class="datos2"><b>'.$lang_label["server_asigned"].'</b> <td class="datos2">';
if ($server == ""){
echo "N/A";
} else {
echo give_server_name($server);
}
// Next contact
$ultima = strtotime($ultima_act);
$ahora = strtotime("now");
$diferencia = $ahora - $ultima;
// Get higher interval set for the set of modules from this agent
$sql_maxi ="SELECT MAX(module_interval) FROM tagente_modulo WHERE id_agente = ".$id_agente;
$result_maxi=mysql_query($sql_maxi);
if ($row_maxi=mysql_fetch_array($result_maxi))
if ($row_maxi[0] > 0 )
$intervalo = $row_maxi[0];
if ($intervalo > 0){
$percentil = round($diferencia/(($intervalo*2) / 100));
} else {
$percentil = -1;
}
echo '<tr><td class="datos"><b>'.$lang_label["next_contact"].'</b> <td class="datos">';
echo "<img src='reporting/fgraph.php?tipo=progress&percent=".$percentil."&height=20&width=200'>";
echo "</td></tr></table>";
}
?>

View File

@ -0,0 +1,178 @@
<?php
// Pandora - the Free Distributed Monitoring System
// ================================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
if (comprueba_login() == 0)
if (give_acl($id_user, 0, "AR")==1) {
echo "<h2>".$lang_label["ag_title"]."</h2>";
echo "<h3>".$lang_label["group_view"]."<a href='help/".$help_code."/chap3.php#324' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
$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;
$intervalo = $row1["intervalo"];
$id_agente=$row1["id_agente"]; // Bugsolved 0607113 <slerena@gmail.com>
// 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 "<font class='red'>".$lang_label["no_agent_def"]."</font>";}
$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 "<table border=0 cellpadding=10 cellspacing=10>";
for ($table=0;$table < $ancho;$table++){
echo "<tr class='bot'>";
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="<img src='images/dot_down.gif' alt=''>";
}
if ($grupo[$real_count]["bad"]>0) {
$icono_type=$icono_type."<img src='images/dot_red.gif' alt=''>";
}
if ($grupo[$real_count]["ok"]>0) {
$icono_type=$icono_type."<img src='images/dot_green.gif' alt=''>";
}
if ($grupo[$real_count]["data"]>0) {
$icono_type=$icono_type."<img src='images/dot_white.gif' alt=''>";
}
// Show yellow light if there are recent alerts fired for this group
if ($grupo[$real_count]["alerts"] > 0 ){
$icono_type=$icono_type."<img src='images/dot_yellow.gif' alt=''>";
}
// TOOLTIP.
$celda = "<td class='bot' width=100><a href='index.php?sec=estado&amp;sec2=operation/agentes/estado_agente&amp;refr=60&amp;group_id=".$grupo[$real_count]["id_grupo"]."' class='info'><img class='top' src='images/groups/".$icono_grupo."_1.gif' border='0' alt=''>&nbsp;
<span>
<table cellspacing='2' cellpadding='0' style='margin-left:20px'>
<tr><td colspan='2' width='91' class='lb'>".$lang_label["agents"].": </td></tr>
<tr><td colspan='2' class='datos' align='center'><b>".$grupo[$real_count]["agent"]."</b></td></tr></table>
<table cellspacing='2' cellpadding='0' style='margin-left:20px'>
<tr><td colspan='2' width='90' class='lb'>".ucfirst($lang_label["monitors"]).":</td></tr>
<tr><td class='datos'><img src='images/b_green.gif' align='top' alt='' border='0'> ".$lang_label["ok"].": </td><td class='datos'><font class='greenb'>".$grupo[$real_count]["ok"]."</font></td></tr>
<tr><td class='datos'><img src='images/b_down.gif' align='top' alt='' border='0'> ".$lang_label["down"].": </td><td class='datos'><font class='grey'>".$grupo[$real_count]["down"]."</font></td></tr>
<tr><td class='datos'><img src='images/b_red.gif' align='top' alt='' border='0'> ".$lang_label["fail"].": </td><td class='datos'><font class='redb'>".$grupo[$real_count]["bad"]."</font></td></tr>
<tr><td class='datos'><img src='images/b_yellow.gif' align='top' alt='' border='0'> ".$lang_label["alerts"].": </td><td class='datos'><font class='grey'>".$grupo[$real_count]["alerts"]."</font></td></tr>
</table></span></a>";
// 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 . "<a href='index.php?sec=estado&sec2=operation/agentes/estado_grupo&update_netgroup=".$grupo[$real_count]["id_grupo"]."'><img src='images/target.gif' border=0></a>";
}
$celda = $celda . "<br><br>".$icono_type."<br><br><font class='gr'>".$group_name."</font>";
echo $celda;
}
$real_count++;
}
echo "</tr>";
}
echo "</table>";
}
else {
echo '<tr><td></td></tr><tr><td class="red">'.$lang_label["no_agent"].'</td></tr></table>';
}
}
else {
audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access Agent view (Grouped)");
require ("general/noaccess.php");
}
?>

View File

@ -0,0 +1,96 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load globar vars
require("include/config.php");
if (comprueba_login() == 0) {
// $id_agente can be obtained as global variable or GET param.
if (isset($_GET["id_agente"])){
$id_agente = $_GET["id_agente"];
}
echo "<h3>".$lang_label["monitor_listing"]."<a href='help/".$help_code."/chap3.php#3323' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
// Get all module from agent
$sql_t='SELECT * FROM tagente_estado, tagente_modulo WHERE tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.id_agente='.$id_agente.' and tagente_estado.estado != 100 order by tagente_modulo.nombre';
$result_t=mysql_query($sql_t);
if (mysql_num_rows ($result_t)) {
echo "<table width='750' cellpadding=3 cellspacing=3>";
echo "<tr><th>".$lang_label["type"]."<th>".$lang_label["module_name"]."<th>".$lang_label["description"]."<th>".$lang_label["status"]."<th>".$lang_label["interval"]."<th>".$lang_label["last_contact"];
$color=0;
while ($row_t=mysql_fetch_array($result_t)){
# For evey module in the status table
$est_modulo = $row_t["nombre"];
$est_tipo = dame_nombre_tipo_modulo($row_t["id_tipo_modulo"]);
$est_description = $row_t["descripcion"];
$est_timestamp = $row_t["timestamp"];
$est_estado = $row_t["estado"];
$est_datos = $row_t["datos"];
$est_cambio = $row_t["cambio"];
$est_interval = $row_t["module_interval"];
if (($est_interval != $intervalo) && ($est_interval > 0)) {
$temp_interval = $est_interval;
} else {
$temp_interval = $intervalo;
}
if ($est_estado <>100){ # si no es un modulo de tipo datos
# Determinamos si se ha caido el agente (tiempo de intervalo * 2 superado)
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
$ahora=date("Y/m/d H:i:s");
$seconds = strtotime($ahora) - strtotime($row_t["timestamp"]);
if ($seconds >= ($temp_interval*2)) // If every interval x 2 secs. we get nothing, there's and alert
$agent_down = 1;
else
$agent_down = 0;
echo "<tr><td class='".$tdcolor."'>".$est_tipo;
echo "<td class='".$tdcolor."'>".$est_modulo;
echo "<td class='".$tdcolor."f9'>".substr($est_description,0,32);
// echo "<td class='datos'>".$row3["datos"];
if ($agent_down == 1)
echo "<td class='".$tdcolor."' align='center'><img src='images/b_down.gif'>";
else
if ($est_estado == 1)
if ($est_cambio ==1)
echo "<td class='".$tdcolor."' align='center'><img src='images/b_yellow.gif'>";
else
echo "<td class='".$tdcolor."' align='center'><img src='images/b_red.gif'>";
else
echo "<td class='".$tdcolor."' align='center'><img src='images/b_green.gif'>";
echo "<td class='".$tdcolor."'>";
echo $temp_interval;
echo "<td class='".$tdcolor."f9'>";
if ($agent_down == 1) // Si el agente esta down, lo mostramos en negrita y en rojo
echo "<b><font color='red'>";
echo $row_t["timestamp"];
}
}
echo '<tr><td colspan="7"><div class="raya"></div></td></tr></table>';
}
else
echo "<font class='red'>".$lang_label["no_monitors"]."</font>";
}
?>

View File

@ -0,0 +1,181 @@
<?PHP
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
?>
<!-- Javascript -->
<script language="javascript1.2" type="text/javascript">
<!--
function winopeng(url,wid) {
nueva_ventana=open(url,wid,"width=580,height=250,status=no,toolbar=no,menubar=no");
// WARNING !! Internet Explorer DOESNT SUPPORT "-" CARACTERS IN WINDOW HANDLE VARIABLE
// I WAS 20 HOURS TESTING FOR THIS BUG >:( !!!
status =wid;
}
function help_popup(help_id) {
nueva_ventana=open("general/pandora_help.php?id=1","width=300,height=100,status=no,toolbar=no,menubar=no");
}
-->
</script>
<?php
// Pandora - The Free Monitoring System
// This code is protected by GPL license.
// Este codigo esta protegido por la licencia GPL.
// Sancho Lerena <slerena@gmail.com>, 2003-2006
// Raúl Mateos <raulofpandora@gmail.com>, 2005-2006
// Load global vars
require("include/config.php");
//require("include/functions.php");
//require("include/functions_db.php");
if (comprueba_login() == 0) {
if (isset($_GET["id_agente"])){
$id_agente = $_GET["id_agente"];
}
// Load icon index from ttipo_modulo
$iconindex[]="";
$sql_tm='SELECT id_tipo, icon FROM ttipo_modulo';
$result_tm=mysql_query($sql_tm);
while ($row_tm=mysql_fetch_array($result_tm)){
$iconindex[$row_tm["id_tipo"]] = $row_tm["icon"];
}
// View last data packet
// Get timestamp of last packet
$sql_t='SELECT * FROM tagente WHERE id_agente = '.$id_agente;
$result_t=mysql_query($sql_t);
$row_t=mysql_fetch_array($result_t);
$timestamp_ref = $row_t["ultimo_contacto_remoto"];
$timestamp_lof = $row_t["ultimo_contacto"];
$intervalo_agente = $row_t["intervalo"];
// Get last packet
$sql3='SELECT * FROM tagente_modulo, tagente_estado WHERE tagente_modulo.id_agente = '.$id_agente.' AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo ORDER BY id_module_group, nombre';
//$sql3='SELECT * FROM tagente_modulo WHERE id_agente = '.$id_agente.' order by id_module_group';
$label_group=0;
$last_label = "";
echo "<h3>".$lang_label["last_data_chunk"]."<a href='help/".$help_code."/chap3.php#3322' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
$result3=mysql_query($sql3);
if (mysql_num_rows ($result3)) {
echo "<table width='750' cellpadding='3' cellspacing='3'><th>X<th>".$lang_label["module_name"];
echo "<th>".$lang_label["type"]."<th>".$lang_label["int"]."<th>".$lang_label["description"]."<th>".$lang_label["data"]."<th>".$lang_label["graph"]."<th>".$lang_label["raw_data"]."<th>".$lang_label["timestamp"];
$texto='';
$color = 1;
while ($row3=mysql_fetch_array($result3)){
// Calculate table line color
if ($color == 1){
$tdcolor = "datos";
$color = 0;
}
else {
$tdcolor = "datos2";
$color = 1;
}
// Render module group names (fixed code)
$nombre_grupomodulo = dame_nombre_grupomodulo ($row3["id_module_group"]);
if ($nombre_grupomodulo != ""){
if (($label_group == 0) || ($last_label != $nombre_grupomodulo)){ // Show label module group
$label_group = -1;
$last_label = $nombre_grupomodulo;
echo "<tr><td class='datos3' align='center' colspan=9><b>".$nombre_grupomodulo."</b>";
}
}
// Begin to render data ...
echo "<tr><td class='$tdcolor'>";
// Render network exec module button, only when
// Agent Write for this module and group, is given
// Is a network module
// Has flag = 0
$id_grupo = $row_t["id_grupo"];
$id_usuario=$_SESSION["id_usuario"];
if (give_acl($id_usuario, $id_grupo, "AW")==1){
if ($row3["id_tipo_modulo"] > 4){
if ($row3["flag"] == 0){
echo "<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$id_agente."&id_agente_modulo=".$row3["id_agente_modulo"]."&flag=1&refr=60'><img src='images/target.gif' border=0></a>";
} else {
echo "<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$id_agente."&id_agente_modulo=".$row3["id_agente_modulo"]."&flag=1&refr=60'><img src='images/refresh.gif' border=0></a>";
}
}
}
$nombre_grupomodulo = dame_nombre_grupomodulo ($row3["id_module_group"]);
if ($nombre_grupomodulo != ""){
if (($label_group == 0) || ($last_label != $nombre_grupomodulo)){ // Show label module group
$label_group = -1;
$last_label = $nombre_grupomodulo;
$texto = $texto. "<td class='$tdcolor' align='center' colspan=7><b>".$nombre_grupomodulo."</b>";
}
}
$nombre_tipo_modulo = dame_nombre_tipo_modulo($row3["id_tipo_modulo"]);
echo "<td class='".$tdcolor."_id'>";
echo salida_limpia(substr($row3["nombre"],0,15));
echo "<td class='".$tdcolor."'>";
echo "<img src='images/".$iconindex[$row3["id_tipo_modulo"]]."' border=0>";
echo "<td class='".$tdcolor."'>";
if ($row3["module_interval"] != 0)
echo $row3["module_interval"];
else
echo $intervalo_agente;
//echo $nombre_tipo_modulo;
echo "<td class='".$tdcolor."f9' title='".$row3["descripcion"]."'>";
echo salida_limpia(substr($row3["descripcion"],0,32));
if (strlen($row3["descripcion"]) > 32){
echo "...";
}
// For types not string type (3 data_string, 9 tcp_string, 14 snmp_string)
if (($row3["id_tipo_modulo"] != 3) AND ($row3["id_tipo_modulo"]!=10) AND ($row3["id_tipo_modulo"]!=17)){
echo "<td class=".$tdcolor.">";
echo substr($row3["datos"],0,5);
$handle = "stat".$nombre_tipo_modulo."_".$nombre_agente;
$url = 'reporting/procesos.php?agente='.$nombre_agente;
$win_handle=dechex(crc32($nombre_agente.$row3["nombre"]));
echo "<td class=".$tdcolor." width='78'>";
echo "<a href='javascript:winopeng(\"reporting/stat_win.php?tipo=mes&id=".$row3["id_agente_modulo"]."&refresh=180000\", \"mes_".$win_handle."\")'><img border=0 src='images/grafica_m.gif'></a>&nbsp;";
$link ="winopeng('reporting/stat_win.php?tipo=semana&id=".$row3["id_agente_modulo"]."&refresh=6000','sem_".$win_handle."')";
echo '<a href="javascript:'.$link.'"><img border=0 src="images/grafica_w.gif"></a>&nbsp;';
$link ="winopeng('reporting/stat_win.php?tipo=dia&id=".$row3["id_agente_modulo"]."&refresh=800','dia_".$win_handle."')";
echo '<a href="javascript:'.$link.'"><img border=0 src="images/grafica_d.gif"></a>&nbsp;';
$link ="winopeng('reporting/stat_win.php?tipo=hora&id=".$row3["id_agente_modulo"]."&refresh=30','hora_".$win_handle."')";
echo '<a href="javascript:'.$link.'"><img border=0 src="images/grafica_h.gif"</a>';
}
else { # Writing string data in different way :)
echo "<td class='".$tdcolor."f9' colspan='2'>";
echo salida_limpia(substr($row3["datos"],0,42));
}
echo "<td class=".$tdcolor." width=70>";
echo "<a href='index.php?sec=estado&sec2=operation/agentes/datos_agente&tipo=mes&id=".$row3["id_agente_modulo"]."'><img border=0 src='images/data_m.gif'>&nbsp;&nbsp;";
echo "<a href='index.php?sec=estado&sec2=operation/agentes/datos_agente&tipo=semana&id=".$row3["id_agente_modulo"]."'><img border=0 src='images/data_w.gif'>&nbsp;&nbsp;";
echo "<a href='index.php?sec=estado&sec2=operation/agentes/datos_agente&tipo=dia&id=".$row3["id_agente_modulo"]."'><img border=0 src='images/data_d.gif'>";
echo "<td class='".$tdcolor."f9'>".$row3["timestamp"];
//}
}
echo '<tr><td colspan="9"><div class="raya"></div></td></tr></table>';
}
else echo "<font class='red'>".$lang_label["no_modules"]."</font>";
}
?>

View File

@ -0,0 +1,219 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
if (comprueba_login() == 0)
$id_user = $_SESSION["id_usuario"];
if ( (give_acl($id_user, 0, "AR")==1) OR (give_acl($id_user, 0, "AW")==1) ){
if ((isset($_GET["operacion"])) AND (! isset($_POST["update_agent"]))){
if (isset ($_POST["copiar"])){ // Export main button
echo "<h2>".$lang_label["ag_title"]."</h2>";
echo "<h3>".$lang_label["export_title"]."<a href='help/".$help_code."/chap3.php#336' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
if (isset ($_POST["origen_modulo"])){
if (isset ($_POST["csv"])) // CSV version
$csv = 1;
else
$csv = 0;
$origen = $_POST["origen"];
if (give_acl($id_user,dame_id_grupo($origen),"AR")!=1) {
audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access Agent Export Data");
require ("general/noaccess.php");
}
$origen_modulo = $_POST["origen_modulo"];
$from_date =$_POST["from_date"];
$to_date=$_POST["to_date"];
echo $lang_label["db_agent_bra"]."<b>".dame_nombre_agente($origen)."</b>".$lang_label["from2"]."<b>".$from_date."</b>".$lang_label["to2"]."<b>".$to_date."</b><br>";
if ($csv == 0){
echo "<br><table cellpadding='3' cellspacing='3' width='600'><tr><th class='datos'>".$lang_label["module"]."</th><th class=datos>".$lang_label["data"]."<th class='datos'>Timestamp</th>";
$separador_1 = "<tr><td class='datos_id'>";
$separador_2 = "<td class='datos'>";
$separador_3= "";
} else {
$separador_1 = "<br>'";
$separador_2 = "','";
$separador_3 = "'";
}
for ($a=0;$a <count($origen_modulo); $a++){ // For each module
$id_modulo = $origen_modulo[$a];
$sql1='SELECT * FROM tdatos WHERE id_agente = '.$origen;
$tipo = dame_nombre_tipo_modulo(dame_id_tipo_modulo_agentemodulo($id_modulo));
if ($tipo == "generic_data_string")
$sql1='SELECT * FROM tagente_datos_string WHERE timestamp > "'.$from_date.'" AND timestamp < "'.$to_date.'" AND id_agente_modulo ='.$id_modulo.' ORDER BY timestamp DESC';
else
$sql1='SELECT * FROM tagente_datos WHERE timestamp > "'.$from_date.'" AND timestamp < "'.$to_date.'" AND id_agente_modulo ='.$id_modulo.' ORDER BY timestamp DESC';
$result1=mysql_query($sql1);
while ($row=mysql_fetch_array($result1)){
echo $separador_1;
echo dame_nombre_modulo_agentemodulo($id_modulo);
echo $separador_2;
echo $row["datos"];
echo $separador_2;
echo $row["timestamp"];
echo $separador_3;
}
}
if ($csv == 0) {
echo "<tr><td colspan='3'><div class='raya'></div></td></tr>";
}
echo "</table>";
} else echo "<b class='error'>".$lang_label["no_sel_mod"]."</b>";
}
} else { // Form view
?>
<h2><?php echo $lang_label["ag_title"] ?></h2>
<h3><?php echo $lang_label["export_data"] ?><a href='help/<?php echo $help_code; ?>/chap3.php#336' target='_help' class='help'>&nbsp;<span><?php echo $lang_label["help"] ?></span></a></h3>
<form method="post" action="index.php?sec=estado&sec2=operation/agentes/exportdata&operacion=1" name="export_form">
<table width=550 border=0 cellspacing=3 cellpadding=5 class=fon>
<tr>
<td class='datost'><b><?php echo $lang_label["source_agent"] ?> </b><br><br>
<select name="origen" class="w130">
<?php
if ( (isset($_POST["update_agent"])) AND (isset($_POST["origen"])) ) {
echo "<option value=".$_POST["origen"].">".dame_nombre_agente($_POST["origen"]);
}
// Show combo with agents
$sql1='SELECT * FROM tagente';
$result=mysql_query($sql1);
while ($row=mysql_fetch_array($result)){
if ( (isset($_POST["update_agent"])) AND (isset($_POST["origen"])) ){
if (give_acl($id_user, $row["id_grupo"], "AR")==1)
if ( $_POST["origen"] != $row["id_agente"])
echo "<option value=".$row["id_agente"].">".$row["nombre"];
}
else
if (give_acl($id_user, $row["id_grupo"], "AR")==1)
echo "<option value=".$row["id_agente"].">".$row["nombre"];
}
echo "</select>&nbsp;&nbsp;<input type=submit name='update_agent' class=sub value='".$lang_label["get_info"]."'><br><br>";
echo "<b>".$lang_label["modules"]."</b><br><br>";
echo "<select name='origen_modulo[]' size=8 multiple=yes class='w130'>";
if ( (isset($_POST["update_agent"])) AND (isset($_POST["origen"])) ) {
// Populate Module/Agent combo
$agente_modulo = $_POST["origen"];
$sql1="SELECT * FROM tagente_modulo WHERE id_agente = ".$agente_modulo;
$result = mysql_query($sql1);
while ($row=mysql_fetch_array($result)){
if (give_acl($id_user, $row["id_grupo"], "AR")==1)
echo "<option value=".$row["id_agente_modulo"].">".$row["nombre"];
}
}
?>
<td class='datos2t'><b><?php echo $lang_label["date_range"]; ?></b><br><br>
<table cellspacing=3 cellpadding=3 border=0>
<?php
$mh = "10080"; // a week, una semana
$m_year = date("Y", time()-$mh*60);
$m_month = date("m", time()-$mh*60);
$m_day = date("d", time()-$mh*60);
$m_hour = date("H", time()-$mh*60);
$m_min = date("i", time()-$mh*60);
$m = $m_year."-".$m_month."-".$m_day." ".$m_hour.":".$m_min.":"."00"; //one week ago
$ahora = date("Y-m-d H:i:s"); //Now
require ("include/calendar.php"); //Including calendar
$result=mysql_query("SELECT token, value FROM tconfig");
$row=mysql_fetch_array($result);
if ($row["token"]=="language_code") $locale=$row["value"]; //language of calendar.
$time = time();
if (isset($_GET["month"])) $month = $_GET["month"];
else $month = date('n', $time);
if (isset($_GET["year"])) $year = $_GET["year"];
else $year = date('Y', $time);
//preparate months (the next month to december is january and back)
$first_of_month = gmmktime(0,0,0,$month,1,$year);
list($month, $year) = explode(',',gmstrftime('%m,%Y',$first_of_month));
$month_a = ($month-1);
$month_d = ($month+1);
if ($month_d==13) {$year_d = $year; $year_a = $year;}
else {
if ($month==12) $year_d = $year+1;
else $year_d = $year;
if ($month==0) $year_a = $year-1;
else $year_a = $year;
}
if (isset($_GET["date_from"])) $date_from=$_GET["date_from"];
else
{if (isset($_POST["from_date"])) $date_from=$_POST["from_date"];
else $date_from=$m;
}
if (isset($_GET["date_to"])) $date_to=$_GET["date_to"];
else
{if (isset($_POST["to_date"])) $date_to=$_POST["to_date"];
else $date_to=$ahora;
}
$days_f = array();
$days_t = array();
$days_in_month=gmdate('t',$first_of_month);
//create links for days in every calendar:
for ($day_f=1; $day_f<=$days_in_month; $day_f++){
$days_f[$day_f]=array('index.php?sec=estado&sec2=operation/agentes/exportdata&date_from='.$year.'-'.$month.'-'.date('d',mktime(0, 0, 0, $month, $day_f, $year)).' 00:00:00&date_to='.$date_to.'&year='.$year.'&month='.$month);
}
for ($day_t=1; $day_t<=$days_in_month; $day_t++){
$days_t[$day_t]=array('index.php?sec=estado&sec2=operation/agentes/exportdata&date_from='.$date_from.'&date_to='.$year.'-'.$month.'-'.date('d',mktime(0, 0, 0, $month, $day_t, $year)).' 00:00:00'.'&year='.$year.'&month='.$month);
}
if (isset($date_from) && isset($date_to))
{$date="&date_from=".$date_from."&date_to=".$date_to;}
?>
<tr><td class='datost'><?php echo $lang_label["from"] ?>
&nbsp;&nbsp;<input type="text" class="sub" name="from_date" value="<?php echo $date_from; ?>" size="21"><br><br>
<?php
//print calendar and links for next and previous months
echo "
<table><tr>
<td class='datost'><a href='index.php?sec=estado&sec2=operation/agentes/exportdata&month=".$month_a."&year=".$year_a.$date."'><font size =+1>&laquo;</font></a></td>
<td>".generate_calendar($year, $month, $days_f, 3, NULL, $locale)."</td><td class='datost'><a href='index.php?sec=estado&sec2=operation/agentes/exportdata&month=".$month_d."&year=".$year_d.$date."'><font size =+1>&raquo;</font></a></td>
</tr></table>
"; ?>
<tr><td class='datost'><br><?php echo $lang_label["to"] ?>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" class="sub" name="to_date" value="<?php echo $date_to; ?>" size="21"><br><br>
<?php
//print calendar and links for next and previous months
echo "
<table><tr>
<td class='datost'><a href='index.php?sec=estado&sec2=operation/agentes/exportdata&month=".$month_a."&year=".$year_a.$date."'><font size =+1>&laquo;</font></a></td>
<td>".generate_calendar($year, $month, $days_t, 3, NULL, $locale)."</td><td class='datost'><a href='index.php?sec=estado&sec2=operation/agentes/exportdata&month=".$month_d."&year=".$year_d.$date."'><font size =+1>&raquo;</font></a></td>
</tr></table>
"; ?>
<tr class=datos><td><?php echo $lang_label["csv"] ?><td><input class="chk" type="checkbox" name="csv" value=0><br>
<tr><td></td></tr>
<tr><td colspan=2 class="datos2b" align="right">
<input type=submit name="copiar" class=sub value="<?php echo $lang_label["export"] ?>">
</table></td></tr>
</table>
<?php
}
} else {
audit_db($id_user,$REMOTE_ADDR, "ACL Violation","Trying to access Agent Export Data");
require ("general/noaccess.php");
}
?>

View File

@ -0,0 +1,174 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
if (comprueba_login() == 0) {
if ((give_acl($id_user, 0, "AR")==1) or (give_acl($id_user,0,"AW")) or (dame_admin($id_user)==1)) {
// Load icon index array from ttipo_modulo
$iconindex[]="";
$sql_tm='SELECT id_tipo, icon FROM ttipo_modulo';
$result_tm=mysql_query($sql_tm);
while ($row_tm=mysql_fetch_array($result_tm)){
$iconindex[$row_tm["id_tipo"]] = $row_tm["icon"];
}
echo "<h2>".$lang_label["ag_title"]."</h2>";
echo "<h3>".$lang_label["monitor_listing"]."<a href='help/".$help_code."/chap3.php#334' target='_help' class='help'>&nbsp;<span>".$lang_label["help"]."</span></a></h3>";
$iduser_temp=$_SESSION['id_usuario'];
if (isset($_POST["ag_group"]))
$ag_group = $_POST["ag_group"];
elseif (isset($_GET["group_id"]))
$ag_group = $_GET["group_id"];
else
$ag_group = -1;
if (isset($_GET["ag_group_refresh"])){
$ag_group = $_GET["ag_group_refresh"];
}
if (isset($_POST["ag_group"])){
$ag_group = $_POST["ag_group"];
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/status_monitor&refr=60&ag_group_refresh=".$ag_group."'>";
} else {
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/status_monitor&refr=60'>";
}
echo "<table border='0' cellspacing=3 cellpadding=3><tr><td valign='middle'>".$lang_label["group_name"];
echo "<td valign='middle'>";
echo "<select name='ag_group' onChange='javascript:this.form.submit();'>";
if ( $ag_group > 1 ){
echo "<option value='".$ag_group."'>".dame_nombre_grupo($ag_group);
}
echo "<option value=1>".dame_nombre_grupo(1);
$mis_grupos[]=""; // Define array mis_grupos to put here all groups with Agent Read permission
$sql='SELECT * FROM tgrupo';
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result)){
if ($row["id_grupo"] != 1){
if (give_acl($iduser_temp,$row["id_grupo"], "AR") == 1){
echo "<option value='".$row["id_grupo"]."'>".dame_nombre_grupo($row["id_grupo"]);
$mis_grupos[]=$row["id_grupo"]; //Put in an array all the groups the user belongs
}
}
}
echo "</select>";
// Module name selector
// This code thanks for an idea from Nikum, nikun_h@hotmail.com
if (isset($_POST["ag_modulename"])){
$ag_modulename = $_POST["ag_modulename"];
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/status_monitor&refr=60&ag_modulename=".$ag_modulename."'>";
} else {
echo "<form method='post' action='index.php?sec=estado&sec2=operation/agentes/status_monitor&refr=60'>";
}
echo "<tr><td valign='middle'>";
echo $lang_label["module_name"]."<td valign='middle'> <select name='ag_modulename' onChange='javascript:this.form.submit();'>";
if ( isset($ag_modulename)){
echo "<option>".$ag_modulename;
}
echo "<option>---";
$sql='SELECT DISTINCT nombre FROM tagente_modulo WHERE (id_tipo_modulo = 2) OR (id_tipo_modulo = 9) OR (id_tipo_modulo = 12) OR (id_tipo_modulo = 18) OR (id_tipo_modulo = 6) ';
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result)){
echo "<option>".$row[0];
}
echo "</select>";
echo "<td valign='middle'><noscript><input name='uptbutton' type='submit' class='sub' value='".$lang_label["show"]."'></noscript></form>";
// Show only selected names & groups
if ($ag_group > 1)
$sql='SELECT * FROM tagente WHERE id_grupo='.$ag_group.' ORDER BY nombre';
else
$sql='SELECT * FROM tagente ORDER BY id_grupo, nombre';
echo "</table>";
echo "<br>";
$color =1;
$result=mysql_query($sql);
if (mysql_num_rows($result)){
while ($row=mysql_fetch_array($result)){ //while there are agents
if ($row["disabled"] == 0) {
if ((isset($ag_modulename)) && ($ag_modulename != "---"))
$query_gen='SELECT * FROM tagente_modulo WHERE id_agente = '.$row["id_agente"].' AND nombre = "'.entrada_limpia($_POST["ag_modulename"]).'" AND ( (id_tipo_modulo = 2) OR (id_tipo_modulo = 9) OR (id_tipo_modulo = 12) OR (id_tipo_modulo = 18) OR (id_tipo_modulo = 6))';
else
$query_gen='SELECT * FROM tagente_modulo WHERE id_agente = '.$row["id_agente"].' AND ( (id_tipo_modulo = 2) OR (id_tipo_modulo = 9) OR (id_tipo_modulo = 12) OR (id_tipo_modulo = 18) OR (id_tipo_modulo = 6))';
$result_gen=mysql_query($query_gen);
if (mysql_num_rows ($result_gen)) {
while ($data=mysql_fetch_array($result_gen)){
if ($color == 1){
$tdcolor="datos";
$color =0;
} else {
$tdcolor="datos2";
$color =1;
}
if (!isset($string)) {$string='';}
$string=$string."<tr><td class='$tdcolor'><b>";
$string=$string."<a href='index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=".$data["id_agente"]."'>".dame_nombre_agente($data["id_agente"])."</a></b>";
$string=$string."<td class='$tdcolor'>";
$string=$string."<img src='images/".$iconindex[$data["id_tipo_modulo"]]."' border=0>";
$string=$string."<td class='$tdcolor'>".$data["nombre"];
$string=$string."<td class='".$tdcolor."f9'>".substr($data["descripcion"],0,30);
$string=$string."<td class='$tdcolor' width=25>".$data["max"]."/".$data["min"];
$string=$string."<td class='$tdcolor' width=25>";
if ($data["module_interval"] == 0){
$string=$string.give_agentinterval($data["id_agente"]);
} else {
$string=$string.$data["module_interval"];
}
$query_gen2='SELECT * FROM tagente_estado WHERE id_agente_modulo = '.$data["id_agente_modulo"];
$result_gen2=mysql_query($query_gen2);
$data2=mysql_fetch_array($result_gen2);
$string=$string."<td class='$tdcolor' align='center' width=20>";
if ($data2["datos"] > 0){
$string=$string."<img src='images/b_green.gif'>";
} else {
$string=$string."<img src='images/b_red.gif'>";
}
$string=$string."<td class='".$tdcolor."f9' width='140'>".$data2["timestamp"]."</td></tr>";
}
}
else if($ag_group>1) {unset($string);}
}
}
if (isset($string)) {
echo "<table cellpadding='3' cellspacing='3' width='750'><tr><th>".$lang_label["agent"]."</th><th>".$lang_label["type"]."</th><th>".$lang_label["name"]."</th><th>".$lang_label["description"]."</th><th>".$lang_label["max_min"]."</th><th>".$lang_label["interval"]."</th><th>".$lang_label["status"]."</th><th>".$lang_label["timestamp"]."</th>";
echo $string; //the built table of monitors
echo "<tr><td colspan='8'><div class='raya'></div></td></tr></table>";
echo "<br><table>";
echo "<tr><td class='f9i'>";
echo "<img src='images/b_green.gif'> - ".$lang_label["green_light"]."</td><td>&nbsp;</td>";
echo "<td class='f9i'>";
echo "<img src='images/b_red.gif'> - ".$lang_label["red_light"]."</td>";
echo "</table>";
}
else {
echo "<font class='red'>".$lang_label["no_monitors_g"]."</font>";
}
} else {
echo "<font class='red'>".$lang_label["no_agent"]."</font>";
}
} //end acl
} //end login
?>

View File

@ -0,0 +1,66 @@
<?php
// Pandora - the Free monitoring system
// ====================================
// Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com
// Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es
// Copyright (c) 2004-2006 Raul Mateos Martin, raulofpandora@gmail.com
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// Load global vars
require("include/config.php");
if (comprueba_login() == 0) {
if (isset($_GET["id_agente"])){
$id_agente = $_GET["id_agente"];
// get group for this id_agente
$query="SELECT * FROM tagente WHERE id_agente = ".$id_agente;
$res=mysql_query($query);
$row=mysql_fetch_array($res);
$id_grupo = $row["id_grupo"];
$id_usuario=$_SESSION["id_usuario"];
if (give_acl($id_usuario, $id_grupo, "AR")==1){
// Get the user who makes this request
$id_usuario = $_SESSION["id_usuario"];
// Check for Network FLAG change request
if (isset($_GET["flag"])){
if ($_GET["flag"]==1){
if (give_acl($id_usuario, $id_grupo, "AW")==1){
$query ="UPDATE tagente_modulo SET flag=1 WHERE id_agente_modulo = ".$_GET["id_agente_modulo"];
$res=mysql_query($query);
}
}
}
if (give_acl($id_usuario,$id_grupo, "AR") == 1){
require "estado_generalagente.php";
echo "<br>";
require "estado_ultimopaquete.php";
echo "<br>";
require "estado_monitores.php";
echo "<br>";
require "estado_alertas.php";
echo "<br>";
} else {
audit_db($id_usuario,$REMOTE_ADDR, "ACL Violation","Trying to read data from agent ".dame_nombre_agente($id_agente));
require ("general/noaccess.php");
}
} else {
audit_db($id_usuario,$REMOTE_ADDR, "ACL Violation","Trying to access (read) to agent ".dame_nombre_agente($id_agente));
include ("general/noaccess.php");
}
}
}
?>