Saltar al contenido principal

Componentes sueltos

Los componentes sueltos se usan en despliegues a medida: backend en un host, conector en otro, Elastic externo o supervisores corporativos.

Componentes habituales​

  • spot-server: UI/API y configuración operativa.
  • spot-agent-sap: extractor SAP.
  • spot-license-blackbox: validador local requerido antes de backend y connector.
  • spotctl: utilidad de administración y diagnóstico.
  • RFC SDK: librerías SAP necesarias para el conector.
  • Elastic externo o embebido gestionado fuera del paquete all-in-one.

Cuándo elegirlo​

  • Necesitas directorios propios definidos por política interna.
  • Hay separación entre equipo Basis, equipo Linux y equipo observabilidad.
  • Elastic ya está estandarizado.
  • El arranque se integra en un supervisor existente.

Separar escritura y lectura​

Cada proceso spot-agent-sap configura un único writer Elasticsearch+namespace y puede extraer N SAP. Cada entrada exige un ID explícito; ese mismo valor se escribe como source_id y aparece como targetId en la UI/API. Todos los SAP de ese proceso comparten los dos Data Streams del namespace, pero permanecen aislados por source_id.

El backend configura uno o varios read scopes independientes, cada uno con URL, namespace y credenciales de lectura. Los standalone pueden escribir en uno o varios scopes ejecutando procesos separados. El catálogo descubre cada SAP, fija su binding a un solo scope y nunca usa otro Elasticsearch como fallback.

Checklist​

  1. Define rutas de configuración, datos y logs.
  2. Define usuario de ejecución para cada proceso.
  3. Exporta variables necesarias del RFC SDK.
  4. Instala el validador y activa o instala la licencia.
  5. Configura y prueba los read scopes del backend.
  6. Configura el writer de cada connector con el mismo namespace que su scope.
  7. Configura N conexiones SAP con IDs explícitos y únicos.
  8. Levanta backend y conectores.
  9. Comprueba health, logs, ingestion y que /api/targets descubre cada source_id en el scope correcto.

Riesgos comunes​

  • Variables de RFC SDK no disponibles en el servicio.
  • Directorios de log sin permisos de escritura.
  • Elastic externo accesible desde backend pero no desde conector.
  • Namespace distinto entre escritura y lectura.
  • El mismo source_id publicado en dos scopes, que bloquea ese target con target_binding_conflict.