ACTUALITZACIÓ: Aquest exemple ha sigut incorporat com a servei de l'arquitectura SNP en el codi principal del SVN de guifi.net. El codi que hi ha adjunt a aquest article ja no és l'actual. Podeu obtenir més detalls de com obtenir-lo via SVN seguint aquest enllaç.
Amb aquesta millora de l'aplicació, serà possible de que diversos servidors de guifi es reparteixin la feina de fer les gràfiques de trànsit, sense perdre la integració amb la web de guifi.net, i ens facilitarà la migració cap al CESCA, si al final es duu a terme. Això comportarà alguns avantatges que ara explicaré: Les gràfiques ja NO es poden fer desde una sola màquina, i no parlo de potència de la màquina o d'ampla de banda. És una qüestió de temps : en 5 minuts **no dóna temps** a recollir les dades i fer els pings a + de 500 aparells. Si continueu llegint veureu exemples on es veu clar. Actulament hi ha tres servidors que utilitzen aquest sistema, corresponents a les zones de Cambrils (externa) , La Guixa, Roda de Ter i Taradell.
Tot això ve de fa uns mesos, quan en Fernando de Palafolls, va fer una modificació del codi que genera les gràfiques de trànsit i pings de guifi.net, de manera que a la web de guifi poguessin sortir les gràfiques que generaven desde el seu mrtg de palafolls. El problema es que el codi que va adaptar, no seguia el format de les gràfiques de guifi.net, sinó que era una excepció en el codi, per integrar les gràfiques originals del MRTG tal com les feien ells. Aquella primera exteriorització NO ens servia per mantenir el format de guifi.net i que continuessin integrades a la web.Amb aquesta actualització doncs, es solucionen els 2 casos.
1.- Avantatges
- Descarregar de feina el bandoler: Ara mateix ha de recollir les dades de + de 500 ràdios.
- Precisió dels pings - Les gràfiques de disponibilitat seràn + reals, al fer-se + a prop de les ràdios, i no dependre de + de 2 o 3 rebots, segons el cas i no es pedran dades per culpa d'un tall de la xarxa entre el bandoler i les ràdios.
- Precisió del trànsit - Ara mateix, el bandoler cada 5 minuts es posa a recollir dades de totes les ràdios. N'hi han tantes, que això ho està fent constantment, i moltes ràdios perden el torn moltes vegades, se solapen ... això ho podeu veure clar amb els exemples següents.
Gràfiques de trànsit de supernodes, radios individuals i pings, fetes desde el bandoler, i desde un servidor aprop del supernode. Podreu apreciar la diferència en resolució i en els valors.
2.- Funcionament
El funcionament és molt senzill: Es tracta del mateix codi PHP de l'aplicació de guifi.net, modificat de tal manera que no depengui ni del drupal ni de tota la base de dades. En el seu lloc, agafa les dades de la xarxa de l'exportació XML del nodeXchange detallat de la zona a la qual pertany el servidor. La màquina que vulgui generar gràfiques amb aquest sistema haurà de tenir :
- Apache o Apache2
- PHP5
- rrdtool 1.2
- MRTG
Periòdicament, el servidor s'haurà de descarregar les dades actualitzades de la xarxa en XML, i la configuració pel MRTG. Amb aquestes dades, quan algú consulti les gràfiques d'aquella zona a través de www.guifi.net, les gràfiques en realitat s'estaràn generant fora del bandoler, pero l'usuari no hi notarà la diferència.
3.- Instalació de paquets
El sistema s'ha provat sobre un servidor amb ubuntu 5.10, i amb un altre sobre debian sarge, però no hi ha d'haver problema per fer-ho amb qualsevol altre linux.
s'han de instal·lar els següents paquets:
mrtg
apache2
php5
rrdtool
librrds-perl
des de ubuntu/debian, podeu fer servir "apt-get install nomdelpaquet" amb el noms de paquets de sobre. Amb fedora, podeu fer servir el yum, els paquets haurien de tenir noms semblants.
IMPORTANT : Només funcionarà amb les versions 1.2 de rrdtool i amb php5. Si per exemple teniu un debian STABLE, primer l'heu de actalitzar a UNSTABLE, i després podreu instal·lar les versions més noves.
4.- Creació de carpetes
S'han de crear les següents carpetes, a no ser que ja existeixin
mkdir /home/comesfa
mkdir /home/comesfa/mrtg
mkdir /home/comesfa/mrtg/logs
mkdir /home/comesfa/mrtg/images
mkdir /etc/mrtg
la carpeta /home/comesfa/mrtg/logs és on és guardaran els .rrd's que contindran les dades de trànsit i pings, i a la carpeta /etc/mrtg és on hi anirà l'script per fer els pings.
5.- Còpia d'arxius
s'ha de copiar l'arxiu adjunt ping.sh a la carpeta /etc/mrtg/
s'ha de copiar l'arxiu grafiques._php a la carpeta /var/www/
heu de reanomenar els arxius *._*
mv grafiques._php grafiques.php
mv ping._sh ping.sh
heu de convertir el ping.sh en executable amb la següent comanda
chmod +x /etc/mrtg/ping.sh
podeu deixar el .php a l'arrel /var/www o be posar-lo a la carpeta que volgueu + endins.
6.- Configuració del cron
A la carpeta /etc/cron.d/ trobareu un arxiu "mrtg" on la pròpia instal·lació del mrtg us haurà creat el cron que executa el mrtg cada 5 minuts. Heu d'afegir 2 línies, i al final us ha de quedar aixi:
0-55/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi
2 17 32 47 * * * * root wget http://www.comesfa.org/ca/guifi/mrtg/0000?ascii -q -O /etc/mrtg.cfg
4 19 34 49 * * * * root wget http://www.comesfa.org/ca/guifi/nodexchange/0000/detail -q -O /var/www/guifi.xml
Un cop fet, nomes cal que reinicieu el servei cron
/etc/init.d/cron restart (debian/ubuntu)
service cron restart (fedora/RH)
- El primer es el que executa el mrtg cada 5 minuts per recollir les dades,
- El segon, cada 15 minuts actualitza la configuració del MRTG desde la web de guifi.net
- El tercer, cada 15 minuts actualitza la informació de la xarxa en XML des de la web de guifi.net
tant en el segon com el tercer cas heu de substituir el número 0000 pel número del node de la zona que voleu graficar. En el tercer, recordeu canviar /var/www/guifi.xml per la ruta on heu colocat l'arxiu grafiques.php.
7.- Configuració de la zona
Per últim, cal que li diguem a l'aplicació que a partir d'ara la nostra zona ja no es grafica desde el bandoler. Anem a la zona en qüestió, l'editem, i al camp "url del servidor mrtg" hi posem la ruta complerta a grafiques.php, per exemple http://esquerda.guifi.net/grafiques.php. SOBRETOT, recordeu que la url ha de començar per http:// !!!!
A partir del moment que guardem els canvis, el navegador de qui consulti les gràfiques anirà a buscar-les a la url que li hem indicat, passant-li els paràmetres adeqüats en funció de les gràfiques que estiguem mirant. I en pocs minuts, el bandoler deixarà de graficar-les. Si mai tornem a deixar en blanc la URL del servidor mrtg, automàticament el bandoler les tornaria a graficar.
Si voleu conservar l'històric de les dades de les gràfiques fetes fins al moment. poseu-vos en contacte amb algun dels administradors que tenen accés al bandoler, pq us puguin traspassar els rrd's, així començareu a graficar desde el punt on ho deixi el bandoler. La comanda que s'ha de fer servir per copiar els rrd's facilment és desde el servidor que estiguem instalant :
scp root@bandoler.guifi.net:/home/comesfa/mrtg/logs/XXXX* /home/comesfa/mrtg/logs
canvieu el XXXX per el nom comu de la zona que tindran les rrd's, per exemple per vic la majoria començaran amb vicxxxx.rrd. La resta els haure de fer un per un.
8.- Detecció d'errors
Hi ha alguns errors que tinc una mica localitzats que us poden ajudar si us surten. Per ferho, obriu el link de la imatge de transit en una finestra sencera, aixi podreu veure l'error.
- Si no us va, repasseu primer la llista de passos a seguir, és bastant detallada i segur que us heu deixat algo 
- Si us apareix el missatge "la imatge no es vàlida", heu de comprovar varies coses :
- que el mrtg hagi començat a generar els rrd's a /home/comesfa/mrtg/logs
- si no hi son, pot ser que no tingueu encara la confguiracio mrtg, repasseu el cron.
- que la versio del rrdtool sigui 1.2 o superior
- per poder depurar altres errors, afegiu &debug=true al final de la URL,i us mostrara la comanda del rrdtool, que podreu executar en una shell per comprovar quin error us dona
- Us pot donar un error de php
- no troba el guifi.xml
- repasseu el cron
- no troba la funcio simplexml_load_file()
- o be no teniu el php 5.x instalat, o heu instalat una versio "capada" sense el modul de XML.
9.- Gràfiques personalitzades:
Com que ara el vostre servidor es fa les seves pròpies gràfiques, si us fa falta us podeu fer una pàgina personalitzada amb les gràfiques que volgueu, fent servir urls com les següents
- gràfiques Ap i "top five" clients, ?type=clients&radio=494&direction=in
- gràfiques de disponibilitat, ?type=pings&radio=494
- gràfiques de radios client, ?type=radio&radio=494
- gràfiques de supernodes, ?type=supernode&node=2552&direction=out
-radio= pel ID de la radio
-direction= per in o out per trafic sortint o entrant
-node= per l'id del node
a totes aquestes gràfiques, podeu afegir els parametres :
&width= per canviar l'amplada del grafic,
&height= per canviar l'alçada,
&thumb= true per fer que nomes mostri el grafic, sense llegendes
&numcli= per especificar el número de clients que surtin a la gràfica, max, perquè surtin tots
NOTES
- -Si teniu el servidor protegit amb algun tallafocs, és possible que tingueu que aplicar alguna regla per permetre les peticions SNMP.
-De moment està en fase de proves, i el bandoler ho continua graficant tot- -Si la dns de la url del servidor mrtg, és una dns interna de guifi, les gràfiques des de internet no es veuran. Si es el cas de subdomini.guifi.net, es pot posar una redirecció desde el proxy de l'esperança. si la dns es accessible tant desde dins com fora de guifi.net, no hi haurà cap problema.
- -Si la dns de la url del servidor mrtg, és una dns externa, i el servidor és dins de guifi, estaria be afegir-la als DNS de guifi, aixi evitaríem trànsit cap a fora.
| Attachment | Size |
|---|---|
| grafiques._php | 10.48 KB |
| ping._sh | 454 bytes |

