No description
| hq | ||
| outpost | ||
| README.md | ||
PromHQ
A Prometheus-based monitoring infrastructure with a central Headquarter (HQ) and remote Outposts.
Architecture
┌─────────────────────────────────────────────────────────┐
│ Headquarter (HQ) │
│ │
│ Grafana ◄── Prometheus ◄── Exporters │
│ (Vis) (Storage) (Node, Nginx, │
│ cAdvisor, │
│ ▲ Blackbox) │
│ │ remote_write │
│ │ │
│ ┌──────────────┴──────────────┐ │
│ │ Outpost(s) │ │
│ │ │ │
│ │ Prometheus ◄── Exporters │ │
│ │ (Scrape) (Node, │ │
│ │ Nginx, │ │
│ │ cAdvisor) │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
Components
Headquarter (HQ)
Deployed on a central Linux server. Runs:
- Grafana — visualization dashboards
- Prometheus — long-term metric storage (remote write receiver enabled)
- Node Exporter — host metrics
- Nginx Exporter — Nginx metrics (if needed)
- cAdvisor — Docker container metrics (if needed)
- Blackbox Exporter — HTTP endpoint probing
Outpost
Deployed on remote Linux servers behind Nginx. Runs:
- Prometheus — scrapes local exporters and forwards metrics via
remote_write - Node Exporter — host metrics
- Nginx Exporter — Nginx metrics (if needed)
- cAdvisor — Docker container metrics (if needed)
Outposts ship their metrics to the HQ for centralized storage and visualization.
Quick Start
HQ
cd hq
docker compose up -d
Outpost
cd outpost
# Create a password file for remote write auth
echo -n 'your_password' > .remote_write_password
docker compose up -d
Directory Structure
promHQ/
├── hq/ # Headquarter — central server
│ ├── compose.yml
│ ├── prometheus.yml
│ ├── blackbox.yml
│ └── README.md
├── outpost/ # Outpost — remote server
│ ├── compose.yaml
│ ├── prometheus.yml
│ └── README.md
└── doc/ # Diagrams and assets