Del Inventario al CMDB en GLPI: Relaciones entre Activos

En GLPI, el puente entre inventario y CMDB no es la pestaña Conexiones - es el análisis de impacto (glpi_impactrelations). Guía de los cuatro mecanismos de relación, cuándo usar Aplicaciones (Appliances), la semántica de la flecha que casi todos invierten y las consultas de diagnóstico que ejecutamos en soporte para encontrar la CMDB ciega.

En este artículo7 secciones

Un inventario responde "qué tengo". Una CMDB responde "qué se cae junto cuando esto falle". El puente entre ambos en GLPI no es la pestaña Conexiones, como muchos suponen - es el análisis de impacto, y ahí es exactamente donde se atasca la mayoría de los proyectos de CMDB. Esta guía muestra los cuatro mecanismos de relación que ofrece GLPI, cuál usar en cada caso y las consultas que ejecutamos en soporte para encontrar la CMDB ciega.

Inventario vs CMDB: la diferencia que cambia la respuesta a incidentes

El inventario es un registro: marca, modelo, número de serie, garantía, responsable. Es control patrimonial y es donde todos empiezan - con el inventario automático de GLPI Agent pueblas cientos de activos en días. La CMDB es lo que viene después: la capa de relación que responde la pregunta que importa en medio de un incidente - si este switch se cae, ¿qué servidores, servicios y usuarios se detienen con él?

AspectoInventarioCMDB
Pregunta que responde¿Qué tengo?¿Qué depende de qué?
UnidadActivo (ítem)Relación entre CIs
Cómo se pueblaAutomático (GLPI Agent)Manual, una decisión de modelado
Valor durante un incidenteEncontrar el equipoPrever el radio de impacto

El error estratégico común es tratar la CMDB como "inventario más detallado" e intentar rellenar una relación para todo. No escala y nadie lo mantiene. Una buena CMDB es escueta: solo los CIs críticos y las dependencias que realmente usarías en un análisis de impacto.

Los cuatro mecanismos de relación en GLPI

GLPI no tiene un único "campo de relación" - tiene cuatro mecanismos distintos, cada uno en su tabla, y elegir el equivocado es la raíz de la mayoría de las CMDB que no funcionan. En soporte, el error número 1 es montarlo todo en la pestaña Conexiones creyendo que eso es la CMDB, y luego descubrir que el análisis de impacto está vacío.

MecanismoTablaModela¿Dirigido?Poblado por
Conexiones directasglpi_computers_itemsPeriférico conectado a un ordenador (monitor, impresora, teléfono)NoInventario o manual
Puertos de redglpi_networkports_networkportsCableado entre dos puertos (switch ↔ host)NoSNMP/LLDP o manual
Aplicaciones (Appliances)glpi_appliances_itemsUn servicio/aplicación como CI + la infraestructura que lo sostieneNo (agrupación)Manual
Análisis de impactoglpi_impactrelationsGrafo de dependencia para calcular el radio de impactoSí (origen → impactado)Manual (pestaña Impacto)

Conexiones y puertos de red modelan el enlace físico. Aplicaciones agrupa la infraestructura de un servicio. Y el análisis de impacto - el único dirigido - es el grafo de dependencia que de verdad responde "qué se cae junto". Los cuatro conviven; la confusión viene de esperar que uno haga el trabajo del otro.

Modela el servicio como un CI: Aplicaciones (Appliances)

El paso que falta en la mayoría de los inventarios es darle existencia propia al servicio. "Correo", "ERP", "Portal del cliente" no son hardware - son servicios que corren sobre hardware. En GLPI el objeto correcto para esto es la Aplicación (Appliances, menú Activos), disponible desde GLPI 9.5. Una Aplicación es un CI lógico al que vinculas los ítems que lo sostienen:

  1. Crea la Aplicación (p. ej. "Servicio de Correo").
  2. En la pestaña de ítems asociados, vincula los CIs de soporte: el servidor, el switch core, el almacenamiento, el enlace de internet. Esto se graba en glpi_appliances_items.
  3. Registra el responsable técnico, el contrato de soporte y el proveedor en la propia Aplicación.

A partir de ahí el servicio existe como entidad consultable: abres "Servicio de Correo" y ves la lista de infraestructura que lo sostiene, sin depender de la memoria de nadie.

La CMDB de verdad: el análisis de impacto

Agrupar infraestructura en una Aplicación dice quién sostiene qué, pero no calcula el radio de impacto de un fallo. Ese es el trabajo de la pestaña Análisis de impacto (presente desde GLPI 9.4), que dibuja un grafo dirigido de dependencias guardado en glpi_impactrelations. Cada arista tiene origen y destino: itemtype_source, items_id_source impacta a itemtype_impacted, items_id_impacted.

La dirección es el detalle que separa a quien entiende de quien solo arrastró cajitas. Una arista del switch al servidor significa "el switch impacta al servidor". Cuando el switch se cae, sigues las flechas hacia delante y ves todo lo que se detiene con él. El error común es dibujar la flecha invertida - poner el servidor impactando al switch - y entonces el análisis de impacto del switch caído sale vacío, justo cuando más lo necesitas. Modela siempre en el sentido del flujo de dependencia: de la infraestructura base hacia el servicio en la cima.

Un aviso de campo: el grafo se renderiza en el navegador y se vuelve lento con cientos de nodos. No intentes dibujar todo el parque. Usa la criticidad de negocio (el desplegable Criticidad, en Configurar > Desplegables) para marcar los CIs críticos y pon solo esos en el grafo. Una CMDB densa es una CMDB abandonada.

SQL de diagnóstico: encontrar la CMDB ciega

Al iniciar un contrato de soporte, antes de discutir procesos, ejecutamos una auditoría de cobertura: qué CIs críticos están en el inventario pero fuera de cualquier relación de impacto. Son los puntos donde el análisis de impacto mentirá, diciendo "nada se ve afectado" cuando en realidad nadie lo modeló. La consulta lista los ordenadores sin ninguna arista - ni como origen ni como destino:

-- Ordenadores SIN ninguna relacion de impacto:
-- existen en el inventario, pero son invisibles para el analisis de impacto.
SELECT c.id, c.name
FROM glpi_computers c
LEFT JOIN glpi_impactrelations r
       ON (r.itemtype_source   = 'Computer' AND r.items_id_source   = c.id)
       OR (r.itemtype_impacted = 'Computer' AND r.items_id_impacted = c.id)
WHERE c.is_deleted = 0
  AND r.id IS NULL
ORDER BY c.name;

Y el otro lado: dado un servicio modelado como Aplicación, qué CIs agrupa. Útil para comprobar si "Servicio de Correo" apunta de verdad al servidor y al switch correctos antes de confiar en él en una madrugada de incidente:

-- Items que sostienen una Aplicacion (servicio) especifica:
SELECT ai.itemtype, ai.items_id
FROM glpi_appliances_items ai
INNER JOIN glpi_appliances a ON a.id = ai.appliances_id
WHERE a.name = 'Servicio de Correo';

Ejecutamos estas dos consultas directamente contra la base de datos (con un cliente SQL de solo lectura), nunca mediante un LIKE en la interfaz, porque queremos el número exacto de huérfanos para dimensionar el esfuerzo de modelado.

El autodescubrimiento no monta la CMDB por ti

Conviene deshacer una expectativa que aparece en todo proyecto: el inventario de red por SNMP descubre las conexiones físicas - si GLPI Agent escanea los switches por SNMP y LLDP/CDP está activo, los puertos de red entre switch y host se pueblan solos en glpi_networkports_networkports. Eso es excelente y no debes hacerlo a mano. Pero la dependencia lógica de servicio - "el correo depende de este servidor" - ningún protocolo la descubre. El agente no sabe que cierto proceso Exchange es tu servicio de correo crítico. Esa capa es siempre una decisión humana, y es justamente la que convierte el inventario en CMDB.

Mantén el grafo vivo o mentirá

Una CMDB desactualizada es peor que no tener CMDB: da falsa confianza. Cambias un switch, olvidas actualizar la relación y, en el siguiente fallo, el análisis de impacto apunta a un equipo que ya no existe. Ata el mantenimiento del grafo al proceso de gestión de cambios - todo cambio en un CI crítico debe revisar sus relaciones de impacto antes de cerrarse. Sin esa disciplina, el grafo envejece en semanas. Es el mismo principio de la base de conocimiento: una relación que nadie mantiene se vuelve ruido.

¿Necesitas una CMDB en GLPI que sostenga un análisis de impacto real, con el grafo modelado en los CIs correctos y mantenido junto a los cambios? Conoce el servicio de soporte y mantenimiento de GLPI de NexTool.


Revisado por el equipo de NexTool Solutions.

Preguntas Frecuentes

Sí, mediante cuatro mecanismos: conexiones directas (glpi_computers_items), puertos de red (glpi_networkports_networkports), Aplicaciones (glpi_appliances_items) para agrupar la infraestructura de un servicio, y el análisis de impacto (glpi_impactrelations), el grafo dirigido que calcula el radio de impacto de un fallo.

Conexiones modela el enlace físico (un monitor en un ordenador, puerto A a puerto B) y no es dirigido. El análisis de impacto es un grafo dirigido de dependencia (el origen impacta al destino) - es lo que responde 'qué se cae junto' cuando un CI falla. Montar la CMDB solo en la pestaña Conexiones deja el análisis de impacto vacío.

Usa Aplicaciones (menú Activos, desde GLPI 9.5). Crea la Aplicación y vincula los CIs que la sostienen (servidor, switch, almacenamiento, enlace) en la pestaña de ítems asociados; se graba en glpi_appliances_items. Para el radio de impacto, añade también las dependencias en la pestaña Análisis de impacto.

No, y no deberías. Empieza por los CIs críticos (servidores, switches core, firewalls, servicios de negocio) y sus dependencias. Una CMDB densa vuelve lento el grafo y nadie la mantiene. Usa la criticidad de negocio para elegir qué entra en el grafo.

Solo la parte física. El inventario de red por SNMP/LLDP puebla automáticamente las conexiones entre switch y host. Pero la dependencia lógica de servicio ('el correo depende de este servidor') no la descubre ningún protocolo - siempre es modelado manual.

?Necesitas ayuda?