Hola viejos amigos!. Algo que me han preguntado bastante es como hacer que el cliente o nosotros mismos veamos las graficas de consumo con el API de Mikrotik. Y para su sorpresa les cuento que esta parte se hace sin el API.
Estudiemos la ruta que nos da mikortik para ver el graph de un cliente:
Nota: Comprobar que en /tools/graphing este graficando todos los queues.
http://200.20.30.40:8080/graphs/queue/%3Cpppoe-fduckardt52104%3E/
OK como veran.. aqui pueden haber 3 datos variables:
- La direccion IP del RouterOS.
- El puerto de www (/ip/services).
- El nombre del pppoe: fduckardt52104
Si Inspeccionamos el código de esta imagen con en el navegador veremos que solo se agrega /daily.gif al final de la URL quedando así:
http://200.20.30.40:8080/graphs/queue/%3Cpppoe-fduckardt52104%3E/daily.gif
Hagamoslo mas interesante:
Ahora que ya sabemos la ruta exacta de cada gráfica (no tuvimos que usar el api), es cuestión de armar esto con PHP, pero para que sea un poco mas interesante vamos dale uso del API para hacer que si el usuario pppoe esta activo, mostramos el Graph usando la ruta anterior, pero si no esta conectado, mostramos el log del usuario. Para ello vamos a armar un buscador de usuarios activos.
Archivos importantes:
- log.php: Este es el archivo raiz principal, aquí esta el formulario y los contenedores desde donde se carga el JS, estilos, etc. Ademas, en este archivo debemos modificar las variables de Session.
<!-- //////////////////////////////////////////////////////////////////// // ESTE EJEMPLO SE DESCARGO DE www.tech-nico.com /////////////////// // Creado por: Nicolas Daitsch. Guatrache. La Pampa //////////////// // Contacto: administracion@tech-nico.com ////////////////////////// // RouterOS API: Busco Usuario PPPoE activo y muestro Graph o Log // //////////////////////////////////////////////////////////////////// --> <?php session_start(); $_SESSION['api_ip'] ="192.168.0.1"; // Tu RouterOS $_SESSION['api_user'] ="tu_usuario"; $_SESSION['api_pass'] ="tu_password"; $_SESSION['api_port'] =8728; $_SESSION['www_port'] =80; ?>
Desde este archivo se configura todo!!. Solo tienes que modificar las variables que están justo aquí arriba en el archivo log.php.
Si sigues mirando un poco mas abajo de los seteos veras que en esta ocasión estoy usando el framework de Mootools, aunque por el poquito código que estamos usando tranquilamente podríamos hacerlo todo con javascript (ajax). Lo dejo a tu criterio.
- api/isonline_soporte.php: Este archivo se ocupa de conectarse mediante el API, a tu servidor Mikrotik. Chequea si el usuario esta activo y muestra la grafica en una etiqueta IMG. Miren el código porque esta muy fácil de entender.
- api/log.php: Este codigo trae todo el log y filtra por nombre de secret para mostrarte solo por usuario.
Importante: para buscar tienes que escribir el nombre exacto del secret. Y luego presionar la tecla Enter.
Espero que te haya gustado, puedes probar, investigar mi código y ademas modificarlo, pero asegúrate de no quitar las lineas del autor.
Descarga aqui el codigo de este ejemplo
Este post fue escrito por Nicolas. Primero en tech-nico.com/blog
