Tema:
En el trabajo todos los usuarios tienen internet a través de un Mikrotik CCR1036, era necesario tener un registro del tráfico utilizado por cada uno de los usuarios si bien es cierto Mikrotik tiene una opción para hacer gráficos de las cosas y las interfaces pero tiene la desventaja que si el ruteador es reiniciado los gráficos también, y además esta tarea consume CPU.
Para poder lograr tener un historial con gráficas del tráfico de cada dirección IP podemos utilizar el protocolo netflow, el cual es soportado por Mikrotik. Netflow utiliza un exportadror que en mi caso es Mirkotik con la opciónes Traffic Flow y un colector que es una computadora con Debian y el paquete pmacct.
Mikrotik envía la el registro netflow hacia el servidor que actúa como colector siendo este último el que se encarga de procesar los flujos y del almacenamiento. Pudiendo de esta manera visualizar a través de un navegador las gráficas con con consumo generado por cada dipositivo que utiliza al ruteador para salir a Internet.
El software que permite esta visualización se llama PNRG y se lo puede descargar desde http://www.pmacct.net/pnrg/.
Procedamos entonces a realizar la instalación y configuración, los requisitos son los siguientes:
- Credenciales de administración del ruteador Mikrotik
- Un computador con Debian e Internet
Mi ruteador tiene la IP 172.16.0.1 y mi interface para la red local es bridge1
Mi servidor tiene la IP 172.16.0.11
Configuramos primero el ruteador:
Ahora podemos abrir en nuestro navegador el URL http://172.16.0.11/pnrg y podremos observar el consumo generado por cada uno de nuestros usuarios. En el lado izquierdo de la pantalla aparecerán las direcciones IP de las redes declaradas en el archivo de configuración /etc/pmacct/hosts.def .
Para poder lograr tener un historial con gráficas del tráfico de cada dirección IP podemos utilizar el protocolo netflow, el cual es soportado por Mikrotik. Netflow utiliza un exportadror que en mi caso es Mirkotik con la opciónes Traffic Flow y un colector que es una computadora con Debian y el paquete pmacct.
Mikrotik envía la el registro netflow hacia el servidor que actúa como colector siendo este último el que se encarga de procesar los flujos y del almacenamiento. Pudiendo de esta manera visualizar a través de un navegador las gráficas con con consumo generado por cada dipositivo que utiliza al ruteador para salir a Internet.
El software que permite esta visualización se llama PNRG y se lo puede descargar desde http://www.pmacct.net/pnrg/.
Procedamos entonces a realizar la instalación y configuración, los requisitos son los siguientes:
- Credenciales de administración del ruteador Mikrotik
- Un computador con Debian e Internet
Mi ruteador tiene la IP 172.16.0.1 y mi interface para la red local es bridge1
Mi servidor tiene la IP 172.16.0.11
Configuramos primero el ruteador:
/ip traffic-flow set cache-entries=1k enabled=yes interfaces=bridge1 /ip traffic-flow target add dst-address=172.16.0.11 port=5555 version=1Ahora configuramos el colector. Primero se debe instalar pmacct:
apt install pmacct rrdtoolConfiguramos pmacct editando el fichero /etc/pmacct/nfacctd.conf
! debug: false daemonize: true ! plugin_buffer_size: 80524 plugin_pipe_size: 18052324 ! networks_file: /etc/pmacct/hosts.def ! nfacctd_port: 5555 ! plugins: memory[in], memory[out] ! aggregate[in]: dst_host aggregate[out]: src_host ! imt_path[in]: /tmp/pmacct_in.pipe imt_path[out]: /tmp/pmacct_out.pipeEn el fichero /etc/pmacct/hosts.def agregamos las redes de las cuales nos interesa tener el monitoreo, yo he agregado las redes que asigno a mis usuarios:
172.16.0.0/24 172.16.0.1/24 10.8.0.0/24Reiniciamos el servicio para aplicar los cambios:
systemctl restart nfacctd.serviceInstalamos PNRG:
mkdir /usr/local/pnrg cd /usr/local/pnrg wget http://www.pmacct.net/pnrg/pnrg-0.1.tar.gz tar zxvf pnrg-0.1.tar.gz mv pnrg-0.1/* . chown -R netflow:www-data /usr/local/pnrg ln -sf /usr/local/pnrg/spool /var/www/html/pnrgCreamos enlaces simbólicos hacia nuestra instalación de pnrg:
mkdir -p /usr/local/rrdtool/bin/ ln -s /usr/bin/rrdcgi /usr/local/rrdtool/bin/rrdcgi ln -s /usr/bin/rrdtool /usr/local/rrdtool/bin/rrdtool ln -s /usr/bin/pmacct /usr/local/bin/pmacctCreamos una tarea programada para que cada 5 minutos se ejecute pnrg y actualize los gráficos:
echo "*/5 * * * * root ( cd /usr/local/pnrg/; ./pnrg-wrapper.sh )" > /etc/cron.d/pnrg systemctl restart cron.serviceConfigurar Apache2 para la ejecución de CGI:
a2enmod cgi systemctl restart apache2Agregamos el directorio de PNRG para que Apache2 pueda ejecutar CGI, para esto se debe editar /etc/apache2/conf-available/cgi-enabled.conf y modificar la sección Directory:
<Directory "/var/www/html/pnrg/"> Options +ExecCGI AddHandler cgi-script .cgi .pl .rb .py </Directory>
Ahora podemos abrir en nuestro navegador el URL http://172.16.0.11/pnrg y podremos observar el consumo generado por cada uno de nuestros usuarios. En el lado izquierdo de la pantalla aparecerán las direcciones IP de las redes declaradas en el archivo de configuración /etc/pmacct/hosts.def .
Comentarios
Está chévere
Gracias por compartir Razametal.
Agrupar por rango?
------------

Cogito Ergo Sum