Vanligvis må vi lære å gå før vi løper, men i dag starter vi rett på med løpinga! Dette er guiden for deg som vil teste Splunk for første gang eller er nysgjerrig på hvordan du kan visualisere og analysere data i Splunk. I denne guiden bruker jeg egne treningsdata fra Strava bare for å vise hvor enkelt du kommer i gang.
Forberedelser
Før du starter, er det et par ting som må være på plass:
- En fungerende Splunk-installasjon
- En Strava-konto med tilgang til Strava Developer-portalen for å opprette en API-applikasjon
Installer Splunk med Docker
Hvis du ikke allerede har Splunk installert, kan du enkelt sette opp en instans ved hjelp av Docker. Følg disse stegene for å komme i gang:
- Sørg for at du har Docker installert på systemet ditt.
- Åpne en terminal og kjør følgende kommando for å laste ned nyeste Splunk Docker image:
docker pull splunk/splunk:latest
- Kjør det nedlastede Docker-imaget for å starte en Splunk-container:
docker run -d -p 8000:8000 -e SPLUNK_START_ARGS='--accept-license' -e SPLUNK_PASSWORD='<password>' splunk/splunk:latest
SPLUNK_PASSWORD='<password>’ bestemmer innloggingspassordet for admin-brukeren.
- Du kan verifisere at containeren er oppe og kjører ved å sjekke containerens status. Bruk ID-en som ble oppgitt i forrige output og kjør kommandoen:
docker ps -a -f id=<container_id>
- Når containeren er oppe og kjører, åpne en nettleser og gå til http://localhost:8000 for å nå Splunk UI. Logg inn med brukernavn admin og passordet du satte i steg 3.
Opprett en Strava API-applikasjon
For å hente treningsdata fra Strava, trenger du en API-nøkkel. Via Stravas Developer-portal kan du opprette en API-applikasjon som Splunk kan kommunisere med for å få tilgang til API-et:
- Logg inn på Strava Developer.
- Klikk på “Create & Manage Your App”.
- Fyll inn nødvendig informasjon og opprett applikasjonen din. Her kan du legge inn http://localhost:8000 som website og localhost som Authorization Callback Domain. Du kan også legge til Splunk-logoen, for eksempel, om du ønsker.
- Etter opprettelsen vil du få en Client ID og en Client Secret som du skal bruke senere. Ta vare på disse.
Med Splunk oppe og Strava-API-nøkkelen på plass, er du nå klar for å begynne å hente inn treningsdata!
Konfigurer Splunk for innhenting av data ved bruk av Strava for Splunk
Strava for Splunk (TA-strava-for-splunk) er en app som lar deg integrere og analysere treningsdata fra Strava i Splunk. Appen bruker Stravas API til å hente dataene og inneholder den konfigurasjonen du trenger for å innhente og strukturere datene:
Autentisering: Brukere må autentisere seg med Strava ved å gi Splunk-appen tillatelse til å hente Strava-dataene deres. Dette gjøres gjennom OAuth2, en trygg og standardisert metode for autentisering.
API-forespørsel: Når autentiseringen er fullført, kan appen sende en forespørsel til Stravas API for å hente data. Dette inkluderer informasjon om aktiviteter, ruter, treningsstatistikk og annet.
Indeksering: Dataene som hentes fra Strava, blir sendt til Splunk og lagret i en egendefinert indeks som du oppretter. Dette gjør det enkelt å skille treningsdata fra andre datakilder i Splunk.
Dataformatering: Strava-dataene kommer i JSON-format, og appen trekker ut viktige felter under sourcetypen strava:activities. Dette gjør dataene søkbare og klare for videre analyse.
Visualisering: Appen kommer med et ferdig oppsatt dashboard som gir deg rask innsikt i treningsaktivitetene dine. Her kan du se hvordan søk er satt opp, og du kan enkelt bygge videre på dette for mer avanserte analyser.
Du kan konfigurere Splunk for mottak av data fra selv, men ferdige Splunk-apper forenkler prosessen og gir raskere implementering. De kommer ofte med ferdig konfigurasjon for strukturering av dataene, slik at du kan gå rett i gang med søk og analyse uten å måtte mestre hele plattformen fra starten av.
1) Installer Strava for Splunk
Appen er arkivert på Splunkbase, men du kan fortsatt laste den ned: Strava for Splunk | Splunkbase. Fra Splunk Web kan du gå til Apps -> Manage apps -> Install from file og laste opp tgz-fila. Appen skal nå vises under Apps.
2) Opprett indeks
Det er nyttig med en egen indeks for treningsdataene, slik at du kan lettere organisere, administrere og søke i dataene.
Du kan enkelt opprette en indeks i Splunk UI via Settings -> Indexes -> New Index. Du kan kalle indeksen “strava”, for eksempel. Alternativt kan du opprette en indeks fra CLI. Da navigerer du til $SPLUNK_HOME/bin/ og kjører:
splunk add index <indeksnavn>
3) Konfigurer Splunk-app for mottak av data
Gå til Configuration inne i appen og legg inn autentiseringsdetaljer. Dette er Client ID og Client Secret som du fikk ved opprettelse av Strava-API-appen.
Deretter går du til inputs og oppretter en ny Strava Activity. De forskjellige feltene som må fylles inn er beskrevet i appen. Hvis du ønsker en grundigere guide på dette, finnes dokumentasjon her: Configuration – Strava Add-on for Splunk.
4) Verifiser at data kommer inn og er formattert riktig
Verifiser at data kommer inn ved å gjøre et søk mot indeksen du opprettet. Gå til search og kjør følgende søk:
index=<indeksnavn> sourcetype="strava:activities"
Velg All time og kjør søket i Smart Mode. Du skal nå få opp ett event i JSON-format for hver Strava-aktivitet du har liggende. På venstresiden ser du alle feltene som er trekt ut for dataene.
Feilsøking:
Hvis du ikke får inn noen logger, kan du gå til Configuration -> Logging, og sette på DEBUG-mode og søke i internloggene.
Fra Splunk:
index=_internal sourcetype="tastravaforsplunk:log"
Fra terminal:
$SPLUNK_HOME/var/log/splunk/ta_strava_for_splunk_strava_api.log
Se mer om feilsøking her: Troubleshooting – Strava Add-on for Splunk.
Visualiser og analyser data i Splunk
Nå som dataene er i Splunk, kan du analysere og visualisere treningsøktene dine. Mulighetene er mange: du kan enkelt følge fremgangen din, sammenligne ulike treningsformer i skreddersydde dashboards, lage detaljerte rapporter, eller sette opp alarmer og prediksjoner ved hjelp av maskinlæring. Her er det er opp til deg hvordan du vil bruke innsikten.
1) Ta inspirasjon i eksisterende dashoards
Som nevnt kommer appen med et eksempel-dashboard du kan ta utgangspunkt i for å komme i gang. Hvis du kloner dette før du begynner, så har du originalen fortsatt tilgjengelig.
Oppdater macro: Åpne dashboardet «Sample Dashboard». Hvis du åpner et av panelene vil du se as at de er basert på macroen `strava_index`. Denne er definert som index=strava, så dersom du har valgt et annet navn på indeksen din enn «strava», må du oppdatere macroen for at panelene skal vise data.
Gå til Settings -> Advanced search -> Search macros og åpne macroen “strava_index”. Legg inn riktig indeksnavn.
Lag en klone: Klon «Sample Dashboard» enten slik det er, som Splunks tradisjonelle dashboard-type, eller klon det i Dashboard Studio, hvor du får mer frihet og kan lage mer fancy dashboards. Gi det et passende navn og slett, klon og lag nye paneler som du ønsker. Bli kjent med dataene og feltene du kan filtrere på og søke i.
Skal du bruke Dashboard Studio, kan du hente inspirasjon fra appen «Splunk Dashboard Studio». Denne finner du under Apps -> Manage apps.
2) Oppdater navigeringsmeny
Oppdater navigeringsmenyen slik at du appen inkluderer de visningene du ønsker. Dette gjør du ved å gå til Settings -> User interface -> Navigation menus, filtrer på riktig app og åpne default. Her kan du for eksempel legge inn dashboards, faner eller linke til søk og dashboards. I konfigurasjonen under har jeg fjernet eksempel-dashboardet og lagt til mine egne dashboards, samt en lenke til alle dashboards.
1 <nav> 2 <view name="workouts_overview" default="true" /> 3 <view name="running_workouts" /> 4 <view name="configuration" /> 5 <view name="inputs" /> 6 <view name="dashboards" /> 7 <view name="search" /> 8 </nav>
Merk at view name er navnet på dashboard-fila og ikke tittelen til dashboardet.
2) Eksempler: søk, paneler og alarmer
Tell antall treningsøkter per type aktivitet:
index=strava sourcetype="strava:activities" | stats count by type | rename type as "Aktivitet", count as "Antall økter"
Du kan velge å lagre denne tabellen som en rapport, alarm eller som et panel i et dashboard. Du kan også gå til Visualization og velge et passende diagram, for eksempel “Pie Chart”:
Visualiser hvordan distanse varierer over tid:
index=strava sourcetype="strava:activities" type=Run | eval distance = round(distance / 1000,1) | timechart span=7d@w1 sum(distance) by type
Dette søket summerer ukentlig distanse du har løpt i kilometer. Visualiser dataen i et “Area Chart”, for eksempel:
Lag en alarm for når det er på tide å bytte løpesko:
NCBI anbefaler at man bytter joggesko ved hver 500 til 750 kilometer. Hvis du har registert hvilke sko du bruker i Strava, kan du lage en alarm på når det på tide å kjøpe nye sko:
index=strava sourcetype="strava:activities" gear_id=<sko_id> | stats sum(distance) as distance | where distance>5000
Trykk Save as, velg Alert og Trigger alert when Number of results is greater than 0. Skeduler alarmen til å kjøre en gang i uka, for eksempel.
Marker hvor i verden du har registert en treningsøkt
index=strava sourcetype="strava:activities" | spath start_latlng{0} | spath start_latlng{1} | rename start_latlng{0} as lat, start_latlng{1} as lon | geostats count latfield=lat longfield=lon
3) Eksempler: dashboards
I “Mitt treningsår” har jeg tatt inspirasjon på layout fra et Workforce Readiness-dashboard jeg fant i Splunk Dashboard Studio-appen. Her har jeg lagt inn statistikk for treningsøkter denne uka og årlig statistikk for noen utvalgte aktiviteter. Jeg har også lagt inn en dropdown-meny som bruker tokens til å filtere på årstall.
I “Min løping” har jeg i tillegg lagt inn et kart med markører som viser hvor jeg har løpt i verden, samt en oversikt over raskeste tider for et utvalg distanser. Nederst ligger også liste med alle løpeøkter.
Nå er alt klart for ny treningsmotivasjon! Ta deg en tur ut i høstmørket og se hvordan dashboardene dine fylles med ferske data. Neste steg? Du kan utforske Splunks kraftige visualiseringsverktøy videre, sette opp alarmer for nye personlige rekorder, eller dykke dypere inn i treningsdataene dine. Kanskje vil du også teste Splunks maskinlæringsalgoritmer for å forutsi dine neste prestasjoner? Mulighetene er mange, og du er bare i startgropen!