Du har ansvar for å gi innsyn i en liten serverløsning. Den som drifter den, skal kunne undersøke ressursbruk over tid og finne en bestemt webserverhendelse. Sett opp Grafana med Proxmox-metrikker i InfluxDB og containerlogger i Loki, og vis at nye data kommer fram.
Faglig tilhørighet: Overvåking og logging i Driftsstøtte. Serien eier forklaringer og arbeidsinstruksjoner. Denne oppgaven gjelder dine valg, tester og dokumentasjon av den samlede løsningen.
Forutsetninger og støtte
Du trenger en Linux-VM med Docker og Compose. Bruk VM-veiledningen og Docker-veiledningen hvis grunnoppsettet mangler. Compose med et ferdig Nginx-image gir Compose-støtte uten egen Flask-app eller imagebygging. Du kan arbeide i VM-konsollen; SSH er valgfritt. Portainer er et valgfritt administrasjonsverktøy og er ikke et krav.
Start med Level 1 og Level 2 i serien hvis du ikke har gjort dem. De gir deg normaltilstanden til VM-en og en helsesjekk, som du bruker i planen og testene under.
Metrikkdelen krever at noen med riktig tilgang konfigurerer Proxmox-metrikktjeneren. Avklar dette før du begynner. Har du ikke slik tilgang ennå, fortsett med Grafana og loggdelen. Marker metrikkdelen som uferdig i dokumentasjonen; et tomt dashboard regnes ikke som ferdig resultat.
1. Planlegg løsningen
Før du endrer oppsettet, noter i et eget dokument:
- To driftsspørsmål du vil at løsningen skal kunne hjelpe deg å besvare: ett om ressursbruk og ett om en hendelse.
- Normaltilstanden fra Level 1, slik at du kan si hva som er unormalt i grafene.
- Hvor Proxmox, Docker-tjenestene og nettleseren kjører. Tegn dataflyten eller lag en nummerert komponentliste med navngitte forbindelser.
- Hvilke porter og tilganger som trengs mellom leddene, og hvor dataene skal lagres.
- Hvordan du vil kontrollere at både nye metrikker og nye logghendelser kommer fram.
Bruk innføringen og komponentoversikten som støtte. Skill mellom en plan og det du faktisk har kontrollert etterpå.
2. Bygg med veiledningene
- Følg Level 3 for Grafana, InfluxDB og Proxmox-metrikker.
- Følg Level 4 i samme arbeidsmappe for Alloy, Loki og en testcontainer.
- Velg to relevante måleverdier fra én vert eller VM og vis dem i Grafana. Gi panelene navn som oppgir måleverdi og avsender. Forklar enhetene.
- Lag to ulike hendelser i testcontaineren. Bruk for eksempel en vellykket forespørsel og en forespørsel til en side som ikke finnes. Noter tidspunkt og forventet svarstatus før du søker etter dem.
Bruk veiledningene til selve installasjonen. Begrunn valg du gjør i tillegg, og noter avvik fra planen.
3. Kontroller og forklar
Vis nye metrikker i både InfluxDB og Grafana. Pek ut samme avsender og tidsrom. Vis så de to logghendelsene i Docker-loggen og i Grafana, og sammenlign tidspunkt og svarstatus.
Svar muntlig eller skriftlig med løsningen foran deg:
- Hvilket ledd produserer, samler, lagrer og viser hver datatype?
- Hvorfor bruker Grafana interne tjenestenavn, mens nettleseren bruker VM-IP?
- Hvorfor trenger Proxmox skrivetilgang til InfluxDB, mens Grafana trenger lesetilgang?
- Hva ville du undersøkt først dersom en hendelse finnes i Docker-loggen, men mangler i Grafana?
Hvis en kontroll feiler, dokumenter symptom, undersøkelse, endring og ny test. Bruk veiledningens feilsøking og systematisk feilsøking. Ikke lag feil på en delt Proxmox-vert for å demonstrere feilsøking.
Dokumentasjon som leveres
Lever planen, oppdatert systemoversikt og testresultater i et eget redigerbart dokument. Legg ved relevante konfigurasjonsfiler uten .env, passord eller tilgangstegn. Oppgi hvilke versjoner du brukte.
Du kan vise resultatene med en kort demonstrasjon, skjermopptak eller skjermbilder med forklaringer. Alle former skal vise de samme kontrollene. Du kan diktere forklaringene hvis skriving hindrer deg i å dokumentere arbeidet. Et bilde av et ferdig dashboard alene viser ikke at innsamlingen virker.
Oppgaven er ferdig når løsningen viser nye metrikker fra riktig avsender og de to nye logghendelsene, og du kan forklare dataflyten og testene. Hvis metrikktilgangen mangler, er loggdelen delvis arbeid, ikke en fullført innlevering. Leveringssted og frist står i lærerens beskjed.
Valgfri fordypning
- Lag et ekstra panel som besvarer et konkret driftsspørsmål, og begrunn hvorfor visningen passer.
- Legg til en helsesjekk i Uptime Kuma for testwebserveren. Stopp den, og sammenlign når Uptime Kuma melder feil med det du finner i loggene i Grafana.
- Bruk Logging Level 5 i Utvikling til å sende logger fra en Python-applikasjon. Forklar forskjellen mellom direkte sending fra applikasjonen og innsamling med Alloy.
- Undersøk hvilken tilgangsstyring og kryptering løsningen trenger før den kan brukes utenfor øvingsmiljøet.