deploy hermes

This commit is contained in:
2026-05-25 20:21:24 -05:00
parent e309acd67d
commit be8e50d590
40 changed files with 2420 additions and 1159 deletions

View File

@@ -1,12 +0,0 @@
services:
grafana:
image: docker.io/grafana/grafana-oss:12.3.3
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
volumes:
grafana_data:
driver: local

View File

@@ -1,138 +0,0 @@
# ------------------------------------------------------------------------------
# FILE: boilerplates/monitoring/compose.yaml
# DESCRIPTION: Monitoring stack — Prometheus, Grafana, Alertmanager,
# Node Exporter, PVE Exporter, Pure FA Exporter
# ------------------------------------------------------------------------------
networks:
monitoring:
driver: bridge
volumes:
prometheus_data:
driver: local
driver_opts:
type: none
o: bind
device: /var/lib/prometheus
grafana_data:
driver: local
alertmanager_data:
driver: local
services:
# ----------------------------------------------------------------------------
# Prometheus
# ----------------------------------------------------------------------------
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
command:
- --config.file=/etc/prometheus/prometheus.yaml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=30d
- --web.enable-lifecycle
volumes:
- /opt/docker/monitoring/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
- prometheus_data:/prometheus
ports:
- "9090:9090"
networks:
- monitoring
# ----------------------------------------------------------------------------
# Grafana
# ----------------------------------------------------------------------------
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD}
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=https://grafana.local.mk-labs.cloud
- GF_AUTH_GENERIC_OAUTH_ENABLED=true
- TRUSTED_PROXIES=10.1.71.35
volumes:
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
networks:
- monitoring
depends_on:
- prometheus
# ----------------------------------------------------------------------------
# Alertmanager
# ----------------------------------------------------------------------------
alertmanager:
image: prom/alertmanager:latest
container_name: alertmanager
restart: unless-stopped
volumes:
- /opt/docker/monitoring/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
- alertmanager_data:/alertmanager
ports:
- "9093:9093"
networks:
- monitoring
# ----------------------------------------------------------------------------
# Node Exporter
# ----------------------------------------------------------------------------
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: unless-stopped
command:
- --path.rootfs=/host
pid: host
volumes:
- /:/host:ro,rslave
ports:
- "9100:9100"
networks:
- monitoring
# ----------------------------------------------------------------------------
# Proxmox VE Exporter
# Scrapes the Proxmox API and exposes cluster/node/VM metrics for Prometheus.
# Credentials are mounted from pve.yml (rendered from vault).
# ----------------------------------------------------------------------------
pve-exporter:
image: prompve/prometheus-pve-exporter:latest
container_name: pve-exporter
restart: unless-stopped
volumes:
- /opt/docker/monitoring/pve-exporter/pve.yml:/etc/prometheus/pve.yml:ro
ports:
- "9221:9221"
networks:
- monitoring
# ----------------------------------------------------------------------------
# SNMP Exporter
# Scrapes UniFi switches and UPS Tower via SNMP v2c.
# snmp.yml is rendered from vault and mounted read-only.
# ----------------------------------------------------------------------------
snmp-exporter:
image: prom/snmp-exporter:latest
container_name: snmp-exporter
restart: unless-stopped
volumes:
- /opt/docker/monitoring/snmp-exporter/snmp.yml:/etc/snmp_exporter/snmp.yml:ro
# network_mode: host is required so the container can route to VLANs
# (192.168.1.0/24) that are reachable from the host but not the Docker bridge.
# Port mapping and networks are incompatible with host networking.
network_mode: host
# ----------------------------------------------------------------------------
# Pure Storage FlashArray Exporter -- DEFERRED
# utilidor is on Purity 6.5.x; legacy exporter image is no longer publicly
# available on Quay. Once utilidor reaches Purity 6.7+, no container is
# needed -- Prometheus scrapes the native OpenMetrics endpoint directly.
# See prometheus.yaml.j2 for the commented-out scrape job to re-enable.
# ----------------------------------------------------------------------------