miércoles, 17 de octubre de 2012

Tutorial MRTG en PHP



MRTG (Multi Router Traffic Grapher)
Es un graficador de trafico multi-ruta, este ayuda monitorear el trafico de la red, de servidores host, routers, swicht. Este graficador al momento de ejecutarse genera paginas html donde muestra los graficos en imágenes PNG. Se puede usar de distintas maneras el MRTG no solo funciona en el sistema operativo Windows sino tambien en Linux y MAC.

Instalacion y configuración (Win 7).
Descargue la versión mas reciente del PERL, puede encontrarlo en la siguiente pagina http://www.activestate.com/activeperl/downloads una vez terminada la descarga ejecute el archivo descargado, se recomienda instalar en la ruta predeterminada (C:\Perl\) después haga click en el botón Next otra vez Next, y Finish para finalizar.
Una vez terminada la instalación se debe verificar la ruta del lenguaje PERL, para esto vamos a ir a Equipo y hacemos click en el botón propiedades del sistema.


Una vez abierto le damos click en configuración avanzada.


Despues le damos click a variables de entorno



Vemos si la dirección del PERL esta correctamente.
Una vez verificado que la instalación fue correctamente instalado descargamos el MRTG del su pagina oficial. http://www.mrtg.org/.
Después de descargar descomprimimos y la carpeta MRTG lo guardamos en la raíz del disco C:\... y dentro la misma raíz creamos una carpeta llamada mrtghtml 



CONFIGURACIÓN Y COMPILACIÓN DEL MRTG (CFGMAKER) con PHP.
Creamos nuestra interfaz en php donde en el campo Host ingresamos la ip que se desea monitorear. Y en nombre de la pc el nombre deseado del archivo.



Tambien para esto necesitamos crear una base de dato con los campos Host donde se guardara la IP y nombre donde se guardara el nombre de la pc con extensión “nombre.cfg”
Nos creamos una hoja php donde vamos a direccionar el botón enviar de la interfaz. Y escribimos el siguiente código.


<?php
echo '<pre>';

//conectamos con la base de datos
$id = mysql_connect("localhost", "root", "");
mysql_select_db("mrtg", $id);

//ejecutamos el commando cfgmaker para poder captar los datos de //red donde este recupera el IP y el nombre
$comandoa="perl c:\mrtg\bin\cfgmaker Public@".$_REQUEST["Host"]." --global \"WorkDir: c:\mrtghtml\" --output ".$_REQUEST["paquete"].".cfg";
echo $comandoa;
$ultima_lineaa = system($comandoa, $retvala);
echo '
</pre>
<hr />Ultima linea de la salida: ' . $ultima_lineaa . '
<hr />Valor de retorno: ' . $retvala;
$consulta = "SELECT * FROM datos WHERE ip = '{$_REQUEST['Host']}' AND nombre = '{$_REQUEST['paquete']}'";
$datos = mysql_query($consulta, $id);
$numDatos = @mysql_num_rows($datos);

//se recupera el IP y el nombre ingresados y se lo guarda en la base de datos
mysql_query("insert into datos(ip,nombre)values
         ('$_REQUEST[Host]','$_REQUEST[paquete]')",$id) or die ("problemas en ".mysql_error());
         mysql_close($id);
echo'</br> agregadoooooooo';
?>

Debería verse de la siguiente manera:



Al agregar un nuevo ip deveria verse de la siguiente manera.


Se generaran archivos con extensión .cfg que es el nombre que se le da “nombre.cfg” estos se generaran en la carpeta de los archivos php.


Tambien se puede crear un hipervínculo parara agregar nuevos equipos direccionando a la pagina principal. Y otro hipervínculo para monitorear que se puede ver lo siguiente.



El botón enviar nos direccionara a una pagina donde tendrá el siguiente código:

<?php
echo '<pre>';
$comando="cd c:\mrtg\bin";
$ultima_linea=system($comando, $retval);
$db = new mysqli("localhost", 'root', '', 'mrtg');
$res = $db->query('select nombre from datos');
$str='';
while($val = $res->fetch_array())
     $str .= " ".$val['nombre'].'.cfg';
system('perl c:\mrtg\bin\indexmaker --output "c:\mrtghtml\mrtg.html"'.$str);
//donde el nombre se saca de la base de datos creada en phpmyadmin

$comandoa="perl c:\mrtg\bin\mrtg ".$_REQUEST["nomb"].".cfg";
echo $comandoa;
$ultima_lineaa = system($comandoa, $retvala);
echo '
</pre>
<hr />Ultima linea de la salida: ' . $ultima_lineaa . '
<hr />Valor de retorno: ' . $retvala;
?>
El código se puede ver de la siguiente manera



En esta parte ponemos el nombre de la pc ingresada para poder generar las paginas html que se guardaran en la carpeta mrtghtml y tambien que se encuentra en la raíz del disco c:\...


Y se genera paginas html del monitoreo de red, que se puede ver de la siguiente manera

No hay comentarios:

Publicar un comentario