Servidor de gráficas 1
De Guifi.net - Wiki Hispano
Contenido
Introducción
snpservices con un conjunto de herramientas que permitirán capturar las gráficas de los nodos y supernodos que estén configurados a este servidor. Esta máquina tendrá que tener así salida a guifi.net y a internet. Para leer las gráficas, el servidor de guifi.net preguntará a nuestro servidor vía web las gráficas de los nodos que están configurados con este servidor.
Creación del servicio en la web de guifi
Previamente tendremos que haber añadido un dispositivo tipo servidor en nuestro supernodo y asignarle una IP de guifi (dispositivo del supernodo > editar > sección de conexiones por cable > Rango de IPs destinado a los servers (se crea si no existe) > enchufe > Enlaza un dispositivo > create > Guardar y continuar modificando.
- Crear contenido
- servicio guifi.net
- Service name: Servidor de Gráfiques BCNRossello208
- Nombre corto: BCNRossello208-GRAF
- Contactar: mail de contacto del administrador
- Dispositivo: empezamos a escribir el nombre de nuestro servidor y van a salir el nombre de los servidores que empiezan así
- Servicio: SNP Graph Server
- Estado: Estado del servicio
- Guardar
Una vez Guardado volvemos a modificar y cambiamos los valores:
- versión: 2.0
- url: URL a la que se accede a la aplicación web de las gráficas, normalmente http://ipdelservidor/snpservices
- Guardar
Metodología
Entramos por ssh a la máquina que vamos a destinar como servidor de gráficas y añadimos los repositorios de apt de guifi:
e instalamos el paquete snpservices
# apt-get install snpservices
Nos saldrá un menú de configuración que nos pedirá algunos datos:
- SNP Graph Server Id. (Default: bandoler=6559) El numero de id del servicio que hemos creado en la web de guifi
- rootZone: which is the ROOT zone. (Default: 3671) Dejamos el valor por defecto 3671
- SNPDataServer_url: without ending backslash, the url where the data is. (Default: http://snpservices.guifi.net) Dejamos el valor por defecto http://snpservices.guifi.net
- MRTGConfigSource: mrtg csv data. (Only URL, Graph Server Id will be concatenated) Dejamos el valor por defecto http://www.guifi.net/snpservices/graphs/cnml2mrtgcsv.php?server=
- CNMLSource: url for CNML node query, use sprintf syntax. Dejamos el valor por defecto http://www.guifi.net/snpservices/common/qnodes.php?nodes=%s_
- rrddb path. Dejamos el valor por defecto /var/lib/snpservices/rrdb/
- rddimg path. Dejamos el valor por defecto /var/lib/snpservices/rrimg/
- rddtool version. Dejamos el valor por defecto 1.3
- Force to fetch mrtg.cfg now. Yes
Y empezará a descargar el fichero mrtg.cfg correspondiente al servidor de gráficas establecido en el punto 1.
En este punto podemos acceder al servicio snpservices via web en la siguiente url:
http://ipdelservidor/snpservices
Si no funciona comprueba que tengas un link simbólico en /var/www que se llame snpservices y apunte a /usr/share/snpservices, si no exite, créalo
# ln -s /usr/share/snpservices /var/www/snpservices
Ampliación
El servidor va guardando la información que le mandan los nodos mediante unos scripts que vemos en /etc/cron.d/snpservices
fermat:~# cat /etc/cron.d/snpservices */30 * * * * root if [ -x /var/www/snpservices/graphs ]; then cd /var/www/snpservices/graphs ; fi; if [ -x /usr/bin/php ] && [ -r /var/www/snpservices/graphs/mrtgcsv2mrtgcfg.php ]; then env LANG=C /usr/bin/php mrtgcsv2mrtgcfg.php >> /var/log/snpservices/mrtgccfg.log 2>&1;fi */5 * * * * root if [ ! -x /var/lock/mrtg ]; then mkdir /var/lock/mrtg ; fi; if [ -x /usr/bin/mrtg ] && [ -r /var/lib/snpservices/data/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /var/lib/snpservices/data/mrtg.cfg --lock-file /var/lock/mrtg/guifi_l >> /var/log/snpservices/mrtg.log 2>&1; fi
El snpservices de nuestra máquina está configurado para consultarle a la web de guifi qué nodos tiene que guardar las gráficas. Los scripts se ejecutan cada 5 minutos para recolectar los datos y cada media hora para saber qué nodos graficar.
Si queremos hacer backup de los datos que está recolectando el servidor de graficas copiamos el contenido del directorio /var/lib/snpservices. En /usr/share/snpservices están los ficheros de la aplicación.
Configurar un virtualhost de apache para el servicio
Como nos gusta complicar las cosas (o dejarlas un poco ordenadas), vamos a crear un subdominio en nuestro dominio llamado graf1, voy al DNS y apunto el subdominio a la ip de internet de esta máquina y configuro el virtualhost en la máquina apuntando al directorio snpservices que es un link simbólico (atención añadir la opción FollowSymLinks). Este paso es opcional.
# vi /etc/apache2/sites-available/graf1.marsupi.org <VirtualHost *:80> ServerAdmin marsupi@marsupi.org ServerAlias graf1.marsupi.org *.graf1.marsupi.org ServerName graf1.marsupi.org DocumentRoot /usr/share/snpservices #habilitar en cas de debugging #ErrorLog /var/log/apache2/graf1.marsupi.org_error.log #LogLevel warn #CustomLog /var/log/apache2/graf1.marsupi.org_access.log combined <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /usr/share/snpservices> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>
Cargamos el fichero de configuración a apache
# a2ensite graf1.marsupi.org
Y reiniciamos el servicio
# service apache2 restart
Agradecimientos
Thnks Zunbado y Locke.