Dag 1: Installasjon og oppsett av logstash, elasticsearch & kibana

Etter tips fra prosjektleder i UH-sky prosjektet er et av monitoreringsverktøyene jeg har valgt å se på logstash. Et  kraftig  verktøy som brukes til å håndtere hendelser og logger.

logstash

Logstash samler inn logger fra ulike kilder, parser loggene og lagrer de til senere bruk.  Når man installerer logstash kommer det også med et webinterface der man kan søke etter hendelsene i loggfilene og visualisere dette slik man ønsker. Dette for å kunne kartlegge feil, se endringer i systemer over tid, sette sammen data som har påvirkning på herandre osv. Logstash er et åpent kildekodeverktøy og er lisensiert under Apache 2.0.

OpenStack er et komplekst rammeverk som består av mange tjenester. Hver tjeneste har sitt eget bruksområde og sitt eget API. Det er mye informasjon som til daglig vil være spredt rundt om i  systemet. Dette gjør det viktig å samle all loggdata på et samlet sted slik at det blir enklere å hente ut den informasjonen vi trenger for å sørge for at rammeverket til enhver tid fungerer som det skal. Logstash er veldig egnet til dette formålet. I logstash.conf kan vi tagge innkommende logger og videre kan det så kjøres filter basert på disse taggene for å hente ut den spesifikke informasjonen vi vil ha tak i. For eksempel tjenestenavn, diskbruk, antall påloggingsforsøk, brukere, IP adresser,  nettleser osv. Alt av informasjon som finnes i en loggfil kan ekstraheres, lagres og videresendes til en eller annen form for visualisering.

Jeg har til nå arbeidet med en kodebase som jeg forket på github som installerer disse tre verktøyene som nevnt i overskriften. Videre har jeg tenkt å integrere denne mot winch slik at den passer øvrig prosjektstruktur. Under følger et bilde av hvordan visualiseringen av loggdataene ser ut.

kibana4-visualisering

 

 

Dag 0: Oppsummering

Denne bloggposten er en oppsummering av arbeidet som har blitt gjort før forprosjektet i bacheloroppgaven har kommet i gang.

I henhold til problemstillingen skal jeg «kartlegge forskjellige monitoreringsverktøy og teste bruken av disse». Dette er arbeid som jeg har kommet godt i gang og jeg har fått tilegnet med rimelig god oversikt over forskjellige verktøy som eksisterer for bruk i OpenStack per i dag. Videre skal jeg også «belyse fordeler og ulemper med forskjellige overvåkningsverktøy. Hva passer best til vårt bruk? Er noen verktøy bedre for sky enn for tradisjonell bruk?»
Så langt kan jeg se klare fordeler med enkelte verktøy som jeg linket til tidligere. Verktøene er godt vedlikeholdte, populære og de er alle av åpen kildekode. Sistnevnte punkt tillater meg i aller største grad å spesialtilpasse verktøyene til mitt formål. Jeg har muligheten til å få ut den informasjonen som er av relevans for å kunne identifisere og løse problemer som oppstår. I tillegg til at jeg veldig enkelt kan tagge informasjon som ikke er av relevans som unødvendig slik at dette ikke overskygger faktiske problemer som eventuelt kan forekomme.

Dette har gjort jobben med å finne et verktøy som passer problembeskrivelsen noe enklere. Det er ikke alle verktøy en vil ha mulighet til å spesialtilpasse i så stor grad, og disse verktøyene vil naturligvis bli valgt bort.

Jeg også fått tildelt en egen blade server der uttestingen av forskjellige monitoreringsverktøy skal foregå. Blade serveren har betydelige ressurser som er i stand til å simulere et OpenStack miljø i mye større grad enn det arbeidsstasjonen min til nå har hatt mulighet for. Dette gjør testingen av potensielle verktøy enklere i tillegg til at dataene jeg kommer til å teste med blir mest mulig reelle.

 

2015-02-24 13.13.52

2015-02-24 13.13.37

 

Prosjektbeskrivelse bacheloroppgave

Etter høstens utplassering har jeg fått lov til å skrive bacheloroppgaven min her på IT-avdelingen. I denne sammenhengen publiserer jeg prosjektbeskrivelsen i sin helhet som omhandler monitorering av OpenStack ved UiB. Jeg har også laget en ny side på bloggen øverst til høyre som alltid linker til prosjektbeskrivelsen.

Prosjektbeskrivelse bachelorprosjekt.

Til nå har prosjektet kommet i gang og jeg har såvidt begynt å se på forskjellige løsninger i henhold til problemstillingen som kan brukes til å monitorere OpenStack. Videre vil jeg følge fremdriftsplanen i prosjektbeskrivelsen. Noen verktøy jeg så langt har fått kikket på:

  • Icinga (basert på Nagios)
  • Logstash
  • Elasticsearch / Kibana
  • Monasca
  • Ceilometer / graphite

Denne bloggen har tidligere vært brukt i utplasseringsfaget DAT156 og har hatt en bloggpost for hver dag. Bloggen vil nå bli brukt til bachelorprosjektet som varer frem til juni 2015. Og vil følge samme oppsett med en bloggpost for hver dag. Neste blogginnlegg vil begynne på dag 0 som oppsummerer arbeidet med oppgaven så langt.

Dag 32: Dokumentasjon og OpenStack Monasca

Fortsatte på dokumentasjonen av winch og hvordan man kan installere OpenStack ved hjelp av manager noden og Foreman. Forøvrig kan alt av dokumentasjonen rundt prosjektet leses på readthedocs.

I tillegg har jeg fått en konkret oppgave over jul til å kikke på OpenStack monasca. Monasca er et åpent kildekodeverktøy som går under prinsippet monitoring-as-a-service som overvåker OpenStack. Stort verktøy som skal bli interessant å se på og installere. Dette blir også et av monitoreringsverktøyene som jeg skal kikke på i forbindelse med bachelorprosjektet neste år. Her er en liten oversikt over hvordan Monasca integreres med OpenStack:

Monasca-arch-component-diagram

Dag 31: Logstash & Kibana

Benyttet mesteparten av dagen til å kikke på to verktøy som heter Logstash og Kibana. Logstash er et verktøy for å samle og håndtere logg. Den samler inn, parser og lagrer logg og viser dem i et webpanel kalt Kibana. Her kan man ved hjelp av et kraftig søkeverktøy søke opp alt av hendelser som har skjedd på systemet siden loggingen startet. I webpanelet vil det genereres grafer på hvor ofte en hendelse man har søkt på forekommer. Ganske nyttig dersom man skal filtrere en spesifikk feil for å finne ut om feilen er kritisk eller ikke.

Konfigurasjonsmessig kan man gjøre mye med logstash. Det viktigste av konfigurasjonen skjer ved hjelp av en konfigurasjonsfil der en spesifiserer input, hva som skal filtreres og output. Output delen kan være forskjellige tjenester, i dette tilfellet ble output satt til å være elasticsearch. Elasticsearch er logstash’ sin backend for lagring av logg. Senere vil jeg ta for meg installasjonen og oppsett av logstash og kartlegge tjenester som skal overvåkes. I tillegg ønsker jeg også å kikke nærmere på verktøyet Graphite som kan spesifiseres som output.

Dag 30: Monitorering av OpenStack ved hjelp av Icinga

Monitorering er et stort og viktig tema innenfor OpenStack og det finnes mange forskjellige verktøy som kan benyttes. Jeg har så vidt begynt å kikke på Icinga.

Icinga kan vise seg å være et nyttig verktøy for monitorering av OpenStack. Verktøyet er i utgangspunktet basert på Nagios, derfor kan mange av tilleggene som var skrevet for Nagios brukes direkte i Icinga. For eksempel har Stackforge en rekke scripts som kan brukes for å overvåke rene OpenStack tjenester.

Samtidig har utviklerne bak Icinga støtte for å installere verktøyet ved hjelp av puppet moduler, og tilbyr også vagrant bokser til testformål. Siden resten av IaaS plattformen gjør dette per dags dato er Icinga absolutt interessant å ha med videre som et aktuelt verktøy.

Dag 29: En bloggpost om oppetid og maskinvare og sånn…

Dagene til den forrige kontor PC’en min var talte. 8GB just won’t cut it når man skal kjøre sky.  Hver av maskinene i OpenStack rammeverket ble definert med 2GB RAM, og  ville en ha mer enn 4 maskiner ble det fort lite minne igjen. Fikk  dermed ny arbeidsstasjon som hadde 16GB med RAM, og provisjonering av OpenStack maskiner gikk nå unna fort som fy.

Vi husker alle den første dagen og maskinen som lå på hylla. Helt til maskinen ble byttet ut hadde den siste tilgjengelige programvare, den ble aldri startet om, og den fungerte utmerket i det aller fleste tilfeller. Nå skal maskinen få nytt liv hjemme, og forhåpentligvis får den et eget kabinett.

uptime

Dag 28: Bacheloroppgave ved UIB

Dette semesteret har gitt meg god innsikt i OpenStack og de forskjellige komponentene rammeverket består av.  Siden jeg skal skrive bacheloroppgaven min til neste år har jeg i denne sammenhengen fått lov til å skrive den her ved UIB.

Jeg arbeider for tiden med prosjektbeskrivelse til bachelorprosjektet. Innledning, teori og metode er deler som foreløpig er ferdig i prosjektbeskrivelsen, mens det fortsatt gjenstår noen deler på problemstillingen. Jeg ønsker å ha en problemstilling som går ut på monitorering av OpenStack. Dette er et stort og viktig tema der jeg har muligheten til å gå i dybden av komponentene og finne ut hva tjenester som er kritiske å overvåke kontra tjenester som ikke er det.

Jeg vil ha mulighet til å teste ulike monitoreringsverktøy og kartlegge bruken av disse. Det vil være nyttig å finne ut av fordeler og ulemper med enkelte verktøy og gjøre en vurdering på hvilke verktøy som vil være hensiktsmessig å bruke i skysammenheng. I tillegg vil jeg også se på eventuelle etiske spørsmål og personvernspørsmål i forbindelse med overvåkning av OpenStack.

Fullført prosjektbeskrivelse vil bli publisert her på bloggen når den er klar.

 

Dag 27: Oppdatering av «winch» dokumentasjon

Mesteparten av dagen ble benyttet til å lese over dokumentasjonen til «winch».  Jeg har fått i oppgave å oppdatere dokumentasjonen slik at den kan brukes til slik som «winch» er nå.

I dette arbeidet kommer jeg til å bruke et verktøy som heter ReText. Dette er et tekstredigeringsverktøy som gir direkte preview i programmet for hvordan teksten du redigerer vil bli seende ut. I motsening til andre editorer der en er tvunget av å måtte åpne siden i en nettleser for å se hvordan den ser  ut.

Dokumentasjonen finnes på http://winch.readthedocs.org/, flere oppdateringer vil skje de påfølgende ukene.