====== Prometheus, Grafana & cAdvisor ======
; URL Prometheus : http://localhost:9090/
; URL Grafana : http://localhost:3300/
; URL cAdvisor : http://localhost:8080/
; Production : hetzner:/opt/prometheus/
==== Config ====
Docker-compose-yml anlegen:
version: '3.7'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
user: root
volumes:
- ./prometheus:/etc/prometheus
- ./prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.enable-lifecycle'
ports:
- "9090:9090"
networks:
- internal
restart: unless-stopped
grafana:
image: grafana/grafana
container_name: grafana
depends_on:
- prometheus
ports:
- "3000:3000"
volumes:
- ./grafana_data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=${GF_PASS}
networks:
- internal
restart: unless-stopped
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- "8080:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
networks:
- internal
restart: unless-stopped
networks:
internal:
external: false
In Unterordner prometheus/prometheus.yml anlegen:
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # Evaluate rules every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'Hetzner'
# Alertmanager configuration goes here (if used)
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
scrape_configs:
- job_name: prometheus
honor_labels: true
honor_timestamps: true
scheme: http
scrape_interval: 60s
scrape_timeout: 55s
metrics_path: /metrics
static_configs:
- targets: ['prometheus:9090']
-
- job_name: cadvisor
scrape_interval: 5s
static_configs:
- targets: ['cadvisor:8080']
- job_name: 'dwb@smns'
static_configs:
- targets: ['smns.diversityworkbench.de:9175']
===== SSH Tunnel =====
Prometheus (9090), Grafana (3000) & cAdvisor (8080) laufen nur lokal auf Hetzner, daher ist es notwendig einen SSH Tunnel zu öffnen, um die Seiten anzuschauen.\\
**Voraussetzung ist natürlich, dass man seinen SSH Key auf dem Server hinterlegt hat.**
==== Windows ====
SSH Connectstring mit mehrfachem Tunnel:
ssh username@144.76.68.113 -p 666 -L 3000:144.76.68.113:3000 -L 8080:144.76.68.113:8080 -L 9090:144.76.68.113:9090
Die Seiten sind dann über http://localhost:9090/, http://localhost:3000/ bzw. http://localhost:8080/ erreichbar.
==== Linux ====
~/.ssh/config:
Host Hetzner
User xyz
HostName 144.76.68.113
Port 666
IdentityFile ~/.ssh/id_rsa.pub
localforward 3000 144.76.68.113:3000
localforward 8080 144.76.68.113:8080
localforward 9090 144.76.68.113:9090