Hace unos días comentábamos como plantearse un plugin para su posterior desarrollo, hoy vamos con la clase práctica: el twitter
- Necesidad. Vale lo más importante antes de lanzarnos a hacer un plugin es preguntarnos ¿nos hace falta? Bueno, en este caso si (o dejamos ya el blog).
- ¿Qué? Bueno podemos monitorizar montones de cosas, pero en nuestro ejemplo haremos solo dos cosas: el número de twits y el número de seguidores.
- ¿Cómo? Pues lo haremos sencillo. Miraremos la URL de la cuenta que queramos monitorizar.
- ¿Tecnología? Como vamos a lo sencillo nos haremos un sencillo bash.
Empezamos las pruebas:
Para acceder a la web un simple CURL (con un -s para que sea silencioso).
Buscamos la línea que contenga la cadena 'data-nav="followers"' que es donde están nuestro seguidores.
Con un segundo grep escogemos solo los números.
En casos de más de 999 twitter nos devuelve el número de seguidores en dos cadenas. Las juntamos con TR.
Finalmente eliminamos espacios en blanco.
Aquí tenéis la cadena y el resultado.
# curl -s https://twitter.com/SIM_technical | grep 'data-nav="followers"' | grep -E -o "[0-9]" | tr 'n' ' ' | sed "s/ //g"
220
Vale, ya tenemos la primera parte, ahora si cambiamos los “followers” por “tweets” obtendremos el número de tweets subidos en la cuenta. Aquí va el resultado.
# curl -s https://twitter.com/SIM_technical | grep 'data-nav="tweets"' | grep -E -o "[0-9]" | tr 'n' ' ' | sed "s/ //g"
67
Ahora metemos todo esto en un script:
#cat check_twitter.sh
#!/bin/bash
followers=(`curl -s https://twitter.com/$1 | grep 'data-nav="followers"' | grep -E -o "[0-9]" | tr 'n' ' ' | sed "s/ //g"`)
tweets=(`curl -s https://twitter.com/$1 | grep 'data-nav="tweets"' | grep -E -o "[0-9]" | tr 'n' ' ' | sed "s/ //g"`)
echo "OK: Cuenta @$1 tiene $tweets tweets y $followers followers | tweets=$tweets followers=$followers"
exit 0
Tenemos que $1 va a ser el valor (nombre de la cuenta), y que “exit 0” indica a Nagios que el resultado del plugin es siempre OK.
# ./check_twitter.sh SIM_technical
OK: Cuenta @SIM_technical tiene 67 tweets y 219 followers | tweets=67 followers=219
# ./check_twitter.sh Solucions_im
OK: Cuenta @Solucions_im tiene 279 tweets y 29 followers | tweets=279 followers=29
Como podéis ver es un script muy sencillo que solo nos devuelve los seguidores y tweets de una cuenta, y que no tiene más opciones configurables, ni tan siquiera es posible poner alarmas. Es un script meramente informativo.
Ya continuaremos añadiendo cosas al plugin. Aquí lo resultados en Nagios.
Lo peor que todo es que he perdido un seguidor mientras preparaba el artículo. Ánimos a todos.
"