En esta entrada vamos a explicar como montar el software rpi-monitor que realizó Xavier Berger como necesidad de controlar y monitorizar las RaspberryPi que se montan en entornos empresariales, aunque nos sirve para el entorno doméstico.
Este software nos permite visualizar las métricas del estado de los dispositivos en tiempo real, es decir, nos da valores del uso de CPU, consumo de RAM, espacio en disco,... en definitiva nos aporta datos del sistema necesarios para controlar la RaspberryPi.
Usaremos docker para desplegar el servicio, el software cuenta con paquete deb y repositorio disponible en Raspbian.
Necesitamos clonar estos dos repositorios de git para generar la imagen de docker
mkdir rpi-monitor && cd rpi-monitor
git clone https://github.com/balena-io-library/resin-rpi-raspbian/
git clone https://github.com/XavierBerger/Docker-RPi-Monitor
Compilamos la imagen del primer repositorio que es la base necesaria para compilar la imagen de rpi-monitor, cambiando la distribución a stretch en el Dockerfile
cd resin-rpi-raspbian && docker build -t balenalib/rpi-raspbian .
Una vez tengamos la imagen base creada, modificamos el Dockerfile
de Docker-RPi-Monitor con el siguiente patch:
diff --git a/Dockerfile b/Dockerfile
index 5a1f93d..dbe46ed 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,14 +1,14 @@
-FROM resin/rpi-raspbian:latest
+FROM balenalib/rpi-raspbian:latest
LABEL maintainer="Michael Miklis / <info@michaelmiklis.de>"
-RUN [ "cross-build-start" ]
+#RUN [ "cross-build-start" ]
ENV DEBIAN_FRONTEND noninteractive
# Install RPI-Monitor form Xavier Berger's repository
RUN apt-get -y update && \
- apt-get install -y --no-install-recommends dirmngr apt-transport-https ca-certificates && \
+ apt-get install -y --no-install-recommends dirmngr apt-transport-https ca-certificates procps && \
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2C0D3C0F && \
echo deb http://giteduberger.fr rpimonitor/ > /etc/apt/sources.list.d/rpimonitor.list && \
apt-get -y update && \
@@ -33,4 +33,4 @@ ADD run.sh /run.sh
RUN chmod +x /run.sh
CMD bash -C '/run.sh';'bash'
-RUN [ "cross-build-end" ]
+#RUN [ "cross-build-end" ]
Solo queda crear la imagen oficial de rpi-monitor:
cd Docker-RPi-Monitor && docker build -t rpi-monitor .
Ya creada la imagen para nuestra arquitectura arm64, podemos hacer un docker-compose.yml o instanciar la imagen directamente desde la línea de comandos:
docker run --device=/dev/vchiq --device=/dev/vcsm-cma --volume=/opt/vc:/opt/vc --volume=/boot:/boot --volume=/sys:/dockerhost/sys:ro --volume=/etc:/dockerhost/etc:ro --volume=/proc:/dockerhost/proc:ro --volume=/usr/lib:/dockerhost/usr/lib:ro -p=8888:8888 --name="rpi-monitor" -d rpi-monitor:latest
Siendo accesible el contenedor desde http://localhost:8888/
Como curiosidad destacar que el servicio devuelve un documento JSON con los valores de monitorización en la ruta /dynamic.json
, dando posibilidad de usarse en varias instancias de RaspberryPi y gestionar las métricas desde otro software o un monitor LCD.
Comments
No comments yet. Be the first to react!