Skip to main content

Architecture Overview

High-Level Architecture

Centralize Management System dibangun dengan arsitektur microservices yang diorkestrasi menggunakan Docker Compose. Sistem ini terdiri dari 20+ services yang saling berkomunikasi melalui Docker internal network.

┌─────────────────────────────────────────────────────────────────────┐
│ CLM Docker Stack │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Keycloak │──▶│ Backend │──▶│ Fluentd │──▶│OpenSearch│ │
│ │ (Auth) │ │ (Go) │ │(Log Ship)│ │(Storage) │ │
│ │ :8080 │ │ :8081 │ │ :24224 │ │ :9200 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ ▲ │ │
│ ▼ │ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │audit-log │ │Fluent Bit│ │OpenSearch│ │
│ │(OpenSearch)│ │(Collector)│ │Dashboards│ │
│ └──────────┘ │ :2020 │ │ :5601 │ │
│ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Wazuh │──▶│Wazuh │──▶│alerts.json│ │
│ │Agent │ │Manager │ │(volume) │ │
│ └──────────┘ │:1514 │ └──────────┘ │
│ └──────────┘ │
└─────────────────────────────────────────────────────────────────────┘

Service Components

Core Services

ServiceImageFunction
CLM BackendCustom Go APIAPI server, business logic, RBAC
FrontendReact + ViteWeb UI dashboard
Keycloakkeycloak:26.0.7Authentication & SSO

Data Layer

ServiceImageFunction
OpenSearchopensearch:3.7.0Log storage & search engine
OpenSearch Dashboardsopensearch-dashboards:3.7.0Visualization UI
PostgreSQLpostgres:16RBAC metadata, audit trail
RedisredisCaching

Log Pipeline

ServiceImageFunction
Fluent Bitfluent-bit:4.2.5Log collector (Docker & system logs)
Fluentdfluentd:v1.17-1Log forwarding pipeline
Logstashlogstash (custom)PostgreSQL → OpenSearch sync
Apache Camelcamel (custom)Integration routing

Security Monitoring

ServiceImageFunction
Wazuh Managerwazuh-manager:4.14.5Security monitoring server
Wazuh Agentwazuh-agentPer-server security agent

Monitoring & Observability

ServiceImageFunction
Prometheusprom/prometheusMetrics collection & storage
Grafanagrafana/grafanaMetrics visualization
OTel Collectorotel-collector-contrib:0.155.0Telemetry collection
cAdvisorcadvisorContainer metrics
Node Exporternode-exporterHost metrics

Supporting Services

ServiceImageFunction
RabbitMQrabbitmq:3-managementMessage bus
MinIOminio/minioS3-compatible object storage (Data Lake)
Kestrakestra:v0.21.1Workflow orchestrator
ConsumerCustom GoRabbitMQ message consumer
Core BankingJava Spring BootISO-compliant transaction demo

Network Architecture

Semua services berkomunikasi melalui Docker bridge network monitoring. External ports yang di-expose:

PortServiceProtocol
8085Frontend (Nginx)HTTP
8081Backend APIHTTP
8080KeycloakHTTP
9200OpenSearch REST APIHTTPS
5601OpenSearch DashboardsHTTP
1514Wazuh Agent (syslog)TCP/UDP
1515Wazuh Agent enrollmentTCP
55000Wazuh APIHTTPS
9090PrometheusHTTP
3001GrafanaHTTP
5672RabbitMQ AMQPTCP
15672RabbitMQ ManagementHTTP
9000/9001MinIOHTTP
8084KestraHTTP
4317/4318OTel CollectorgRPC/HTTP

Data Sources

Docker Containers ──▶ Fluent Bit ──▶ Fluentd ──▶ OpenSearch (logs-YYYY.MM.DD)
Servers/Endpoints ──▶ Wazuh Agent ──▶ Wazuh Manager ──▶ Fluentd ──▶ OpenSearch
CLM Backend ──▶ OpenSearch (audit-log-YYYY.MM.DD)
Prometheus ──▶ Grafana (visualization)

Multi-Tenant Architecture

Sistem mendukung multi-tenant melalui:

  • OpenSearch Aliases dengan term filter tenant_id
  • PostgreSQL untuk RBAC metadata per tenant
  • JWT claims yang membawa tenant_id

Next Steps