En el artículo Cómo monitorear el tráfico de red en tiempo real en GNU/Linux demostré cómo es posible monitorear, en tiempo real, la utilización de los dispositivos de red y el consumo de ancho de banda utilizando la herramienta nload. En este artículo voy a explicar cómo generar y mantener un registro estadístico del consumo de recursos de red en GNU/Linux, utilizando la herramienta vnStat.



vnStat es un monitor de tráfico de red de línea de comandos para Linux y BSD que mantiene un registro (log) del consumo de ancho de banda para las interfaces de red seleccionadas. Utiliza los datos estadísticos de las interfaces de red provistos por el kernel como fuente de información. Por ende, vnStat no esnifea (sniffing) tráfico y asegura un consumo extremadamente bajo de recursos del sistema. vnStat es software open source y se libera bajo la licencia GPL.

Para instalar vnstat en Debian y derivados simplemente se debe ejecutar sudo apt-get install vnstat. En CentOS es necesario agregar el repositorio RPMforge y luego ejecutar yum install vnstat.

vnStat funciona como un servicio que recolecta información periódicamente y la almacena en una base de datos interna dentro del directorio /var/lib/vnstat/. Antes de iniciar el servicio vnstat, es necesario inicializar la base de datos para cada interfaz de red que se desee monitorear, utilizando el siguiente comando (por ejemplo para la interfaz eth0):

# vnstat -u -i eth0

Se genera el archivo de base de datos /var/lib/vnstat/eth0.

Luego es posible iniciar el servicio para que se recolecte información periódicamente (de forma similar a la herramienta systat aunque esta utiliza cron jobs, algún día le dedicaré un artículo a systat):

# service vnstat start

O también ejecutando:

# /etc/init.d/vnstat start

El servicio colecta y registra datos de consumo de ancho de banda diarios y mensuales. Ejecutando simplemente vnstat, es posible ver el resumen de tráfico registrado hasta el momento (desde que inició el servicio) y un estimado del consumo diario y mensual, discriminado por tráfico entrante (rx) y saliente (tx):

# vnstat
Database updated: Mon Jun  2 09:06:12 2014

   eth0 since 05/26/14

          rx:  192.21 MiB      tx:  2.89 GiB      total:  3.08 GiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       May '14    171.28 MiB |    2.56 GiB |    2.72 GiB |    8.53 kbit/s
       Jun '14     20.93 MiB |  342.74 MiB |  363.67 MiB |   25.00 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       435 MiB |    7.26 GiB |    7.69 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday     14.16 MiB |  262.30 MiB |  276.46 MiB |   26.21 kbit/s
         today      6.77 MiB |   80.43 MiB |   87.20 MiB |   21.80 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        15 MiB |     210 MiB |     225 MiB |

Para obtener una curva del tráfico de las últimas 24 horas, discriminado por hora, ejecutar vnstat -h:

# vnstat -h
 eth0                                                                     10:30
  ^                                                                     t
  |                                                                  t  t
  |                                                                  t  t
  |                                                                  t  t
  |                     t        t                                   t  t  t
  |               t  t  t     t  t                                   t  t  t
  |               t  t  t     t  t     t  t                          t  t  t
  |         t  t  t  t  t  t  t  t  t  t  t  t                       t  t  t
  |      t  t  t  t  t  t  t  t  t  t  t  t  t  t                    t  t  t
  |   t  t  t  t  t  t  t  t  t  t  t  t  t  t  t  t           t  t  t  t  t
 -+--------------------------------------------------------------------------->
  |  11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10

 h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)
11        414       6425    19       1063      21161    03        270       2273
12        500       8819    20       1045      22250    04        296       3185
13        611      11526    21        655      12953    05        261       2131
14        638      11208    22        745      15310    06        473       6769
15        921      19738    23        842      17259    07        843       6737
16        814      17952    00        780      12921    08       3056      33850
17        917      23741    01        506       9606    09       2464      35413
18        558      12097    02        306       3825    10       1592      23164

De forma similar, es posible obtener un registro del tráfico diario (vnstat -d) y mensual (vnstat -m):

# vnstat -d

 eth0  /  daily

         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
      05/26/14     21.69 MiB |  398.49 MiB |  420.18 MiB |   39.84 kbit/s
      05/27/14     47.76 MiB |  674.90 MiB |  722.66 MiB |   68.52 kbit/s
      05/28/14     10.76 MiB |  114.36 MiB |  125.12 MiB |   11.86 kbit/s
      05/29/14     27.11 MiB |  546.12 MiB |  573.23 MiB |   54.35 kbit/s
      05/30/14     46.85 MiB |  632.92 MiB |  679.77 MiB |   64.45 kbit/s
      05/31/14     17.11 MiB |  250.27 MiB |  267.38 MiB |   25.35 kbit/s
      06/01/14     14.16 MiB |  262.30 MiB |  276.46 MiB |   26.21 kbit/s
      06/02/14     10.97 MiB |  139.60 MiB |  150.58 MiB |   32.10 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        22 MiB |     312 MiB |     334 MiB |
# vnstat -m

 eth0  /  monthly

       month        rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
      May '14    171.28 MiB |    2.56 GiB |    2.72 GiB |    8.53 kbit/s
      Jun '14     25.13 MiB |  401.91 MiB |  427.04 MiB |   28.03 kbit/s
    ------------------------+-------------+-------------+---------------
    estimated       519 MiB |    8.13 GiB |    8.64 GiB |

Es una herramienta interesante para medir el consumo promedio (ver columna avg. rate), cada vez que se necesita calcular el ancho de banda a contratar para un nuevo servidor. Claro que también se deben considerar los picos de consumo por hora, para que las respuestas del servidor lleguen a tiempo a los clientes, de lo contrario se puede ver perjudicado el rendimiento del mismo.

Espero que les sirva.


Tal vez pueda interesarte


Compartí este artículo