Dag 10: Oppsett av Graphite og Grafana

Logstash, Kibana og Elasticsearch kjører per i dag på en egen node i winch. For at lasten ikke skal bli for stor på denne virtuelle noden hadde jeg i første omgang tenkt å lage en ny node for grafvirtualisering. Grafnoden skal kjøre verktøyet Graphite, som støtter metrics som kommer fra Logstash. I tillegg skal vi benytte oss av en annen frontend enn det Graphite tilbyr og derfor skal også verktøyet Grafana installeres.

Jeg benytter meg av puppetmodulene til echocat siden disse er godt vedlikeholdte og konfigurasjonen av puppetkoden var rett fram. Det meste gikk greit for seg og vagrantboksen har en oppstart- og installasjonstid på mellom 3 og 4 minutter.  For de som er interessert i å se litt på koden og øvrige detaljer rundt oppsettet av vagrantboksen kan ta en kikk på winch repoet.

provision-graphite

Dag 3: Submoduler i git og installasjon på blade server

I forrige uke fikk jeg problemer med å legge til enkelte puppetmoduler til monitoreringsbranchen på github. Etter en del feilsøking endte jeg  opp med å legge disse til som submoduler. Fordelen med submoduler er at man slipper å måtte oppdatere modulene i sitt eget repository. Ved å kjøre kommandoen nedenfor vil modulen lastes ned, og det vil ligge en sti til det remote repositoriet i .gitmodules.

git submodule add https://github.com/elastic/puppet-logstash

I tillegg til submodulene er det også blitt lagt til en egen mappe for alle konfigurasjonsfiler og patterns til logstash. Rsyslog.conf ligger også her, men planen videre er å legge til rsyslog puppetmodulen slik at det aller meste kan styres gjennom puppet. Jeg begynte også å installere winch på blade serveren jeg har fått tildelt. Denne serveren har 32GB med minne og jeg har derfor mulighet til å ha kjørende en god del instanser som jeg skal teste med. Mer om dette i morgen!

Dag 2: Integrering av logstash i «winch»

Under utplasseringen var jeg med på å lage et automatisk oppsett som installerte OpenStack og tilhørende komponenter. Dette ble gjort ufifra et prosjekt på github som het winch. Som jeg tok opp i min forrige bloggpost ønsker jeg å samle alle OpenStack loggene på en og samme maskin. Derfor her jeg laget en ny branch i winch som inkluderer en monitoreringsnode. Denne noden vil være ansvarlig for alt som skjer med tanke på logginnsamling, parsing og visualisering av informasjon. Da er det viktig at verktøyene som skal gjøre dette blir installert på samme måte som tidligere, ved hjelp av puppetmoduler.  Da kan vi sette en ønsket tilstand og si at den nye noden skal være en monitoreringsnode.

Arbeidet med å puppetifisere alle verktøyene er kommet godt i gang. Har laget en manifest fil for logstash som kan sees her. Denne vil benytte seg av puppet modulene lokalisert i puppet/modules og installere verktøyene med konfigurasjonsfiler spesifisert i manifestet. Det som gjenstår for at integreringen skal være komplett er å legge til de puppetmodulene jeg trenger. Disse er submoduler og blir derfor lagt til annerledes. Mer om dette i neste bloggpost.

Dag 17: Installasjon av compute og controller node ved hjelp av Foreman

Vi fortsatte med feilsøkingen fra fredag om hvorfor puppet modulene fra «winch» ikke ville fungere når vi provisjonerte med Foreman. De hadde virket før og det ga lite mening at de ikke skulle virke nå som Foreman var med i bildet.

Det viste seg at feilen lå spredt i flere konfigurasjonsfiler, og dette gjorde at puppet modulene feilet på maskinene som Foreman installerte. Nå har det blitt gjort endringer i kickstart filene til Foreman for å gjøre at dette problemet ikke vil oppstå igjen. Nå var det mulig å installere både controller og compute noder ved hjelp av Foreman der alle puppet modulene blir installert.

Til nå har vi brukt vagrant og virtualbox for å lage og provisjonere maskiner. Vagrant legger opp et eth0 interface med en NAT adresse, men dette kludrer mye til det nettverksoppsettet vi ønsker. Derfor er neste steg nå å lage install script som kan lage og sette opp virtualbox maskiner for å unngå at eth0 inferfacet blir bundet opp til denne NAT adressen. Mer om dette på fredag.

Dag 11: Videre oppdatering av «winch» repository

Siden «winch» ble laget for å støtte en eldre versjon av OpenStack ble det nødvendig å oppdatere flere av puppet modulene til å nyeste versjon. Uten dette feilet installasjonen momentant og det var ikke mulig å provisjonere opp maskiner med puppet når modulene var utdaterte. Etter at disse ble oppdatert gikk installasjonen overraskende nok gjennom. Vi klarte å sette opp en controller node og en compute node.

Vi har tidligere holdt på med packstack som kjører alle OpenStack komponentene på en og samme node. I et produksjonsmiljø vil vi heller separere de ulike komponentene. Dette er av flere grunner; hver maskin skal bare kunne gjøre det de er satt til, det vil lette trykket i forhold til bare en og samme node, og det er mer oversiktlig og skalerbart. Alle de forskjellige komponentene ligger under sine respektive nett, her er en oversikt over hvordan det ser ut:

RolesProfiles

Etter at controller og compute noden kom opp kjørte vi de forskjellige testene som fulgte med winch. Disse testene verifiserer funksjonalitet og setter samtidig opp nettverk, rutere, og instanser.  Nå har vi en kjørende instans og selve oppsettet ser ut til å fungere greit. Opplever nå at instansen ikke kan nås fra controller noden, så dette er noe vi må feilsøke videre på mandag.