Goliat Cloud Inventory: recursos, suscripciones y costes de Azure en un solo panel

  • Imagen de redactorDaniel J. Saldaña
  • 2 de noviembre de 2026
Goliat Cloud Inventory: recursos, suscripciones y costes de Azure en un solo panel

Entender un entorno Azure exige relacionar varias piezas: qué recursos existen, a qué suscripción pertenecen, cómo están etiquetados y qué costes generan. Cuando la información queda repartida, responder una pregunta sencilla puede llevar más tiempo que la consulta técnica que hay detrás.

He creado Goliat Cloud Inventory para reunir esa exploración en un dashboard autoalojado. La aplicación combina un inventario consultable, análisis de costes y administración del colector, con una interfaz en español e inglés.

Web oficial y demo interactiva: Abrir la web de Goliat Cloud Inventory

Código en GitHub: Ver el repositorio de Goliat Cloud Inventory

El repositorio del producto incluye el panel, el backend, la Azure Function de recogida, la infraestructura y las guías para desplegarlo.

Panel real de Goliat Cloud Inventory con indicadores de recursos, proveedores, suscripciones y cobertura de etiquetas, además de gráficas por proveedor y ubicación.

Captura real de la aplicación ejecutada en local. Los 214 recursos y las suscripciones que aparecen pertenecen al inventario ficticio de demostración.

Del inventario general al recurso concreto

El panel ofrece 73 vistas organizadas en 12 grupos de servicios. La visión general reúne indicadores y distribuciones; las categorías permiten profundizar en cómputo, contenedores, red, almacenamiento, bases de datos y otros servicios.

En las tablas puedes buscar, filtrar por suscripción y columna, agrupar, ordenar, paginar y exportar los datos. La búsqueda global permite localizar recursos por nombre, identificador o etiqueta, además de encontrar suscripciones y vistas del catálogo.

Un recorrido práctico podría ser:

  1. Abrir la visión general para conocer el volumen de recursos y la cobertura de etiquetas.
  2. Seleccionar una suscripción para limitar el análisis a un entorno.
  3. Buscar un recurso o una etiqueta de proyecto.
  4. Consultar su categoría y exportar el conjunto filtrado para revisarlo con el equipo.

La búsqueda trabaja sobre el inventario que ya se ha cargado. Cada interacción de la tabla no dispara una nueva recogida de Azure.

Cómo llega el inventario al panel

La arquitectura separa la recogida de recursos de su consulta:

Azure Resource Graph + Azure Resource Manager
↓
Azure Functions
↓
Snapshot JSON en Blob Storage
↓
Backend Next.js
↓
PostgreSQL
↓
Dashboard de inventario

La Function recoge los datos y publica un snapshot. El backend lee ese documento, lo normaliza y lo importa en PostgreSQL. El navegador consulta al backend, que aplica el control de acceso.

Cada importación se ejecuta en una transacción. Si falla, se conserva el snapshot anterior; el mismo ETag del blob no se importa dos veces. Esto evita que un error de importación deje unas tablas con la nueva versión y otras con la anterior.

La actualización manual también coordina el trabajo entre usuarios y réplicas mediante un bloqueo compartido en PostgreSQL. Esto evita que dos personas inicien simultáneamente la misma operación desde el panel.

FinOps: consultar los costes con su contexto

La sección FinOps consulta Azure Cost Management desde el servidor. Permite elegir mes, suscripción, moneda y base de coste real o amortizado, y explorar la evolución diaria, la distribución del gasto y el detalle por recurso y servicio.

El inventario y los costes tienen recorridos distintos: los recursos proceden del snapshot importado, mientras que FinOps consulta la API de costes. El producto no mantiene un libro histórico de gastos en PostgreSQL.

Hay varios detalles que ayudan a interpretar los resultados:

  • Las monedas se mantienen separadas.
  • Los recursos eliminados y los cargos sin recurso conservan su importe.
  • Los resultados parciales y los errores de permisos se muestran de forma explícita.
  • La ausencia de datos no se presenta como un coste de cero.
  • La fecha de consulta no equivale al cierre de la factura; el mes abierto puede recibir ajustes.

La intención es facilitar la lectura y el análisis del gasto disponible. Esta versión no calcula previsiones ni recomendaciones automáticas de ahorro.

Administración del colector y de la actualización

La sección de administración reúne el estado y las métricas de la Function, información de salud de PostgreSQL y Blob Storage, y la comparación entre el inventario publicado y el importado.

También permite gestionar la programación del colector y las claves de etiquetas que se muestran como columnas. Esto ayuda a adaptar la vista a convenciones como proyecto, entorno o centro de coste.

Los diagramas de arquitectura están integrados en la aplicación y en la web del producto. Permiten seguir tanto el flujo de datos como el despliegue de referencia en Azure.

Identidad y permisos separados por responsabilidad

La aplicación admite autenticación con Microsoft Entra ID y un modo demo con usuario y contraseña. Las páginas y las APIs de datos comprueban el acceso en el servidor.

El colector utiliza permisos de lectura para consultar el inventario. La identidad del backend dispone de los permisos necesarios para leer el snapshot y, para FinOps, consultar los costes mediante Cost Management Reader en las suscripciones configuradas.

Las credenciales cloud y de PostgreSQL permanecen en el servidor y en el colector. El navegador recibe los datos que puede consultar, no las credenciales utilizadas para obtenerlos.

La administración requiere permisos adicionales definidos para sus operaciones. Separar esas responsabilidades permite revisar quién puede consultar, actualizar o administrar la instalación.

Probarlo con datos ficticios

La web de Goliat Cloud Inventory incluye una vista previa interactiva que funciona con datos ficticios y no consulta tu suscripción. Puedes explorar las vistas de inventario, FinOps y administración para conocer la interfaz.

Para probar la aplicación real en local necesitas Node.js y una base PostgreSQL vacía, siguiendo los requisitos del README. El recorrido de inicio es:

Terminal window
git clone https://github.com/danieljsaldana/goliat-cloud-inventory.git
cd goliat-cloud-inventory
npm ci
cp .env.example .env
# Configura PostgreSQL, el acceso demo y AUTH_SECRET en .env
# antes de ejecutar los siguientes comandos.
npm run db:init
npm run db:seed
npm run dev

La semilla incluye 214 recursos ficticios y permite probar el inventario sin credenciales de Azure. El análisis de costes de una suscripción real necesita su configuración y los permisos correspondientes.

Cuando quieras conectar un entorno real, la documentación explica el colector y el despliegue con Bicep y PowerShell: App Service, Azure Functions, Storage, PostgreSQL e identidades de Entra.

Dos herramientas con responsabilidades distintas

Goliat Nexus organiza una base de infraestructura y una aplicación de ejemplo. Cloud Inventory se centra en consultar recursos, suscripciones, etiquetas y costes.

Cada herramienta puede utilizarse de forma independiente. Inventory puede recoger los recursos de las suscripciones que configures, incluidas aquellas donde despliegues Nexus, siempre que tenga los permisos adecuados.

Enlaces oficiales de Goliat Cloud Inventory

0