I denne oppgaven skal du sette opp Grafana og koble det til Proxmox - slik at du kan overvåke serverne dine fra et dashboard i nettleseren. Du kommer til å jobbe med ekte verktøy som brukes i produksjonsmiljøer verden over. 🌍
Hva er observability? 🔍
Observability handler om å kunne forstå hva som skjer inni systemene dine, basert på det de sender ut - metrikker, logger og traces. Tenk på det som forskjellen mellom å stirre på en lukket boks og å ha et vindu inn i den.
I praksis betyr det: kan du svare på “hvorfor er serveren treg?” eller “hva skjedde klokken 03:14 i natt?” uten å logge inn på serveren og lete manuelt?
Forutsetninger
Denne oppgaven forutsetter at du har tilgang til Proxmox der du kan opprette en virtuell maskin. Du trenger også grunnleggende kjennskap til Linux-terminalen.
Del 1: Grunnoppsett
Målet med del 1 er å få opp en virtuell maskin med Docker og Portainer, slik at du har et fundament å bygge videre på.
Oppgave
- Opprett en VM i Proxmox med Debian 12
- Installer Docker
- Installer Portainer
Sjekkliste ✅
- Docker kjører (
docker --versiongir output) - Du får tilgang til Portainer i nettleseren (
https://<ip>:9443) - Du kan starte en testcontainer (
docker run hello-world)
Tips for installasjon
Start med å oppdatere systemet:
sudo apt update && sudo apt upgrade -y
Følg deretter de offisielle guidene - de er gode og oppdaterte! Ikke prøv å finne snarveier her; Docker-installasjonen har noen steg som er viktige å gjøre riktig. 🔧
Ressurser
| Hva | Lenke |
|---|---|
| Docker på Debian | Install Docker Engine on Debian |
| Portainer | Install Portainer CE with Docker on Linux |
Del 2: Grafana og InfluxDB
Nå skal vi installere Grafana og InfluxDB som Docker-containere. Grafana er dashboardet vi ser data i, og InfluxDB er databasen som tar imot metrikker fra Proxmox.
Hva er InfluxDB?
InfluxDB er en tidsseriedatabase - den er laget for data med tidsstempel, som CPU-bruk, minneforbruk og nettverkstrafikk. Den trenger ikke mye konfigurasjon - vi bruker den mest som et mellomledd mellom Proxmox og Grafana.
Oppgave
- Installer Grafana som Docker-container
- Installer InfluxDB som Docker-container
- Sjekk at begge kjører og er tilgjengelige i nettleseren
Sjekkliste ✅
- Grafana er tilgjengelig i nettleseren (standard port
3000) - InfluxDB kjører (du kan sjekke med
docker ps)
Docker-tips
Husk å gi containerne faste porter og eventuelt et felles Docker-nettverk, slik at de kan snakke sammen. Se dokumentasjonen for hvilke porter og miljøvariabler du trenger.
Ressurser
| Hva | Lenke |
|---|---|
| Grafana med Docker | Run Grafana via Docker |
| InfluxDB med Docker | Install InfluxDB as a Docker container |
Del 3: Proxmox-metrikker i Grafana
Nå kommer det gøyeste - vi kobler Proxmox til InfluxDB, slik at Proxmox automatisk sender metrikker (CPU, minne, disk, nettverk) til databasen vår. Deretter kobler vi Grafana til InfluxDB for å visualisere det hele. 📊
Oppgave
- Konfigurer Proxmox til å sende metrikker til InfluxDB
- I Proxmox: gå til Datacenter → Metric Server → Add → InfluxDB
- Fyll inn IP-adressen til VM-en din og porten til InfluxDB
- Legg til InfluxDB som datakilde i Grafana
- I Grafana: gå til Connections → Data sources → Add data source → InfluxDB
- Lag et dashboard som viser metrikker fra Proxmox
Sjekkliste ✅
- Proxmox sender metrikker til InfluxDB
- InfluxDB er lagt til som datakilde i Grafana
- Du ser metrikker (f.eks. CPU-bruk) i et Grafana-dashboard
Ferdig dashboard
Du trenger ikke lage alt fra bunnen av! Søk etter “Proxmox” på Grafana Dashboards - det finnes ferdige dashboards du kan importere med et par klikk. Prøv det gjerne først, og tilpass etterpå. 🎨
Ser du ingen data?
- Sjekk at Proxmox-konfigurasjonen peker på riktig IP og port
- Sjekk at InfluxDB-containeren faktisk kjører (
docker ps) - Sjekk at Grafana bruker riktig database-navn og URL i datakilden
- Vent noen minutter - det kan ta litt tid før data begynner å dukke opp
Del 4: Logging med Loki
Nå skal vi sette opp sentralisert logging med Grafana Loki. I stedet for å logge inn på hver server og lese loggfiler manuelt, samler Loki alle logger på ett sted - og du kan søke gjennom dem i Grafana.
Hva er egentlig en logg? 🤔
En logg er rett og slett en tekstlinje som beskriver noe som skjedde, med et tidsstempel. For eksempel:
2026-04-09 14:32:01 INFO Bruker "admin" logget inn
2026-04-09 14:32:05 ERROR Kunne ikke koble til databasen
Når du har hundrevis av slike linjer fra mange containere, trenger du et system som Loki for å holde oversikt!
Oppgave
- Installer Grafana Loki som Docker-container
- Installer Grafana Alloy som Docker-container - Alloy samler logger fra de andre containerne og sender dem til Loki
- Koble Loki som datakilde i Grafana
Sjekkliste ✅
- Loki kjører som en container
- Alloy kjører og er konfigurert til å lese Docker-logger
- Loki er lagt til som datakilde i Grafana
- Du ser logger i Grafana under Drilldown → Logs
Utforsk filtrene!
I Drilldown-visningen har du et sidepanel med forskjellige filtre. Prøv å klikke rundt - du kan filtrere på container, loggnivå og mer. Det er slik du finner nåla i høystakken! 🔎
Ressurser
| Hva | Lenke |
|---|---|
| Loki - Kom i gang | Loki Get Started |
| Grafana Alloy | Send data to Loki (Alloy er anbefalt, men det finnes flere alternativer) |
Refleksjon (leveres)
Svar kort på følgende spørsmål:
- Hva fikk du til?
- Hva var vanskelig?
- Hva ser du i Grafana-dashboardet ditt?
- Hva brukes dette til i virkeligheten?
Til spørsmål 4
Tenk på hva som skjer dersom en nettbutikk plutselig blir treg midt på Black Friday. Hvordan finner utviklerne ut hva som er galt - og helst før kundene merker det? 🛒
Ekstra utfordringer 🏆
Hvis du er ferdig med oppgavene over og vil ha mer:
- Tilpass dashboardet - Legg til flere paneler, endre visninger, og prøv ulike visualiseringstyper i Grafana
- Lag et alerting-oppsett - Kan Grafana sende deg en melding (e-post, Slack, Discord) når noe går galt?
- Koble til det du lærte i Utvikling - Bruk
python-logging-lokitil å sende logger fra en FastAPI-app direkte til Loki (se Logging-oppgavesettet i Utvikling!)
Generelle tips 🧰
- Start enkelt og bygg videre - Ikke prøv å gjøre alt på en gang
- Test én ting om gangen - Sjekk at hvert steg fungerer før du går videre
- Bruk Portainer aktivt - Det gir deg god oversikt over containerne dine
- Les feilmeldingene - Docker-logger er ofte veldig tydelige på hva som er galt
- Bruk
docker logs <container>- For å se hva en container skriver ut