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