Integrar métricas de Unraid en Homepage

2024-12-02

Si utilizar Homepage y tienes un servidor Unraid habrás visto que no dispone de ningún widget que nos proporcione información sobre el estado del servidor, sin embargo y gracias a Unraid Simple Monitoring API vamos a poder integrar unas sencillas métricas

Las métricas que proporciona actualmente Unraid Simple Monitoring API son:

  • Utilización de disco y temperatura
  • Tráfico de la red
  • Carga y temperatura de la CPU
  • Utilización de la memoria

Instalación

La instalación se realizada desde las Community Applications

A no ser que ya estés utilizando el puerto que viene por defecto puedes dejar la plantilla como viene por defecto

Es normal que el contenedor no arranque y de un error ya que no hemos creado ningún fichero de configurador

Crea un fichero de configuración en la ruta que hayas configurado en la plantilla, si lo dejaste por defecto sera /mnt/user/appdata/unraid-simple-monitoring-api, por ejemplo

networks:
  - eth0
disks:
  cache:
    - /mnt/cache
  array:
    - /mnt/disk1
    - /mnt/disk2
    - /mnt/disk3
    - /mnt/disk4

cpuTemp: /sys/class/hwmon/hwmon4/temp3_input

Recuerda que esta configuración se corresponde con mi ordenador, tendras que adaptarla al tuyo

Ahora si, inicia el contenedor, ya no debería de dar error, podemos hacer un petición a la API para comprobar se funciona correctamente en la url http://ip-servidor-unraid:24940

Integración con Homepage

Debemos de editar el fichero services.yaml, por ejemplo si quieres que aparezca así

- Unraid:
     icon: unraid.png
     href: http://ip-unraid
     widget:
       type: customapi
       url: http://ip-unraid:24940
       method: GET # this doesn't matter
       mappings:
         - field:
             cache_total: free
           label: cache free
           format: number
           suffix: GiB
         - field:
             cache_total: used
           label: percent used
           format: percent
         - field:
             array_total: total # or used, total, used_percent, free_percent
           label: array total
           format: number # or percentage
           suffix: GiB # or nothing in case of percentages, or whatver you prefer
         - field:
             array_total: used # or used, total, used_percent, free_percent
           label: array used
           format: number # or percentage
           suffix: GiB # or nothing in case of percentages, or whatver you prefer

Si por el contrario te gusta más así:

- Unraid:
         icon: unraid.png
         href: http://ip-unraid
         widget:
           type: customapi
           display: list
           url: http://ip-unraid:24940
           method: GET # this doesn't matter
           mappings:
             - field:
                 cache_total: free
               label: cache free
               format: number
               suffix: GiB
             - field:
                 cache_total: used
               label: percent used
               format: percent
             - field:
                 array_total: total # or used, total, used_percent, free_percent
               label: array total
               format: number # or percentage
               suffix: GiB # or nothing in case of percentages, or whatver you prefer
             - field:
                 array_total: used # or used, total, used_percent, free_percent
               label: array used
               format: number # or percentage
               suffix: GiB # or nothing in case of percentages, or whatver you prefer
             - field:
                 cpu: load_percent # or temp
               label: cpu load
               format: percent # or number
             - field:
                 cpu: temp # or temp
               label: cpu temp
               format: number # or number
               suffix: º

Espero que te haya gustado, pasa un gran día 🐧


Ingrese la dirección de su instancia