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:

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:

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.

Illustrasjon av et Kubernetes cluster med master- og worker-noder
Kubernetes organiserer containere på tvers av flere noder i et cluster, med avanserte funksjoner for selvhelbredelse og skalering.

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.

  1. 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
  2. Start Prometheus med din konfigurasjonsfil:
    ./prometheus --config.file=prometheus.yml
  3. 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
  4. Å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.

Orkestrering, Monitorering og Logging i DevSecOps

I DevSecOps integreres alle disse elementene for å skape en helhetlig arbeidsflyt:

Denne integrasjonen gir en robust og automatisert leveranseprosess som minimerer risiko og sikrer at alle endringer er testet, versjonskontrollert og overvåket.

Lenker og kilder