Docker Compose
Overview
Centralize Management System menggunakan Docker Compose untuk mengorkestrasi 20+ services.
Services
Core Services
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| backend | clm-backend:latest | 8081 | 384m | 0.25 |
| frontend | clm-frontend:latest | 8085 | 256m | 0.25 |
| keycloak | keycloak:26.0.7 | 8080 | 1g | 1.00 |
Data Layer
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| opensearch | opensearch:3.7.0 | 9200 | 2g | 1.00 |
| dashboards | opensearch-dashboards:3.7.0 | 5601 | 512m | 0.50 |
| postgres | postgres:16 | 5432 | 256m | 0.25 |
| minio | minio/minio | 9000/9001 | 256m | 0.25 |
Log Pipeline
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| fluent-bit | clm-fluent-bit:latest | - | 128m | 0.25 |
| fluentd | clm-fluentd:latest | 24224 | 512m | 0.25 |
| logstash | clm-logstash:latest | 5044 | 1g | 0.50 |
| camel | clm-camel:latest | 8181 | 256m | 0.25 |
Security
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| wazuh-manager | wazuh-manager:4.14.5 | 1514/55000 | 256m | 0.25 |
Monitoring
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| prometheus | prom/prometheus | 9090 | 512m | 0.50 |
| grafana | grafana/grafana | 3001 | 256m | 0.25 |
| otel-collector | otel-collector-contrib | 4317/4318 | 512m | 0.50 |
| cadvisor | cadvisor | 8082 | 256m | 0.25 |
| node-exporter | node-exporter | 9100 | 128m | 0.25 |
Message Bus
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| rabbitmq | rabbitmq:3-management | 5672/15672 | 256m | 0.25 |
Workflow
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| kestra | kestra:v0.21.1 | 8084 | 512m | 0.25 |
Consumer
| Service | Image | Port | Memory | CPU |
|---|---|---|---|---|
| consumer | clm-consumer:latest | 8082 | 128m | 0.25 |
Volumes
volumes:
opensearch-data:
wazuh-logs:
wazuh-queue:
wazuh-etc:
filebeat-data:
rabbitmq-data:
minio-data:
kestra-data:
grafana-data:
prometheus-data:
postgres-data:
logstash-data:
postgres-os-metrics:
Network
networks:
monitoring:
name: monitoring
driver: bridge
Health Checks
| Service | Health Check | Interval |
|---|---|---|
| opensearch | /_cluster/health | 30s |
| wazuh-manager | pgrep wazuh-analysisd | 30s |
| rabbitmq | rabbitmq-diagnostics check_port_connectivity | 30s |
| logstash | curl http://localhost:9600/_node/stats | 30s |
| prometheus | wget http://localhost:9090/-/healthy | 30s |
| grafana | wget http://localhost:3000/api/health | 30s |
| minio | curl http://localhost:9000/minio/health/live | 30s |
| kestra | curl http://localhost:8080/ | 30s |
| consumer | wget http://localhost:8082/healthz | 30s |
Usage
Start All Services
docker compose up -d
Start with Build
docker compose up -d --build
View Logs
# All services
docker compose logs -f
# Specific service
docker compose logs -f backend
# Last 100 lines
docker compose logs --tail 100 backend
Stop Services
# Stop all
docker compose down
# Stop and remove volumes
docker compose down -v
Restart Services
# Restart all
docker compose restart
# Restart specific
docker compose restart backend
Next Steps
- Kubernetes - K3s deployment
- OpenSearch - OpenSearch configuration
- Wazuh - Wazuh setup