Orkestrering, Overvåkning og Logging
Hvorfor orkestrering og monitorering?
I moderne IT-miljøer er applikasjoner ofte distribuert over mange containere eller virtuelle maskiner. For å sikre stabil drift, skalerbarhet og rask feilretting, er det nødvendig med:
- Orkestrering: Automatisert styring og koordinering av containerbaserte applikasjoner (f.eks. med Kubernetes) som sikrer at riktig antall kopier kjører, og at systemet automatisk håndterer feil.
- Monitorering: Innsamling og analyse av ytelsesdata (CPU, minne, responstider) for å oppdage avvik og sikkerhetshendelser i sanntid.
- Logging: Sentralisert lagring av logger for feilsøking, revisjon og hendelsesanalyse.
Disse verktøyene danner grunnlaget for en robust DevSecOps-prosess der sikkerhet og drift overvåkes kontinuerlig.
Orkestrering av containere
Orkestrering er prosessen der verktøy som Kubernetes koordinerer og administrerer kjøringen av containere over et cluster av maskiner. Et cluster består av en master (kontrollplan) og flere worker-noder.
I et Kubernetes-cluster sørger systemet for at:
- Applikasjonene deployeres og skaleres automatisk.
- Feil oppdages og containere restarter automatisk.
- Ressursene utnyttes optimalt, og trafikk dirigeres riktig.
Selv om Docker Swarm er et alternativ for container-orkestrering – enklere og integrert i Docker – gir Kubernetes et mer avansert sett med funksjoner for store og komplekse miljøer.

Installer Prometheus og Grafana på Ubuntu
Prometheus og Grafana er kraftige verktøy for monitorering og visualisering. Prometheus samler inn metrikk ved å "scrape" data fra ulike kilder, mens Grafana visualiserer disse dataene i dashboards.
-
Last ned og pakk ut Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.x/prometheus-2.x.linux-amd64.tar.gz tar xvfz prometheus-2.x.linux-amd64.tar.gz cd prometheus-2.x.linux-amd64
-
Start Prometheus med din konfigurasjonsfil:
./prometheus --config.file=prometheus.yml
-
Installer Grafana:
sudo apt-get install -y apt-transport-https wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list sudo apt-get update && sudo apt-get install grafana sudo systemctl enable grafana-server && sudo systemctl start grafana-server
-
Åpne Grafana:
Naviger til
http://<server-ip>:3000
i nettleseren og konfigurer Grafana med Prometheus som datasource.
Konfigurering av Prometheus
Prometheus bruker en YAML-fil for å definere hvilke targets som skal overvåkes. For eksempel:
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'ubuntu-node'
static_configs:
- targets: ['localhost:9100']
I dette eksempelet blir node_exporter brukt til å samle CPU- og minne-metrikker på port 9100
.
Logging og Hendelseshåndtering
Logging er avgjørende for å forstå hva som skjer i systemet og for å feilsøke problemer. Ved å samle logger fra alle noder sentralt kan du raskt identifisere og reagere på hendelser.
- ELK Stack: Elasticsearch, Logstash og Kibana brukes for å samle, analysere og visualisere logger. Dette gjør det enklere å søke gjennom store mengder data.
- Alerts: Prometheus Alertmanager eller Kibana Watcher kan konfigureres for å sende varsler ved unormale hendelser, slik som mistenkelig trafikk eller systemfeil.
- Hendelseshåndtering: Ha en klar plan for hvordan du skal respondere på varsler – for eksempel ved å kjøre en automatisert playbook som isolerer en kompromittert node og varsler teamet.
Orkestrering, Monitorering og Logging i DevSecOps
I DevSecOps integreres alle disse elementene for å skape en helhetlig arbeidsflyt:
- Orkestrering: Kubernetes (eller Docker Swarm) styrer deploy og skalering av containere, og sikrer at applikasjonen alltid kjører som forventet.
- Infrastructure as Code (IaC): Terraform og Ansible sørger for at infrastrukturen deployeres på en repeterbar og sikker måte.
- CI/CD: Pipelines bygger, tester og deployerer både kode og infrastruktur, med sikkerhetsskanning (SAST/DAST) integrert.
- Monitorering og Logging: Prometheus, Grafana og ELK gir kontinuerlig oversikt over systemytelse og sikkerhet, slik at eventuelle hendelser raskt kan identifiseres og håndteres.
Denne integrasjonen gir en robust og automatisert leveranseprosess som minimerer risiko og sikrer at alle endringer er testet, versjonskontrollert og overvåket.