Monitorizar la Raspberry Pi con RPi Monitor

Este es uno de los capítulos del tutorial La Raspberry Pi. Primera primeros pasos.. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Con el paso del tiempo, vamos cargando la Raspberry. Le vamos añadiendo todo tipo de servicios. Desde NFS, Samba, SSH, Transmission, hasta llegar a instalar nuestra propia infraestructura LAMP, WordPress, y todo lo que te puedas imaginar. Es inevitable, este pequeño ordenador tiene un mundo de posibilidades. Sin embargo, todo tiene un límite, y es necesario que nos preocupemos por su salud. En este sentido, lo mejor es monitorizar la Raspberry Pi, y para ello disponemos de gran variedad de opciones, entre las que cabe destacar RPi Monitor.

Monitorizar la Raspberry Pi con RPi Monitor. Portada.

Monitorizar la Raspberry Pi con RPi Monitor

RPi Monitor es un software que nos permite monitorizar la Raspberry Pi, presentándonos, en una sencilla pero eficaz, página web, el estado de salud de la Raspberry Pi. Esto es particularmente interesante para los que, como en mi caso, no hemos instalado un entorno gráfico en la Raspberry Pi.

Por cuestiones de seguridad y rendimiento RPi Monitor separa la parte de obtener y almacenar los datos, de la parte de mostrar los datos. La parte de obtención de todos los datos es realizada por un proceso que funciona en modo demonio ejecutada con derechos de administrador. Todos los datos extraídos se guardan en una base de datos. Esto nos permite conocer el histórico sobre la salud de nuestra Raspberry Pi.

Para la presentación de la información se utiliza páginas HTML5, con bootstrap, jquery, y otra tecnología. Todo ello, tiene la ventaja de que descarga al servidor de trabajo, porque el proceso de renderizado es por cuenta del cliente. Menos trabajo para la Rasbperry Pi.

¿Que datos nos ofrece RPi Monitor?

Lo primero que nos encontramos con RPi Monitor, y me refiero a la página web que aparecerá al conectarnos a la Raspberry Pi, es un resumen del estado de salud.

Monitorizar la Raspberry Pi con RPi Monitor. Estado.

En este resumen del estado de salud de nuestra Raspberry Pi, encontramos los siguientes parámetros,

  • Version: Nos da datos sobre el procesador, la distribución y versión instalada. Igualmente nos indica la versión del núcleo de Linux, y la del firmware. Por último, en este apartado, nos indica si hay paquetes por instalar.
  • Uptime: En este apartado nos indica la hora del reloj de nuestra Raspberry Pi, y cuanto tiempo lleva en funcionamiento desde el último arranque
  • CPU: Nos indica la carga de la CPU, y otros parámetros como frecuencia, tensión, etc.
  • Temperature: Nos indica la temperatura medida en la CPU.
  • Memory: Aquí podemos ver la cantidad de memoria en uso y disponible.
  • Swap: En este punto encontraremos el uso y estado de la memoria de intercambio.
  • SD Card: Lo mismo que en el apartado anterior pero para el caso de nuestra tarjeta SD.
  • Network: Aquí verás los paquetes enviados y recibidos según tu conexión.

Se trata de una página estática, es decir, no se va actualizando en tiempo real, con lo que necesitarás refrescar para ver nuevos valores.

Estadísticas

Como no solo de un resumen vive el ser humano, en la siguiente página podremos acceder a las estadísticas de uso de la Raspberry Pi. Aquí es donde realmente vamos a monitorizar la Rasbperry Pi. Puesto que todos los datos indicados anteriormente se guardan en una base de datos que posteriormente se pueden ver en gráficos.

Monitorizar la Raspberry Pi con RPi Monitor. Estadísticas.

RPi Monitor, nos ofrece gráficos de los siguientes parámetros, con los que poder monitorizar la Rasbperry de forma detallada,

  • Tiempo de uso
  • Carga de la CPU
  • Temperatura
  • Memoria RAM
  • Memoria de intercambio
  • Uso de la tarjeta SD
  • Paquetes enviados y recibidos

Instalación

Para instalar la última versión de Rpi Monitor, ejecuta las siguientes órdenes en un emulador de terminal,

sudo apt-get install apt-transport-https ca-certificates
sudo wget https://goo.gl/vewCLL -O /etc/apt/sources.list.d/rpimonitor.list
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2C0D3C0F
sudo apt update
sudo apt install rpimonitor

Una vez instalado, RPi Monitor está disponible en la dirección IP de tu Raspberry, en el puerto 8888. En mi caso por ejemplo, https://192.168.1.48:8888/a menos que ese puerto ya esté ocupado, como es mi caso. Ese puerto ya está siendo utilizado por Transmission.

Tenemos que hacer algo de configuración

Configurando RPi Monitor

A continuación vamos a ver algunos casos prácticos, para configurar RPi Monitor para monitorizar la Raspberry. Lo primero, vamos a cambiar el puerto de uso de RPi Monitor.

Cambiar el puerto donde vemos el estado de la Raspberry Pi

Para cambiar el puerto, en el caso de que ya esté siendo utilizado por otro servicio, tenemos que editar el archivo /etc/rpimonitor/daemon.conf. Aquí tenemos que buscar la línea que dice #daemon.port=8888, quitar el comentario y cambiar le puerto. En mi caso, por ejemplo, queda de la siguiente manera daemon.port=8889.

Monitorizar la conexión WiFi

Para monitorizar la conexión WiFi, edita como administrador el archivo /etc/rpimonitor/daemon.conf. Prácticamente al final encontrarás una línea comentada que dice #include=/etc/rpimonitor/template/wlan.conf. Quita el símbolo # para que quede include=/etc/rpimonitor/template/wlan.conf.

Monitorizar la Raspberry Pi con RPi Monitor. WiFi.

Monitorizar unidades USB

Otra interesante opción que nos ofrece RPi Monitor es la de monitorizar las unidades USB que tengamos montas en la Raspberry Pi. El proceso es exactamente igual que en el caso anterior. Edita como administrador el archivo /etc/rpimonitor/storage.conf. Prácticamente al final encontrarás una línea comentada que dice #include=/etc/rpimonitor/template/storage.conf. Quita el símbolo # para que quede include=/etc/rpimonitor/template/storage.conf.

Una vez modificado esto, es necesario hacer algunos cambios en el archivo /etc/rpimonitor/template/storage.conf, para que se adecue a tu configuración. Es decir, le tienes que indicar las unidades que tienes montadas en tu Raspberry Pi. A parte de esto, en mi caso, el comando sobre el que se aplicaba la expresión regular, no funcionaba de forma correcta, y no conseguía monitorizar los valores.

El resultado final, una vez completada correctamente la configuración, queda como puedes ver en la siguiente captura de pantalla.

Monitorizar la Raspberry Pi con RPi Monitor. USB.

Monitorizar otros servicios

Con RPi Monitor además de monitorizar la Raspberry Pi, en todos los aspectos señalados aquí, aún podemos añadir algunos mas, y muy, pero que muy interesantes. Por ejemplo podemos monitorizar los servicios que tenemos.

Se trata de un complemento realmente sencillo de personalizar, y que de un solo vistazo nos da mucha información. El funcionamiento es sencillo, se trata de ver las conexiones activas, a través de netstat -nlt, y en función de los puertos que tenemos escuchando, sabemos los servicios activos. Por ejemplo,

Monitorizar la Raspberry Pi con RPi Monitor. Servicios.

Para activar esta opción, al igual que hemos hecho en el caso anterior, tienes que buscar la línea comentada #include=/etc/rpimonitor/template/services.conf, que prácticamente se encuentra al final del archivo. Le quitas el símbolo # y la dejas como include=/etc/rpimonitor/template/services.conf.

Ahora bien, si has cambiado algún puerto, o quieres añadir otros servicios de los contemplados, tendrás que modificar el archivo /etc/rpimonitor/template/services.conf.

Algunos de los servicios no los detectaba por la expresión regex que tenía en el archivo así que lo he modificado. Además he añadido un par de servicios adicionales como son Transmission y Posgtresql. En el siguiente enlace puedes encontrar los puertos mas usados, para que sepas a que servicios corresponden y así tenerlos localizados.

Por otro lado, para facilitarme la lectura de servicios en funcionamiento he modificado el archivo para que se vea uno debajo de otro. A continuación puedes ver el contenido de mi archivo, por si te es de utilidad.

########################################################################
# Extract information about Opened Port
#  Page: 1
#  Information               Status     Statistics
#  - ssh port (22)           - yes      - no
#  - rpimonotor port (8888)  - yes      - no
#  - http port (80)          - yes      - yes
#  - https port (443)        - yes      - yes
#  - mysql port (3306) - yes - no
########################################################################
dynamic.1.name=ssh
dynamic.1.source=netstat -nlt
dynamic.1.regexp=tcp\d? .*:(22).*LISTEN

dynamic.2.name=rpimonitor
dynamic.2.source=netstat -nlt
dynamic.2.regexp=tcp\d? .*:(8889).*LISTEN

dynamic.3.name=transmission
dynamic.3.source=netstat -nlt
dynamic.3.regexp=tcp\d? .*:(8888).*LISTEN

dynamic.4.name=http
dynamic.4.source=netstat -nlt
dynamic.4.regexp=tcp\d? .*:(80).*LISTEN

dynamic.5.name=https
dynamic.5.source=netstat -nlt
dynamic.5.regexp=tcp\d? .*:(443).*LISTEN

dynamic.6.name=mysql
dynamic.6.source=netstat -nlt
dynamic.6.regexp=tcp\d? .*:(3306).*LISTEN

dynamic.7.name=postgresql
dynamic.7.source=netstat -nlt
dynamic.7.regexp=tcp\d? .*:(5432).*LISTEN

web.status.1.content.1.name=Servers
web.status.1.content.1.icon=daemons.png
web.status.1.content.1.line.1="ssh : "+Label(data.ssh,"==22","OK","success")+Label(data.ssh,"!=22","KO","danger")+" rpimonitor : "+Label(data.rpimonitor,"==8889","OK","success")+Label(data.rpimonitor,"!=8889","KO","danger")+" transmission: "+Label(data.transmission,"==8888","OK","success")+Label(data.transmission,"!=8888","KO","danger")+" apache http : "+Label(data.http,"==80","OK","success")+Label(data.http,"!=80","KO","danger")+" apache https : "+Label(data.https,"==443","OK","success")+Label(data.https,"!=443","KO","danger")+" mysql : "+Label(data.mysql,"==3306","OK","success")+Label(data.mysql,"!=3306","KO","danger")+" postgresql : "+Label(data.postgresql,"==5432","OK","success")+Label(data.postgresql,"!=5432","KO","danger")

Controlar RPi Monitor

Para controlor el funcionamiento de RPi Monitor tienes las siguientes órdenes,

  • Iniciar -> sudo systemctl start rpimonitor
  • Parar -> sudo systemctl stop rpimonitor
  • Riniciar -> sudo systemctl restart rpimonitor
  • Conocer el estado -> systemctl status rpimonitor

Indicar que cada vez que cambies algún archivo de la configuración de Rpi Monitor es necesario que reinicies utilizando la orden sudo systemctl restart rpimonitor

Conclusiones

Como has podido ver, con esta aplicación puedes monitorizar la Raspberry Pi hasta el mas mínimo detalle. Las posibilidades son increíbles, a la hora de mostrar información. Además, al tratarse de una web adaptativa, la puedes consultar desde el móvil en cualquier momento. Eso si, yo te recomendaría que lo hicieras a través de una VPN.

Monitorizar la Raspberry Pi con RPi Monitor. Móvil.

En cuanto a las posibilidades de personalización… Yo he tenido que parar, porque esto no tiene fin. Puedes configurarlo y personalizarlo todo, hasta el más mínimo detalle. Puedes añadir mas apartados o lo que tu necesites, hasta tener en una sola página recopilada toda la información para monitorizar la Rasbperry Pi.


Más información,

6 comentarios en “Monitorizar la Raspberry Pi con RPi Monitor

  1. XA
    Xavi Monllau hace 7 años

    al realizar el comando:
    sudo wget http://goo.gl/rsel0F -O /etc/apt/sources.list.d/rpimonitor.list

    me da este error:
    –2018-01-13 16:53:02– http://goo.gl/rsel0F
    S’està resolent goo.gl (goo.gl)… 216.58.211.206, 2a00:1450:4003:806::200e
    S’està connectant a goo.gl (goo.gl)|216.58.211.206|:80… connectat.
    HTTP: s’ha enviat la petició, s’està esperant una resposta… 301 Moved Permanently
    Ubicació: https://raw.githubusercontent.com/XavierBerger/RPi-Monitor/master/init/apt/sources.list.d/rpimonitor.list [es segueix]
    –2018-01-13 16:53:07– https://raw.githubusercontent.com/XavierBerger/RPi-Monitor/master/init/apt/sources.list.d/rpimonitor.list
    S’està resolent raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.0.133, 151.101.64.133, 151.101.128.133, …
    S’està connectant a raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443… connectat.
    HTTP: s’ha enviat la petició, s’està esperant una resposta… 404 Not Found
    2018-01-13 16:53:08 ERROR: 404 Not Found.

    1. EL
      El atareao hace 7 años

      Hola Xavi,
      Enlace corregido. Muchas gracias por el aviso.
      Un saludo.

  2. JO
    Jose Rojas hace 7 años

    Funciona perfecto! Un par de apuntes:

    Al instalar la firma del repositorio obtuve un error

    gpg: failed to start the dirmngr ‘/usr/bin/dirmngr’: No such file or directory

    Por lo que hace falta instalar dirmngr

    sudo apt-get install dirmngr –install-recommends

    El otro comentario, es que el archivo a modificar para monitorizar la WiFi es /etc/rpimonitor/data.conf no /etc/rpimonitor/daemon.conf

    Excelentes tutoriales, como siempre. Saludos!

  3. JO
    Joan C Pallejà hace 7 años

    Todo me va correcto salvo que no monitoriza la barra de la ram ocupada/libre, se queda en blanco.
    Sabéis que archivo editar ?

    Estoy atareao con mi raspi server, es un vicio XD
    Gracias de antemano, me encanta tu site.

  4. GE
    Gerardo Silva hace 1 año

    Hola Lorenzo espero te encuentres bien, conocí de tu sitio por medio del los podcast que realizas, con respecto a esto hay alguna manera de saber el estado de la conexión de la raspberry pi hacia una pantalla (TV) o un monitor, es que me gustaría saber como utilizar este dato para rastrearlo con un script de python y enviarlo por MQTT a la red, saludos desde Monterrey, México…

  5. AF
    afternet2k@gmail.com hace 1 año

    Buenas, recién he conocido tu web y ya me he puesto algunas cosas, entre ellas el RPI-MONITOR que es una maravilla.
    Se me ocurre una sugerencia ya que estoy detrás de ello. Sería posible añadir unas líneas para poder controlar esos servidores que estamos usando y si se cae alguna reiniciarlo a mano? O incluso que se reinicie auto si es que así lo decidimos.
    Quizás una contraseña para poder acceder también sería la po..a

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *