Dag 15-19: Metrics gjennom graphite og statsd

Har gjennom hele uken eksperimentert med å lage metrics utav loggene som kan sendes fra logstash til Graphite for grafing. Det som kan grafes så langt er tilgjengelige ressurser på alle compute nodene i OpenStack. Tanken er at disse grafene skal kunne eksponeres ut mot brukerne slik at en kan se hvor mye ressurser det er tilgjengelig til enhver tid på hver av nodene.

I tillegg har jeg laget noen python scripts som skal brukes til å hente ut spesifikke instansdata som også skal kunne grafes. Videre skal jeg også se på muligheten til å hente ut data fra Ceilometer.

Dag 13: Grafing av disk, cpu og minnebruk

Metrics til graphite blir sendt på et spesifikt format. Dette er standard uansett hva system man bruker for å lage metrics.  Her spesifiseres først navnet, deretter verdien og til slutt datoen. Eksempelvis:

echo "test.bash.stats 42 `date +%s`" | nc graphite.example.com 2003

Dette vil ikke gi et stort utslag på en graf, men når man sender data over tid vil man på sikt kunne se at det gir utslag. Siden logstash konfigurasjonen henter informasjon om disk, cpu- og minnebruk fra loggfilene kan dette sendes videre for visualisering. Bildet under er visualiserte data basert på denne konfigurasjonen.

metrics-grafer

Bildet viser tre bokser som visualiserer tilgjengelige ressurser. Diskboksen er også konfigurert slik at den endrer farge basert på hvor mye diskplass som er tilgjengelig på disken. Dette er en god begynnelse! I morgen og ut i neste uke kommer jeg til å fortsette med datainnsamling og filtere i Logstash. Følg med!

Dag 11: Generering av testgrafer

Noe mer konfigurasjon måtte til for at den nye grafnoden skulle fungere som den skulle. Provisjonering av noden måtte kjøres to ganger, i tillegg til at en rekke småting måtte konfigureres manuelt. Med alle disse hindringene til side var det tid for å generere noen grafer.

Ved hjelp av et script som heter ceilometer publisher har jeg hatt mulighet til å pushe enkelte data direkte fra ceilometer og inn til Graphite. Data som cpu- og minnebruk har vært de to mest aktuelle, og ved å opprette instanser i OpenStack har jeg kunne sett at grafene utvikler seg over tid. Dette gir et interessant overblikk over tilgjengelige ressurser på systemet og hjelper oss å se data i sammenheng. Samtidig som det også tilbyr systemadministratorer proaktiv overvåkning ved å kunne forutse og hindre problemer før de oppstår.

Når man skal sette opp grafer i Graphite/Grafana baserer man seg på såkalte metrics. Hvis man for eksempel ønsker å se på CPU bruk på en maskin het metric’en i vårt tilfelle: carbon.agents.graphite_winch_local-a.cpuUsage. Denne visualiseres slik:

cpu-bruk

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.