Grafana + Prometheus + Loki
docker-compose.yml
services:
grafana:
image: grafana/grafana-oss:11.5.1-ubuntu
container_name: grafana
hostname: grafana
restart: unless-stopped
environment:
- GF_SERVER_ROOT_URL=https://grafana.MEINEDOMAIN.de
- GF_PLUGINS_PREINSTALL=grafana-clock-panel
- GF_SECURITY_ADMIN_USER=admin
#- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_SMTP_ENABLED=true
- GF_SMTP_HOST=smtp.strato.de:587
- GF_SMTP_USER=it@MEINEDOMAIN.de
- GF_SMTP_PASSWORD=MEIN-MAIL-PW
- GF_SMTP_FROM_ADDRESS=grafana@MEINEDOMAIN.de
- GF_SMTP_FROM_NAME=Grafana Alerts
ports:
- 3030:3000
volumes:
- grafana:/var/lib/grafana
networks:
grafana-monitoring:
prometheus:
image: prom/prometheus:v3.1.0
container_name: prometheus
hostname: prometheus
restart: unless-stopped
ports:
- 9090:9090
volumes:
- prometheus:/etc/prometheus
networks:
grafana-monitoring:
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.47.2
devices:
- /dev/kmsg
privileged: true
container_name: cadvisor
hostname: cadvisor
restart: unless-stopped
ports:
- 8088:8080
volumes:
- /dev/disk/:/dev/disk:ro
- /mnt/praxis-volume-01/docker-data/:/var/lib/docker:ro
- /sys:/sys:ro
- /var/run:/var/run:ro
- /:/rootfs:ro
networks:
grafana-monitoring:
volumes:
grafana:
prometheus:
networks:
grafana-monitoring:
driver: bridge
Prometheus Node Exporter
Für alle Hardware-Infos des Nodes (CPU, RAM, Netzwerk etc...)
https://github.com/prometheus/node_exporter
https://prometheus.io/docs/guides/node-exporter/
docker-compose.yml
services:
node_exporter:
image: quay.io/prometheus/node-exporter:v1.9.0
container_name: node_exporter
command:
- '--path.rootfs=/host'
network_mode: host
pid: host
restart: unless-stopped
volumes:
- '/:/host:ro,rslave'
Prometheus.yml (Prometheus Container)
Danach in das Prometheus Volume gehen und die Prometheus.yml bearbeiten:
# my global config
global:
scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: 'cadvisor'
static_configs:
#- targets: ['cadvisor:8080']
# ^ LÄUFT LEIDER NICHT, HOSTNAME KANN NUR KURZ AM ANFANG VOM PROMETHEUS CONTANER MIT NSLOOKUP CADVISOR GEFUNDEN WERDEN, DANACH NICHT MEHR... ICH MACH ES EINFACH UEBER DIE EXTERNE IP ADRESSE.
# docker exec -it prometheus /bin/sh
# nslookup cadvisor
# Bemerke dass der Host Port 8088 auf intern 8080 umleitet. Wenn du also cadvisor versuchst, nimm den internen Port 8080 und nicht 8088 so wie ich
- targets: ['hetzner-01.MEINEDOMAIN.de:8088']
# oder
- targets: ['LOKALE-VPS-IP-ZB_10.0.0.3:8088']
- job_name: node
static_configs:
- targets: ['10.0.0.3:9100', '10.0.0.4:9100']
Grafana Dashboards
Node Exporter Full
https://grafana.com/grafana/dashboards/1860-node-exporter-full/
Docker Container (cadvisor)
Jitsi Meet
https://grafana.com/grafana/dashboards/12282-jitsi-meet-system/



No Comments