BULMA Bulma amb el projecta Defective by Desing
Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(01/08/2010 05:10:59)
    
Google


En bulma.net
En internet
¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (16022 lectures)
Por Manuel Perez Lopez
mapelo (http://www.ieduca.net/)
Creado el 25/08/2003 11:54 modificado el 25/08/2003 11:55

Objetivo del artículo: crear una página web dinámica donde se muestre una gráfica con la evolución del ancho de banda utilizado por los usuarios de nuestro propio servidor.

Pagina1/1

¿CUÁNTO ANCHO DE BANDA LE ESTARÉ PROPORCIONANDO A MIS VISITANTES EN MI PROPIO SERVIDOR?


Objetivo del artículo: crear una página web dinámica donde se muestre una gráfica con la evolución del ancho de banda utilizado por los usuarios de nuestro propio servidor, como esta http://www.ieduca.net/plot.png



PREÁMBULO


Con la llegada de la 'alta velocidad' a los hogares españoles, no hay mejor forma de compartir información que montar tu propio servidor (web, ftp, etc...) para tirar tus documentos a la red. Esto ya vienen haciéndolo algunos usuarios de Linux desde hace tiempo, y a pesar de que la tal 'alta velocidad' tiene sus limitaciones, uno experimenta un reto en esto de montar tu propio 'server' como si de un proveedor de hospedaje se tratara. Hacer constar aquí brevemente que la renombrada 'alta velocidad' no es sino un planteamiento comercial de las telefónicas con silencio planificador del gobierno. A todas luces el ADSL por el par de cables de cobre es una buena opción para las zonas rurales, y no cabe duda de que los núcleos urbanos tienen su mejor opción en los anillos de conexión a internet por cable. Sin embargo, aunque la lógica parezca ésta, se hace alrevés: el carísimo ADSL español se implanta con prioridad en las zonas urbanas, el cable no funciona como debería funcionar allí donde lo hay, y las zonas rurales siguen con el modem a 56kbs. El problema no es sólo de esta estrategía comercial de las telefónicas, sino de un gobierno que permite el abuso y no planifica en beneficio de los ciudadanos.


Pero para no salirme del tema, vuelvo al hilo principal del artículo. Suponemos que tienes ADSL u otro sistema de alta velocidad en casa y tienes montado un servidor de contenidos para internet. Te habrás preguntado más de una vez si ese servidor tira adecuadamente, es decir, si da un servicio adecuando a tus visitantes. Lo que está claro es que tu conexión tiene unos límites, y que si tienes, por ejemplo, ADSL 256 significa que tu ancho de banda es de 32 kbytes/s para la entrada y 16 kbytes/s para la salida. Para un usuario que realiza labores de cliente, esta relación está bien; sin embargo, para los propositos que nos traen aquí, la relación no es la adecuada ya tan sólo podemos darle a los visitantes de nuestro propio 'server' un máximo de 16 kbytes/s, desperdiciando la mayoría de esos 32 kbytes/s de entrada. En el caso de varias peticiones simultáneas (por ejemplo, varios usuarios se descargan desde nuestro FTP un documento o programa), el ancho de banda de 16 kbytes/s se tiene que repartir. A pesar de todo, esos 16 kbytes/s son muy valiosos y pueden ofrecer mucho a tus visitantes: TODO DEPENDE DE TU GRADO DE IMPLICACIÓN EN LA CONSTRUCCIÓN DE LA INTERNET (No lo dejes todo a las telefónicas y crea contenidos alternativos. Además, da un paso más y. ¡dale derechos de copia y modificación a tu público sobre tus documentos! La única forma de cambiar esta sociedad es que empieces a cambiar tú)


Tengo que recordarte que no te voy a explicar como se monta un servidor, tan sólo te voy a mostrar como obtener un gráfico de la evolución de la velocidad de conexión a tu máquina.




SOFTWARE NECESARIO:


Tienes que instar un programa llamado iptraf, disponible desde tu línea de comandos con:


apt-get iptraf (para distros Debian o basadas en Debian)

urpmi iptraf (para Mandrake)


De esta forma instalarás los binarios ya precompilados para tu arquitectura, y te aseguras de que si fuera necesario algún otro paquete para satisfacer las dependencias, éste se instalará conjuntamente.


También están disponibles las fuentes, para que las puedas compilar, en la web: http://iptraf.seul.org/ . La última versión a la hora de escribir este documento fue la 2.7.0 y la puedes descargar directamente de ftp://the.wiretapped.net/pub/security/network-monitoring/iptraf/iptraf-2.7.0.tar.gz


(Nota: Asegúrate que utilizas la versión 2.7.0 ó en otro caso los scripts que más tarde te presento en este documento pudieran no funcionar)


iptraf es un programa de estadisticas de red para Linux. Este será el que nos ofrezca los datos que nosotros queremos llevar a la web y hacerlos públicos. Debes familiarizarte con él. Para arrancarlo abre un consola y llamalo (recuerda que si tu server es remoto, debes hacer un telnet). Ejecuta el programa como root. Con el teclado te vas moviendo por su menú. Observa que el programa te ofrece estadísticas detalladas de cada una de las interfaces de tu ordenador (tarjetas ethernet, conexiones ppp, ...) . Principalmente hay dos cosas que quiero que hagas con iptraf:


  1. Quiero que veas las estadísticas detalladas para la interface con la que te conectas a internet (Detailed interface statistics); en mi caso la interface es ppp0, porque tengo el router conectado en modo monopuesto y lo arranco con pppoe; selecciona adecuadamente tu interface de conexión a internet haciendo varias pruebas y mira los datos que te ofrece de cómo va evoluacionando tu conexión (paquetes,, bytes, totales, de entrada, de salida, por IP, TCP, UDP, ICMP, Other IP y Non-IP), y en la parte inferior te informa sobre la media cada 5 segundos del total, la entrada y la salida (en kbs o paquetes/s). !Ojo¡, que tu interface puede ser la tarjeta de red conectada al router (por ejemplo, eth0), si tu configuración es diferente a la mía.

  2. La otra cosa que quiero que observes es que con la opción 'Configure' del menú principal se entra en el menú de configuración del programa. La opción 'logging' puede estar 'on' u 'off'. Si está activada significa que se está añadiendo cada cierto intervalo de tiempo los datos mostrados en la pantalla a un fichero de inventario de sucesos (usualmente lo llamamos log). Vamos a verlo detenidamente. Activa esta opción de 'logging' en este menú. Después pulsa sobre la opción 'timers' y se te abrirá un submenú en el que tendrás que seleccionar la opción 'logging interval'. Una vez dentro, escribe 1, y acepta con enter. Lo que acabamos de hacer significa que indicamos al programa que ha de escribir en un fichero log cada minuto los datos de la pantalla, con el tipo de estadísticas seleccionado para la interface seleccionada. El programa iptraf aún no está escribiendo ningún fichero log, falta indicarle el nombre del fichero. Vuelve al menú inicial del programa saliendo de los menús (exit) y entra de nuevo en las 'Detailed interface statistics', elige tu interface y... ahora sí que te pregunta el nombre del fichero para almacenar el log. En mi caso le dejo el nombre y trayectoria por defecto: /var/log/iptraf/iface_stats_detailed-ppp0.log

  3. Salte del programa


¿Y para que sirve en modo consola el programa iptraf para nuestros objetivos?.... Para nada. Nosotros no vamos a hacerlo correr en modo consola, sino que lo vamos a hacer correr en modo background, como demonio. Te he hecho que observes como funciona el programa para que te acostumbres a su funcionamiento. Nosotros lo vamos a llamar como demonio porque no queremos tener indefinidamente una consola abierta ¿verdad? La llamada como demonio permite configurarlo, como lo habíamos hecho antes en modo consola, a través de una serie de parámentros que le pasaremos. Para más información sobre los parametros posibles mire la página: http://iptraf.seul.org/2.7/backop.html

En nuestro caso vamos a llamar al demonio de esta forma:

iptraf -d ppp0 -B

que significa:

-d ppp0: es la interfaz sobre la que escribe los datos en el log. Si tu interfaz es la eth0 tendrás que cambiarlo por -d eth0,

-B: es el tipo de estadísticas sobre las que va a llevar el log, concretamente del tipo 'detailed interface statistics'. (Nota: no uses otro tipo, porque los script que te comento después en este documento sólo funcionan con ese tipo de estadísticas).


No le pongo más paramentros, porque supongo que el intervalo de 'longeo' por defecto es 1 minuto (no existe parámetro para especificarlo), y no le especifico 'timeout' para que el demonio nunca termine su ejecución, por lo que se ejecutará de forma indefinida.


El demonio tendrás que llamarlo justo cuando arranca la conexión a internet y comienza a funcionar el servidor. Yo tengo el pppoe automatizado de tal forma que al arrancar el servidor, se conecta a internet (adsl-start). También de forma automatizada arranco el iptraf en modo demonio incluyendo

'iptraf -d ppp0 -B' al final del fichero '/etc/rc.d/rc.local'. Ten en cuenta que ppp0 ya debe de existir para cuando iptraf es llamado.


Ya tenemos las estadísticas en el log, pero ahora... ¿como hago el gráfico? Para ello necesitamos instalar otro programa, llamado gnuplot. Es una herramienta interesantísima para estudiantes, porque con él podemos hacer todo tipo de gráficas. Funciona en modo consola, pero ya hay GUIs para él en los entornos KDE o Gnome. Nosotros tenemos suficiente con el modo consola para nuestro objetivo. Si no lo tienes aún en tu sistema, instálalo con la orden:


apt-get gnuplot (para Debian o uno de sus derivados)

urpmi gnuplot (para Mandrake)


Si tienes otra distro, busca tu paquete, o bien, compila las fuentes de: http://www.gnuplot.info/


Una de las caracteristicas de Gnuplot es que puede leer ficheros de texto con los datos de entrada y mostrarnos como una imagen png la gráfica de salida. Bastará con decirle a Gnuplot que lea el fichero log de iptraf y que nos deje el fichero png resultante en la trayectoria por donde el Apache saca las páginas web. Lo malo es que el fichero log creado con iptraf no es entendible por Gnuplot. La forma básica de los ficheros de datos Gnuplot son columnas de variables. Para ello he construido un pequeño programa en perl que es capaz de traducir el fichero log de iptraf a datos legibles por gnuplot. El programa lo puedes descargar de http://www.ieduca.net/iptraf/preparalog.iptraf.pl.txt. Renómbralo quitándole el .txt, llevalo a un lugar que no sea accesible a tus visitantes, y dale atributos de ejecución (por ejemplo con chmod 755 ó 700 si el propietario es root). Adicionalmente tendrás que configurarlo dándole los valores adecuados a cuatro variables que aparecen al inicio del programa. Configúralo con un simple editor de texto, y si te atreves, con vi.


El programa http://www.ieduca.net/iptraf/preparalog.iptraf.pl.txt hace dos cosas:

1.- Prepara el fichero log para que pueda entenderlo Gnuplot como se ha explicado.

2.- Va eliminando del fichero log original de iptraf toda aquella información antigua que ya no es necesaria para la representación gráfica. Esto es fundamental ya que en caso contrario podría crecer en tamaño indefinidamente con el consiguiente colapso del sistema.


Por otra parte habrá que llamar a Gnuplot con un script donde se espeficíque, además de dónde está situado el nuevo fichero log que le servirá como entrada de datos, el tipo de gráfico, los títulos, los intervalos de representación, etc... Este script te lo puedes descargar de http://www.ieduca.net/iptraf/gnuplot.iptraf.script.txt. Renombralo quitándole el .txt y llévatelo al path junto al anterior script en perl. Edítalo para configurarlo a tu gusto, ya que es sumamente sencillo. Pónle atributos de lectura y escritura activos, y propietario root.

Ya casi está todo. Vamos a probarlo primero antes de automatizarlo:


-Abre una consola y pasate a root.

-Si no tuvieras ya arrancado el iptraf como demonio, hazlo ahora con: iptraf -d ppp0 -B. Déjalo que corra al menos 5 minutos para que vaya registrando datos. Mientras, navega o bájate el correo, para ir consumiendo ancho de banda.

-Pásate al path donde tienes los dos scripts.

-Primero llama al script en perl para preparar los datos para Gnuplot, de esta forma:

perl /www/tudominio/preparalog.iptraf.pl (cambia el path para tu caso concreto)

-Comprueba que en /www/tudominio se ha creado un archivo llamado gnuplot.data

-Después llama al script con Gnuplot para crear el gráfico de esta forma:

gnuplot /www/tudominio/gnuplot.iptraf.script > /www/tudominio/html/plot.png

-Finalmente, desde un navegador, tienes que visionar el gráfico correctamente:

http://tudomino/plot.png



Si todo ha salido bien, lo único que te falta es automatizarlo con el CRON de Linux, es decir, hacer que se ejecuten ambos scripts como usuario root cada 5 minutos. Nota: procura que no se ejecuten simultáneamente, ya que es posible que el segundo programa intente coger datos del primero sin que éste haya terminado; es decir, que se ejecute el script en perl para preparar los datos un minuto antes que la llamada a Gnuplot para construir el gráfico. Si tienes tu servidor junto a tí, hay muchos GUIs para ajustar la tareas del CRON, o bien, si estás trabajando con un server remoto un buen software es webmin. Pero en todo caso, desde la linea de comandos podrás hacerlo si sigues estas instrucciones de http://linux.fotoarea.com/cron.html

O bien, añade al /etc/crontab las lineas:


0,5,10,15,20,25,30,35,40,45,50,55 * * * * root \
gnuplot /www/tudominio/gnuplot.iptraf.script > /www/tudominio/html/plot.png

4,9,14,19,24,29,34,39,44,49,54,59 * * * * root \
perl /www/tudominio/preparalog.iptraf.pl




Autor: Manuel Pérez López

Fecha: Agosto de 2003

Licencia: GFDL

Se permite la copia, modificación y/o distribución bajo los términos de la licencia GFDL. Más información en http://www.gnu.org/copyleft/fdl.html


Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
Es posible que se hayan omitido algunos comentarios considerados poco constructivos
1.  Re: ¿CUÁNTO ANCHO DE BANDA LE ESTARÉ PROPORCIONANDO A MIS VISITANTES EN MI PROPIO SERVIDOR? (25/08/2003 12:21, #16680)
  Por: suy (http://lacurva.net)

Te sugiero una revisión del formato del artículo. Las mayúsculas DAN LA SENSACIÓN DE QUE GRITES, y quedan fatal :-). Por otro lado, tienes basante porquería en el HTML, y deberías revisar esa línea tan ancha, porque a 1024x768, ya sale el molesto scroll horizontal.

Un saludo.

No es pot respondre
 
2.  Re: ¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (25/08/2003 12:50, #16681)
  Por: El cobarde anónimo
Gracias por el árticulo,buscaba algo muy parecido y me ha sido de gran utilidad. Salu2
No es pot respondre
 
3.  Iptraf + RRDTool (25/08/2003 16:09, #16684)
  Por: El cobarde anónimo
En http://www.taedium.net/rrd-iptraf/ teneis un articulo que también usa el iptraf para guardar los logs del tráfico, pero para generar las gráficas usa rrdtool.
No es pot respondre
 
4.  Re: Iptraf + RRDTool (26/08/2003 12:25, #16690)
  Por: El cobarde anónimo
Ese artículo está muy chulo, el de aquí no consigo que funcione en una debian, saltan errores del gnuplot.
No es pot respondre
 
5.  no digas telnet ... (26/08/2003 09:57, #16686)
  Por: El cobarde anónimo
s/telnet/ssh/g
;)
No es pot respondre
 
6.  Re: ¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (31/08/2003 21:45, #16811)
  Por: caravena (http://pagci.unap.cl)
tube que instalar el 'plotutils' ya que esto tenia el plot #apt-get install plotutils cuando lanzaba el script me lanzaba command not found
No es pot respondre
 
7.  Re: ¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (31/08/2003 22:27, #16814)
  Por: caravena (http://pagci.unap.cl)
Ya lo hice correr plot.png, tube que hacer modificaciones, en los dos archivos debes poner la ruta absoluta donde dice mi dominio '/var/www/iptraf/' no sirve con '/www/xxxxxx' es lo unico, Chaop


Cristian Aravena R.
No es pot respondre
 
8.  Divertido (31/08/2003 21:47, #16812)
  Por: anigwei (http://annys.eines.info/raims)
Es divertido cuando entras al programa desde una sesión SSH/Telnet y ves el recuento de paquetes. Es un no parar, o mejor dicho... un bucle sin salida.
Cargas el menú, y el programa te envía las rayas, colorines, todo pero ya empieza a contar. Como ya ha habido este tráfico, lo cuenta. Me llega a mi session SSH. Lo vuelve a actualizar... y asi!

IPTraf
┌ TCP Connections (Source Host:Port) ────────── Packets ─── Bytes Flags Iface ┐
│┌192.168.0.2:22 > 825 79004 --A- eth0 │
│└62.82.37.132:2320 > 845 64238 -PA- eth0 │

suma y sigue, ya lleva 64k sin ninguna actividad en el SSH!
No es pot respondre
 
9.  Re: ¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (12/09/2005 23:20, #28333)
  Por: Anònim
Hola, estoy interesado en poder realizar esta instalacion para poder realizar un analisis de mi red por internet. El documento muy claro pero a la hora de realizar los link de referencia no estan activos dichos servidores. Si me puedes ayudar para poder realizar esta tarea te quedare agradecido. Saludos Cesar
No es pot respondre
 
10.  Re: ¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (14/12/2005 23:52, #30033)
  Por: Anónimo
Hola Gente: A mi me pasa lo mismo, si lo pudieron resolver de algun modo avisen, gracias de antemano.
No es pot respondre
 
11.  Re: ¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (12/04/2006 00:24, #31954)
  Por: francisco
Articulo bastante util, pero necesito los scripts, si alguien me los puede enviar, se lo agradeceria.. Saludos
No es pot respondre
 
12.  Re: ¿Cuánto ancho de banda le estaré proporcionando a mis visitantes en mi propio servidor? (20/03/2007 15:59, #39166)
  Por: Joel
El artículo es muy bueno, pero existe alguna manera de que almacene el iptraf un log línea por línea. ejemplo: FROM "ip" TO "ip" BYTES, De una manera mas detallada, yo se que esto puede llenar un fichero rápidamente pero con una administración en cron se resuelve todo. Si alguien conoce algo parecido agradecería lo mencionen por aquí.
No es pot respondre
 
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 22
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 6/5/2007 19:37:43 | Tiempo Total: 0.035 segs | Kernel: Linux - i686 - 2.6.26-1-686 | Last boot: 27/12/2009 22:08 CET
Powered by Apache    MySQL    PHP    Gimp