> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/es/pam/get-started/architecture.md).

# Arquitectura y componentes

Los componentes que forman una instancia en ejecución, qué hace cada uno, cómo viaja una sesión entre ellos y cómo se forma la ruta de red desde la solución hasta un activo.

Una instancia no es un solo programa. Es un **core** que posee la base de datos, la bóveda y todas las decisiones de acceso, rodeado de **componentes independientes**, uno por familia de protocolos, más los servicios que almacenan las grabaciones, ejecutan el trabajo programado y envían notificaciones. Se registran ellos mismos en el core y se listan, supervisan y escalan de forma individual.

Saber qué componente hace qué es lo que convierte "el PAM se cayó" en "el RDP se cayó y el SSH funciona bien".

{% hint style="info" %}
Esta página trata del software que ejecuta el producto. Los objetos que usted administra (activos, cuentas, autorizaciones) están en [Conceptos fundamentales](/es/pam/get-started/core-concepts.md). Instalar y dimensionar los componentes corresponde a Implementar y operar.
{% endhint %}

## La ruta de una sesión

1. **El usuario se autentica contra el core.** El core es la API REST que hay detrás de la consola y de todas las integraciones. Resuelve la autorización, la cuenta, la plataforma y la ruta de red que debe usarse.
2. **El core entrega la sesión al componente que habla el protocolo**: el conector de terminal para SSH, Telnet y SFTP; el conector gráfico para RDP y VNC; el conector de bases de datos para los protocolos de base de datos; el conector de aplicaciones virtuales para las aplicaciones publicadas.
3. **Ese componente se conecta al activo**, ya sea directamente, mediante una máquina de salto o por la ruta inversa, recuperando la credencial del core e inyectándola en el inicio de sesión del destino. La credencial nunca se entrega al navegador ni al cliente del usuario.
4. **Mientras el tráfico circula, el componente lo captura**: comandos escritos, salida del terminal, fotogramas de pantalla, archivos transferidos. También aplica los filtros de comandos sobre la marcha, que es la razón por la que el filtrado funciona igual en una sesión web y en un cliente nativo.
5. **Cuando la sesión termina**, el componente entrega el archivo de reproducción al servicio de grabación, que lo escribe en el almacenamiento de objetos configurado. Las grabaciones gráficas pasan antes por el servicio de procesamiento de vídeo, para transcodificarse a una forma reproducible.
6. **El servicio de tareas** ejecuta todo lo programado alrededor de esto (rotación de credenciales, recopilación de cuentas, comprobaciones de conectividad, limpieza de registros) y el servicio de notificaciones entrega lo que piden las suscripciones.

{% hint style="warning" %}
Dos consecuencias de esa forma, ambas dignas de recordar antes de diagnosticar nada. **El core es un único punto de decisión**: mientras está caído, la consola y la API son inalcanzables y ninguna sesión nueva puede iniciarse. **Los componentes de protocolo fallan de forma independiente**: con el conector gráfico caído, las sesiones RDP y VNC se detienen mientras las sesiones SSH siguen funcionando con normalidad.
{% endhint %}

## Los componentes

| Componente                             | Qué hace                                                                                                                                                 | Qué se pierde mientras está caído                                                        |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| **Core (API)**                         | La API REST. Sirve la consola y las integraciones, posee la base de datos y la bóveda, y toma todas las decisiones de acceso                             | Todo. La consola es inaccesible y ninguna sesión puede iniciarse                         |
| **Servicio de tareas**                 | Trabajo asíncrono y programado: rotación, recopilación de cuentas, comprobaciones de conectividad, limpieza                                              | Toda la automatización. Las sesiones siguen funcionando, pero nada programado se ejecuta |
| **Conector de terminal**               | Proxy para SSH, Telnet y SFTP. Graba comandos, salida del terminal y el archivo de reproducción. Sirve tanto al terminal web como a los clientes nativos | Las sesiones de terminal, en el navegador y por cliente                                  |
| **Conector gráfico**                   | Proxy para RDP y VNC. Graba la sesión de escritorio como vídeo                                                                                           | Las sesiones gráficas                                                                    |
| **Conector de bases de datos**         | Proxy para sesiones de base de datos, de modo que los clientes externos alcanzan el activo a través de la solución con las consultas auditadas           | Las sesiones de base de datos con cliente nativo                                         |
| **Conector de aplicaciones virtuales** | Publica aplicaciones individuales de un servidor remoto (RemoteApp y aplicaciones virtuales), mediadas y grabadas, sin un escritorio completo            | Las sesiones de aplicaciones publicadas                                                  |
| **Servicio de grabación**              | Recibe los archivos de reproducción de los componentes de protocolo y los guarda en el almacenamiento de objetos                                         | Las grabaciones nuevas. Las sesiones siguen ejecutándose                                 |
| **Servicio de procesamiento de vídeo** | Transcodifica las grabaciones gráficas al formato de reproducción que usan las pantallas de auditoría                                                    | La reproducción de las nuevas sesiones gráficas                                          |
| **Servicio de notificaciones**         | Envía correo electrónico, SMS y los demás canales configurados                                                                                           | Las alertas y las notificaciones de aprobación                                           |
| **Servicio de reconocimiento facial**  | Verificación de identidad por biometría facial en el inicio de sesión o durante una sesión, cuando está habilitada                                       | Ese método de verificación                                                               |
| **Agente de endpoint Windows**         | Agente opcional en un servidor Windows: información del activo, tareas locales y gestión de cuentas de Windows                                           | Las funciones que dependen de él, solo en ese host                                       |

En la consola, un componente se nombra como `[Tipo]-NombreDelServidor`: `[Terminal]-DATADIKE-T`, `[Database]-DATADIKE`. Al hacer clic en el nombre se abren sus detalles.

## Cómo se incorporan los componentes a la instancia

Los componentes se registran ellos mismos en el core. **Configuración del sistema › Componentes › Básico** contiene el interruptor:

| Ajuste                | Qué controla                                                                                                                                                  |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Registration**      | Habilitado de forma predeterminada. Permite que cualquier componente que conozca la dirección del servidor se registre tras su instalación                    |
| **Client connection** | Si los usuarios pueden lanzar un cliente SSH nativo. Deshabilitado, todo acceso de terminal se fuerza por el terminal web grabado                             |
| **Database proxy**    | Habilita el conector de bases de datos en toda la plataforma. Deshabilitado, las sesiones de base de datos con cliente nativo desaparecen del producto entero |

{% hint style="warning" %}
**Desactive Registration en cuanto los componentes estén en su sitio.** Mientras está activo, cualquier cosa que alcance la dirección del servidor puede registrarse como componente. Vuelva a activarlo solo durante el tiempo que haga falta para añadir uno nuevo.
{% endhint %}

## Vigilar la salud de los componentes

**Configuración del sistema › Componentes › Componentes** lista en tiempo real todos los componentes registrados. Es la primera pantalla que hay que abrir cuando el acceso falla para un protocolo y no para otro.

| Columna               | Qué le dice                                                                                                                                                     |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nombre**            | `[Tipo]-NombreDelServidor`                                                                                                                                      |
| **Sesiones en línea** | Sesiones que ese componente atiende en este momento. Cero significa inactivo; una cifra persistentemente alta indica que toca añadir otra instancia de ese tipo |
| **Stat**              | Uso de CPU y memoria del proceso del componente. Cerca del 100% es saturación                                                                                   |
| **Load status**       | `Normal`, `Offline` (no responde, revise el servicio en su host) o `High load`                                                                                  |
| **ID**                | Identificador único del componente, tal como aparece en registros y diagnósticos                                                                                |
| **Tipo**              | Cuál de los componentes anteriores es                                                                                                                           |
| **Dirección remota**  | Dirección y puerto del host en el que se ejecuta                                                                                                                |

{% hint style="info" %}
No confíe en que alguien abra esta pantalla. Un core o un conector `Offline` es un incidente de disponibilidad, así que suscriba un monitor externo (Zabbix, Prometheus, Datadog) al endpoint de salud y alerte desde allí. Revisar la lista es una rutina, no un mecanismo de detección.
{% endhint %}

## La ruta de red hasta un activo

Cuando la solución no puede abrir por sí misma una conexión hasta el activo, uno de cuatro objetos aporta la ruta. Dos de ellos son mitades del mismo mecanismo, que es la fuente de confusión más habitual aquí.

| Objeto                                                         | Dirección               | Qué es                                                                                                                                                                                                                                                            |
| -------------------------------------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**Proxy**](/es/pam/administration/connectivity/proxy.md)      | De la solución a la red | La **zona**: el registro que agrupa las máquinas de salto de una red y al que se asocian los activos. Un centro de datos, una nube, una VPC                                                                                                                       |
| [**Gateway**](/es/pam/administration/connectivity/gateways.md) | De la solución a la red | La **máquina de salto en sí**, registrada dentro de un proxy. La solución abre una sesión en ella, con una cuenta registrada en ella, y reenvía el tráfico hasta el activo desde dentro                                                                           |
| [**Broker**](/es/pam/administration/connectivity/broker.md)    | De la red a la solución | Un punto de encuentro en una malla de confianza cero, alcanzable por ambos lados. Los gateways remotos marcan *hacia fuera* hasta él, la solución también se conecta a él, y ambos se encuentran allí. Para redes que no pueden aceptar ninguna conexión entrante |
| **Conector**                                                   | De la red a la solución | Un agente en la propia máquina de destino, que inscribe ese único host en el broker y publica solo a sí mismo. Para la máquina aislada sin ningún gateway en su red                                                                                               |

{% hint style="warning" %}
**Proxy y gateway no son dos mecanismos.** El proxy es la zona a la que se asocian los activos; los gateways son las máquinas registradas dentro de ella. No hay ningún motor de proxy aparte configurado en otro sitio.

Un activo usa **un proxy o un gateway de broker, nunca ambos**: su registro le obliga a elegir.
{% endhint %}

El componente que habla con el broker desde el lado de la solución es redundante por diseño: hay una instancia por nodo del clúster, cada una con su propia identidad, inscripción automática y autorrecuperación. Perder un nodo no interrumpe el acceso inverso, y perder un nodo del broker tampoco.

## Alcanzar la consola desde fuera

Los usuarios se conectan a la consola por **HTTPS en el 443** y, desde ahí, abren sesiones RDP, SSH, Telnet, VNC y de base de datos. No se requiere ninguna conectividad directa entre el usuario y los dispositivos protegidos, que es justamente la idea y lo que hace viable el acceso de terceros sin VPN.

{% hint style="danger" %}
No publique la consola directamente en internet sin un cortafuegos y un WAF delante. Si esa protección no está en su sitio, restrinja el acceso a una VPN controlada.
{% endhint %}

Para los puertos que la solución usa para alcanzar los *activos*, consulte [Puertos y protocolos](/es/pam/reference/ports.md).

## Nodo único y clúster

Los mismos componentes se ejecutan en ambas formas. Lo que añade un clúster:

| Propiedad              | En un clúster                                                                                                   |
| ---------------------- | --------------------------------------------------------------------------------------------------------------- |
| Base de datos          | Replicada entre nodos, con elección automática del primario                                                     |
| Caché y cola           | Replicadas, con failover                                                                                        |
| Grabaciones y adjuntos | En almacenamiento compartido entre los nodos                                                                    |
| Dirección              | Una dirección virtual delante de los nodos, para que la URL no cambie cuando un nodo falla                      |
| Sesiones               | Activo-activo: la carga de sesiones se reparte entre los nodos y se redistribuye cuando uno queda no disponible |
| Actualizaciones        | Los componentes se actualizan de uno en uno, sin detener el producto                                            |

Los objetivos de diseño del esquema activo-activo son **RTO de una hora o menos** y **RPO de quince minutos o menos**.

## Errores comunes

| Síntoma                                                                                   | Causa                                                                                         | Solución                                                                    |
| ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| La consola es inalcanzable y ninguna sesión inicia                                        | El core está caído                                                                            | Recupere primero el core; nada más puede diagnosticarse hasta que responda  |
| RDP falla, SSH funciona                                                                   | El conector gráfico está caído o saturado                                                     | Revise **Load status** y **Stat** de ese componente                         |
| Las sesiones se ejecutan pero no aparece ninguna reproducción en el registro de auditoría | El servicio de grabación, el de procesamiento de vídeo o el almacenamiento                    | Revise esos componentes y después la configuración de almacenamiento        |
| Nada programado se ejecuta, pero las sesiones van bien                                    | El servicio de tareas está caído                                                              | La rotación, la recopilación y la limpieza dependen todas de él             |
| Un componente recién instalado no aparece en la lista                                     | **Registration** está deshabilitado                                                           | Habilítelo, registre el componente y vuelva a deshabilitarlo                |
| El componente muestra `Normal` pero las sesiones van lentas                               | Uso alto de recursos, no un fallo                                                             | Lea el **Stat**; cerca del 100% significa añadir otra instancia de ese tipo |
| La opción de lanzar un cliente de base de datos falta en todas partes                     | **Database proxy** está deshabilitado en **Configuración del sistema › Componentes › Básico** | Habilítelo                                                                  |

## Páginas relacionadas

* [Conceptos fundamentales](/es/pam/get-started/core-concepts.md), los objetos sobre los que actúan los componentes
* [Proxy](/es/pam/administration/connectivity/proxy.md), la zona a la que se asocian los activos
* [Gateways](/es/pam/administration/connectivity/gateways.md), las máquinas de salto de su interior
* [Broker](/es/pam/administration/connectivity/broker.md), la ruta inversa
* [Puertos y protocolos](/es/pam/reference/ports.md), los puertos usados para alcanzar los activos
