====== Grafana ======
Grafanu mám nainstalovanou pomocí dockeru a v Apache konfiguraci jsem nastavil reverzní proxy včetně řešení problému s websockety. V rámci nastavení může pomoct [[it:iot:influxdb-grafana|konfigurace Grafany s InfluxDB.]]
===== Konfigurace docker-compose =====
grafana:
container_name: grafana
image: grafana/grafana
restart: unless-stopped
user: "0"
ports:
- "127.0.0.1:3000:3000"
environment:
- TZ=Etc/UTC
- GF_PATHS_DATA=/var/lib/grafana
- GF_PATHS_LOGS=/var/log/grafana
- GF_SERVER_DOMAIN=mojedomena.live
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana/
volumes:
- ./volumes/grafana/data:/var/lib/grafana
- ./volumes/grafana/log:/var/log/grafana
healthcheck:
test: ["CMD", "wget", "-O", "/dev/null", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
V kódu jsou důležité tyto řádky, které jsou příprava pro reverzní proxy:
- GF_SERVER_DOMAIN=mojedomena.live
- GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana/
Pro povolení anonymního přihlášení pro čtení a možnosti vkládání grafu z grafany pro čtení do jiných systémů (například UI NodeRED) je potřeba ještě přidat do environment následující řádky:
- GF_SECURITY_ALLOW_EMBEDDING=true
- GF_AUTH_ANONYMOUS_ENABLED=true
Když jsem v Grafaně změnil organizaci, musel jsem provést úpravu i v docker-compose.yml, aby anonymní uživatel mohl zobrazit data organizace. Bez úpravy vyžaduje grafana přihlášení.
- GF_AUTH_ANONYMOUS_ORG_NAME=Doma
- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
===== konfigurace Apache =====
ProxyPreserveHost On
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-Host" expr=%{HTTP_HOST}
ProxyPass /grafana/ http://localhost:3000/
ProxyPassReverse /grafana/ http://localhost:3000/
# Povolení proxy pro WebSockets
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule /grafana/(.*) "ws://localhost:3000/$1" [P,L]
# Povolení proxy pro HTTPS WebSockets
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule /grafana/(.*) "wss://localhost:3000/$1" [P,L]
===== Další zdroje =====
https://geekflare.com/prometheus-grafana-setup-for-linux/