On Github tombatossals / sax-presentacion-gps
Por pedir que no quede:
Seguro que se os ocurren más cosas:
The system statistics collection daemon. http://collectd.org.
Nos permite muestrear a intervalos regulares los diferentes valores necesarios para nuestro análisis (tráfico, ancho de banda usuarios conectados, etc.)
Base de datos documental. http://mongodb.org.
Añadir un nuevo nodo o enlace al sistema tiene que ser tan fácil como introducir IP y coordenadas. El resto se obtiene de manera automática:
¿Cómo?RouterOS API (Mikrotik), SSH (OpenWRT)
Añadir un nuevo nodo a la monitorización:
$ cat node.json { "name": "jrjimenez", "system": "mikrotik", "latlng": { "lat": 39.979128, "lng": -0.049640 } } $ ./manage add node node.json
Añadir un nuevo enlace a la monitorización:
$ cat link.json { "nodes": [ { "name": "jrjimenez" }, { "name": "casalduch" } ] } $ ./manage add link link.json
Actualizar todas las interfaces de los nodos monitorizados:
$ ./manage update interfaces # Actualizar las interfaces del nodo castalia $ ./manage update interfaces castalia
Actualizar información (distancia, red P2P, estado) de los enlaces monitorizados:
$ ./manage update links # Actualizar los links del nodo castalia $ ./manage update links castalia
Actualizar otra información:
$ ./manage update routing $ ./manage update bandwidth $ ./manage update sysinfo $ ./manage update ospf
Número de usuarios conectados al nodo, con señal mejor que -80dbm y peor que -80dbm
[dave@solicom5 gps]$ ./manage.js monitor users PUTVAL "TorreSanVicente/node/connected_users" interval=1200 N:3:0 PUTVAL "fsalvador/node/connected_users" interval=1200 N:2:2 PUTVAL "casalduch/node/connected_users" interval=1200 N:3:0 PUTVAL "paseouniversidad/node/connected_users" interval=1200 N:13:1 PUTVAL "panderola/node/connected_users" interval=1200 N:9:0 PUTVAL "benarabe/node/connected_users" interval=1200 N:10:1 PUTVAL "graoPaseoBuenavista/node/connected_users" interval=1200 N:2:1 PUTVAL "inforgames/node/connected_users" interval=1200 N:13:0 PUTVAL "pabello/node/connected_users" interval=1200 N:12:3 PUTVAL "riotamesis/node/connected_users" interval=1200 N:6:2 PUTVAL "urbanizacionMadrigal/node/connected_users" interval=1200 N:3:1
Los agentes son cada uno de los dispositivos enrutadores y que establecen los enlaces inalámbricos que queremos tener monitorizados en nuestro sistema.
Necesario usuario/contraseña para acceder a consultar la información. Puede ser el usuario guest del unsolclick.
/ip service set api disabled=no
Script de monitorización de ancho del banda de un enlace P2P en un nodo mikrotik
/system script name="bandwidth" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api last-started=jun/06/2014 09:43:46 run-count=989 source= :local ttx :local rrx :set ttx 0 :set rrx 0 :global ip :global username :global password :global interval :global duration :global proto /tool bandwidth-test $ip user=$username password=$password protocol=$proto \ direction=transmit interval=$interval duration=$duration do={ :if ($status="running") do={ :set ttx $"tx-total-average" } } /tool bandwidth-test $ip user=$username password=$password protocol=$proto \ direction=receive interval=$interval duration=$duration do={ :if ($status="running") do={ :set rrx $"rx-total-average" } } :put ("tx:". $ttx . " rx:" . $rrx )
Para nodos OpenWRT utilizamos una versión del test de ancho de banda de mikrotik hecha para Linux.
Código fuente: https://github.com/kadosch/mikrotik_btest.
/usr/sbin/mikrotik_btest -d both -t 20 172.16.5.105