62 lines
5.2 KiB
Plaintext
62 lines
5.2 KiB
Plaintext
```
|
|
Container Monitoring Architecture - No Agents Required!
|
|
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Management Container │
|
|
│ │
|
|
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
│ │ Monitoring Controller │ │
|
|
│ │ │ │
|
|
│ │ 1. HTTP Health Endpoints ──┐ │ │
|
|
│ │ 2. Docker Stats API ────────┼──── Fallback Chain │ │
|
|
│ │ 3. Docker Compose Status ───┤ │ │
|
|
│ │ 4. Process List Scanning ───┘ │ │
|
|
│ └─────────────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Target Containers │
|
|
├─────────────────┬─────────────────┬─────────────────┬───────────┤
|
|
│ App Containers│ Infrastructure │ Cache Layer │ Database │
|
|
│ │ │ │ │
|
|
│ ┌─────────────┐ │ ┌─────────────┐ │ ┌─────────────┐ │ ┌───────┐ │
|
|
│ │ Backend │ │ │ Nginx │ │ │ Redis │ │ │ Postgres│
|
|
│ │ │ │ │ │ │ │ │ │ │ │ │
|
|
│ │ /health ←───┼─┼─┼─HTTP calls──┼─┼─┼─Basic ping──┼─┼─┼─Port │ │
|
|
│ │ /metrics │ │ │ /nginx_stat │ │ │ │ │ │ check │ │
|
|
│ └─────────────┘ │ └─────────────┘ │ └─────────────┘ │ └───────┘ │
|
|
├─────────────────┼─────────────────┼─────────────────┼───────────┤
|
|
│ │ │ │ │
|
|
│ Enhanced Data │ Basic Status │ Connectivity │ Status │
|
|
│ • CPU usage │ • Up/Down │ • Responsive │ • Running│
|
|
│ • Memory % │ • Port info │ • Timeout │ • Health │
|
|
│ • Custom │ • Health │ │ │
|
|
│ metrics │ check │ │ │
|
|
└─────────────────┴─────────────────┴─────────────────┴───────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Docker Daemon │
|
|
│ │
|
|
│ If HTTP calls fail, query Docker directly: │
|
|
│ • docker stats --no-stream (CPU, Memory, Network, Disk) │
|
|
│ • docker-compose ps (Status, Health, Ports) │
|
|
│ • ps aux | grep (Process detection as final fallback) │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
|
|
Data Flow:
|
|
1. Management container tries HTTP health endpoints first
|
|
2. Falls back to Docker daemon APIs if containers don't respond
|
|
3. Uses docker-compose for basic status if Docker unavailable
|
|
4. Scans processes as absolute last resort
|
|
|
|
Benefits:
|
|
✅ No agents to install or maintain
|
|
✅ Works with existing containers immediately
|
|
✅ Gradual enhancement possible (add health endpoints when convenient)
|
|
✅ Comprehensive coverage (all containers, not just yours)
|
|
✅ Multiple fallbacks ensure data is always available
|
|
✅ Standard HTTP + Docker APIs (no proprietary protocols)
|
|
```
|