Monitoreando el consumo de ancho de banda con Bandwidthd

Imagen de pepo

HOla...

En realidad hay muchas herramientas para hacer un monitoreo más avanzado, debemos recordar que Bandwidthd es un proyecto no actualizado desde 2005; sin embargo, si solo deseamos ver el consumo de nuestro ancho de banda por parte de un IP, una subred, un grupo CIDR, etc. entones esta herramienta nos va bien; además Bandwidthd no consume tantos recursos como ntop, y otros.

[color=#FF0000][size=30]Problema:.[/size][/color]

Mucha gente deseaba ver el consumo del ancho de banda de sus clientes y no tenían una herramienta simple para conseguirlo.

[color=#FF0000][size=30]La solución:.[/size][/color]

Un ruteador corriendo GNU/Linux y usando Bandwidthd.

[color=#FF0000][size=30]Requerimientos:.[/size][/color]

Un recolector (Bandwidthd), base de datos postgreSql, servidor web. Si en este documento no se muestra la instalación de todos los paquetes es porque ya los tenía instalados.

[color=#FF0000][size=30]Paso a paso:.[/size][/color]

Nuestro recolector de datos debe estar ejecutándose en el ruteador, pero los datos serán enviados a una base de datos PostgreSQL que puede estar en otro computador.

Lo que necesitamos es bandwidthd-pgsql ya que este paquete nos permite obtner los datos de todas las interfaces de nuestro ruteador, en mi caso mi Ethernet y mi Wifi.

[code]
apt-get install bandwidthd-pgsql
[/code]

Entones nos pregunta en que interfaces deseamos escuchar, y como nosotros deseamos que en todas, señalamos any

Ahora debemos indicar las IPs, subredes o Encaminamiento Inter-Dominios sin Clases (CIDR) en que nos interesan.

Si revisamos /etc/bandwidthd/bandwidthd.conf tenemos la configuración de nuestro sistema, sin embargo hay una falla y no le para bola a lo que tiene que ver con la base de datos, para obtener los valores correctos deberemos modificar el /var/lib/bandwidthd/htdocs/config.conf y poner nuestros datos así:

[code]
$db_connect_string = "user = bandwidthd password = bandwidthd dbname = bandwidthd host = 127.0.0.1"
[/code]

Por supuesto que los valores cambiarán según la configuración que deseen mantener sobre todos si la base de datos está en otro lugar.

Para configurar nuestra base de datos como root obtendremos la shell de postgres con:

[code]
su – postgres
[/code]

Y ahora, vamos a crear un usuario normal y con contraseña encriptada, que para que se acomode a nuestro ejemplo pondremos bandwidthd cuando nos lo pregunte:

[code]
createuser -S -D -R -E -P bandwidthd
[/code]

Ahora crearemos la base de datos bandwidthd siendo el usuario bandwidthd el dueño, que es donde se almacenarán los datos recolectados:

[code]
createdb -e -O bandwidthd bandwidthd
[/code]

Ahora a crear el esquema:

[code]
psql -h 127.0.0.1 -U bandwidthd -d bandwidthd -f /usr/share/doc/bandwidthd-pgsql/schema.postgresql
[/code]

Si hemos tenido algún problema al intentar accder usando TCP o la autenticación no es válida, entonces revisa mi otro HowTo sobre como arrancar PostgreSql y dejarlo listo para utilizar para que sepas que cambios hacer en /etc/postgresql/8.1/main//pg_hba.conf y/o /etc/postgresql/8.1/main/postgresql.conf

Listo, ahora vamos a crear el archivo /etc/apache2/sites-enabled/bandwidthd.conf para que nuestro servidor web cargue la carpeta con las páginas web:

[code]
Alias /bandwidthd "/var/lib/bandwidthd/htdocs"

<Directory "/var/lib/bandwidthd/htdocs">
Options Indexes
AllowOverride None
order allow,deny
allow from all
</Directory>
[/code]

Y ahora en donde esté instalado Bandwithd (y cursando el tráfico) debemos ejecutar

[code]
/usr/sbin/bandwidthd
[/code]

Que levanta el demonio y comienza a recolectar los datos, este simple comando puede ser ejecutado desde un script en el /etc/init.d/ o /etc/rc.local; como mejor nos parezca.

Ahora cargamos el sitio http://<servidor_web>/bandwithd y vemos los datos:

Comentarios

IPAudit

Imagen de pepo

Lo olvidaba, otro aplicativo liviano con cheveres graficas es IPAudit-Web, ya se los habia comentado en un mensaje anterior.

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
ICQ : 337889406
GnuPG-key : www.keyserver.net

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
GnuPG-key : www.keyserver.net

cacti

Imagen de elhumano

Tambien tenemos el Cacti que no solo monitorea el ancho de bando sino tambien el uso del cpu entre otras cosas.

muy util al momento de quejarte con tu proveedor de acceso a Internet.

Aqui algunos screen shots.












En realidad para esta labor hay excelentes herramientas.

___________________________________

Nagios

Imagen de pepo

Como nos cuentas a muchos les gusta Cacti y el desarrollo de plug-ins no es malo, yo prefiero Nagios sin embargo.

Por otro lado si nos interesamos en el consumo total (como dices para cruzar cuentas con el ISP) podría MRTG ser suficiente.

Sin embargo de lado interno en una red modesta Bandwidth es una excelente herramienta liviana, para cada IP y sin necesidad de instalar SNMP en los clientes porque asumimos que ellos solo quieren usar la red e Internet y no que a cada rato que ellos (re)instalen un sistema deba ir alguien para tener los agentes SNMP funcionando correctamente.

Gracias.

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
ICQ : 337889406
GnuPG-key : www.keyserver.net

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
GnuPG-key : www.keyserver.net

Excelente

Imagen de BitFrost

Como quien nos toco "trabajar" en el Dia de las madres, (por cierto saludos a todas las mamás que nos comprenden y nos dejan que prendamos la luz mas de las 3 de la mañana, saludos a cada mamá que nos apoya) me dedique a configurar bandwidthd en mi CentOS 4.3, simplemente me baje el archivo fuente y lo compile, claro que me dio problemas con libpng y libgd pero haciendo un simple #yum install libpng-devel y #yum install gd-devel se solucionarion las dependencias, cabe resaltar que es un "poquito" diferente los lugares en donde se encuentran los archivos de configuracion, como por ejemplo en mi CentOS es en:

/usr/local/bandwidthd/etc/bandwidthd.conf

ahi se ingresan las subredes

y luego hay que agregar esto en /etc/httpd/httpd.conf

Alias /bandwidthd "/usr/local/bandwidthd/htdocs"

Options Indexes
AllowOverride None
order allow,deny
allow from all

simplemente luego de haber, compilado, instalado y configurado, ya podemos ingresar a nuestro monitorizador desde http:///bandwidthd

Saludos y gracias PePo

"Education is what remains after one has forgotten everything he learned in school." - Albert Einstein
[img]http://counter.li.org/cgi-bin/certificate.cgi/345468[/img]
[img]http://www.geocities.com/andres_genovez/mail.png[/img]

"Education is what remains after one has forgotten everything he learned in school." - Albert Einstein
[img]http://counter.li.org/cgi-bin/certificate.cgi/345468[/img]

Una peque corrección pana

Imagen de damage

Una peque corrección :) pana bitfrost en el httpd.conf el alias debe quedar asi:

Alias /bandwidthd "/usr/local/bandwidthd/htdocs"

Directory "/usr/local/bandwidthd/htdocs"
Options Indexes
AllowOverride None
order allow,deny
allow from all
/Directory

De ahi el resto esta correcto, gracias a ti y a Pepo por pasar sus conocimientos :) :cool

P.D.: Por cuestiones de formato del post, la linea de Directory no se la puede poner con los signos <> ya que se oculta, asi que cuando editen el httpd.conf deben colocarlos simbolos, miren en ejemplo de Alias en el mismo httpd.conf y sabran de que hablo.

Saludos.
Keep The Fire Burning.....
Stryper 1988
http://counter.li.org/