# Prometheus & Grafana Monitoring Hub

This folder contains the configuration for the centralized monitoring stack running on the Homelab VM.

## Folder Structure

```
prometheus_grafana_hub/
├── dashboards/                        # Grafana dashboard JSON files
│   ├── infrastructure-overview.json   # Fleet-wide status of all devices
│   ├── node-details.json              # Detailed per-host metrics
│   ├── synology-monitoring.json       # Synology NAS SNMP metrics
│   └── node-exporter.json             # Full Node Exporter dashboard
├── snmp-configs/                      # SNMP Exporter configurations
│   └── snmp_synology.yml              # Synology NAS SNMP config
├── docker-compose/                    # Docker compose files for remote hosts
│   ├── atlantis-docker-compose.yml
│   ├── calypso-docker-compose.yml
│   ├── setillo-docker-compose.yml
│   ├── concord-nuc-docker-compose.yml
│   └── guava-docker-compose-node-exporter.yml
├── docker-compose.homelab-vm.yml      # Main stack compose (Homelab VM)
├── prometheus.yml                     # Prometheus scrape configuration
├── Dockerfile                         # Custom Prometheus image (if needed)
└── README.md
```

## Dashboards

| Dashboard | UID | Description |
|-----------|-----|-------------|
| Infrastructure Overview | `infrastructure-overview-v2` | Fleet status, CPU, Memory, Disk, Network for all hosts |
| Node Details | `node-details-v2` | Per-REDACTED_APP_PASSWORD CPU breakdown, per-core usage, memory details, disk I/O |
| Synology Monitoring | `synology-dashboard-v2` | Synology NAS CPU, Memory, Load, Uptime via SNMP |
| Node Exporter Full | `rYdddlPWk` | Comprehensive node exporter metrics |

## SNMP Configuration

The `snmp_synology.yml` config is deployed to each Synology NAS at:
- **Atlantis**: `/volume2/metadata/docker/snmp/snmp.yml`
- **Calypso**: `/volume1/docker/snmp/snmp.yml`
- **Setillo**: `/volume1/docker/snmp/snmp.yml`

## Monitored Hosts

### Node Exporter Targets
- homelab-node (100.67.40.126:9100)
- atlantis-node (100.83.230.112:9100)
- calypso-node (100.103.48.78:9100)
- setillo-node (100.125.0.20:9100)
- concord-nuc-node (100.72.55.21:9100)
- proxmox-node (100.87.12.28:9100)
- truenas-node (100.75.252.64:9100)
- raspberry-pis (100.77.151.40:9100)

### SNMP Targets (Synology)
- atlantis-snmp (100.83.230.112)
- calypso-snmp (100.103.48.78)
- setillo-snmp (100.125.0.20)

## Deployment

### Homelab VM (Main Stack)

The main monitoring stack runs on Homelab VM:
```bash
cd ~/docker/monitoring

# Using the compose file from this repo:
docker-compose -f docker-compose.homelab-vm.yml up -d

# Or if already deployed:
docker-compose up -d
```

**Services:**
- **Grafana**: http://homelab:3300 (admin / set via GF_SECURITY_ADMIN_PASSWORD)
- **Prometheus**: http://homelab:9090
- **Node Exporter**: Runs in host network mode on port 9100

### Remote Hosts

Each remote host runs node-exporter and/or snmp-exporter as specified in the `docker-compose/` folder.
