Overvåking - The next generation - Sluttrapport

Forfattere:
Mustafa Ocak (USIT, University of Oslo)
Carl Morten Boger (USIT, University of Oslo)
Rafael Martinez Guerrero (USIT, University of Oslo)
Dato: 2014-09-30

Introduksjon

Aktiviteten Overvåking - The next generation ble startet våren 2014 av Gruppe for IT driftstøtte (GID) ved USIT for å prøve å forbedre overvåking av de IT systemer som USIT har ansvar for.

Vi sendte informasjon om denne aktiviteten til alle driftsgrupper ved USIT, web-gruppen og VD og spurte dem hva de bruker for å overvåke de systemene de drifter, og hva som fungerer og ikke fungerer med dagens løsning.

Vi fikk gode tilbakemeldinger og endel ønsker for et nytt overvåkingssystem, oppsumert her:

  • Muligheter for å definere avhengigheter for å unngå unødvendige alarmer og identifisere rotårsak til et problem.
  • Muligheter til å vise tilpasset og filtrert informasjon.
  • SLA håndtering og IT tjenester oversikt
  • Ende til ende overvåking av en tjeneste.

I tillegg hadde vi disse kravene til et nytt system:

  • Muligheter for distribuert overvåking og overvåking av lukkede miljøer via overvåkingsproxyer, e.g. TSD.
  • Muligheter for automatisering av flest mulige aspekter av konfigurasjonen.
  • Tilgangskontroll for delegering av konfigurasjon til driftsgruppene.

Vi brukte litt tid på å undersøke de forskjellige overvåkingsløsninger som finnes. Det finnes mange kandidater med store forskjeller når det gjelder kvalitet og funksjonalitet. Noen av de som ble sjekket er:

  • Pandora FMS
  • SCOM
  • Icinga
  • Nagios
  • Shinken
  • Ganglia
  • Sensu
  • Zabbix
  • Zenoss core
  • PRTG

De tre kandidatene som vi bestemte oss å jobbe videre med og som har blitt testet er:

  • Sensu
  • Icinga
  • Zabbix

Vi har laget rapporter for disse produktene med detaljert informasjon om funn gjort under testing og de er tilgjengelige her:

Under testing har vi funnet ut at Sensu ikke kan levere all funksjonalitet som var et absolutt krav, e.g. tilgangskontroll og overvåkingsproxy for TSD. Derfor konsentrerte vi oss om Icinga og Zabbix i resten av prosessen.

Vi har kommet til den konklusjonen at både Icinga og Zabbix kan levere en mye bedre overvåkingsløsning enn den vi har per i dag. Det finnes uansett noen punkter som er ganske viktige og vi har konsentret oss om dem.

Det finnes noen punkter hvor man kan få samme resultat selv om disse to produkter implementerer og leverer de på forskjellige måter. På andre punkter er en av produktene klart bedre enn den andre. Vi skal prøve å oppsumere de punktene som har blitt avgjørende i valg mellom de to kandidatene.

Konfigurasjon

Zabbix

Konfigurasjonen av Zabbix er lagret i Zabbix sentral databasen. Endringer i konfigurasjonen kan utføres enten via webkonsollen eller et JSON-RPC API.

Man har muligheter til å eksportere/importere konfigurasjonen til/fra JSON/XML filer. Disse filer kan man administrere via et versjonskontroll system (GIT, SVN) hvis man ønsker det.

Man har også muligheter til å bruke auto-discovery regler som kan brukes for å automatisere noen aspekter av konfigurasjonen.

Icinga

Konfigurasjonen av Icinga er lagret i konfigurasjonsfiler lagret på disk. Endringer i konfigurasjonen kan utføres med å editere disse filer og kjøre en reload av serveren. Webkonsollen kan ikke brukes for å oppdatere konfigurasjonen.

Lconf er en addon til Icinga-web som kan brukes for å lagre konfigurasjonsdata i et LDAP tre.

Disse filer kan man administrere via et versjonskontroll system (GIT, SVN) hvis man ønsker det.

Icinga-web har et API som kan brukes for å hente overvåkingsinformasjon i XML/JSON format. Det kan ikke brukes for å oppdatere Icinga konfigurasjonen.

Tilganskontroll

Zabbix

Tilgangskontroll informasjonen er lagret i Zabbix sentral databasen.

Autoriseringsdata for å aksesere overvåkingsinformasjon og for å oppdatere konfigurasjonen er felles. LDAP, Zabbix databasen eller HTTP-auth/Kerberos kan brukes som autentiseringskilde for både webkonsollen og API-et.

Icinga

Icinga har kun tilgangskontroll for webkonsollen. LDAP, Icinga databasen eller HTTP-auth/Kerberos kan brukes som autentiseringskilde for webkonsollen.

Skal man implementere tilganskontroll av konfigurasjonsfiler må dette implementeres på filsystem nivå.

Triggere / alarmer

Zabbix

Zabbix gjør et klart skille mellom innhenting av data og prosessering av den. Dette, og at data som hentes inn lagres sentralt i en database for prosessering, gjør at man kan definere veldig kraftige triggere.

Disse triggere kan bruke aggregeringsdata, data fra forskjellige kilder eller sammenligne data for en tidsperiode for å levere svært nøyaktige alarmer.

Icinga

Icinga bruker Nagios modellen og henter og prossesere data på klientsiden.

Det finnes ikke noe enkel måte å bruke aggregeringsdata, data fra forskjellige kilder eller sammeligne data for en tidsperiode for å levere alarmer. Man kunne implementere aggregeringslogikk i plugins.

Icinga er 100% kompatibel med Nagios plugins.

Ende til ende overvåking

Zabbix

Man kan implementere dette med "IT-services" funksjonalitet i Zabbix og Websjekker med simulerte handlinger i web.

I tillegg kan man bruke hostgrupper for å gruppere alle komponentene som leverer en tjeneste og få en bedre oversikt over dette.

Icinga

Man kan implementere dette med "Business process" addon i Icinga og Websjekker med simulerte handlinger kan utføres ved hjelp av forskjellige plugins.

Sikkerhet

Zabbix

Den støtter ikke per default SSL kryptering av trafikken mellom Zabbix komponenter. Man kan ta i bruk eksterne metoder hvis man vil implementere kryptering mellom komponentene. Zabbix anbefaler å bruke tunnelering via SSH eller Stunnel hvis man trenger å implementere kryptering.

Tilgang til webkonsollen og API-et støtter SSL kryptering via webserveren.

Zabbix bruker ikke noen form for autentisering mellom komponentene.

Man kan definere hvilke host som har lov til å koble seg til en server/proxy eller agent. I tillegg må hoster og proxyer være definert i den sentrale Zabbix serveren for at de skal kunne levere informasjon.

Icinga

Den støtter SSL kryptering av trafikken mellom komponentene og autentisering via sertifikater.

Kostnadsoversikt

Det er en del aktiviteter som må utføres for at Zabbix eller Icinga skal kunne brukes i produksjon. Disse aktivitetene har en kostnad:

  • Finne ut hvordan man skal organisere overvåkingsdata i hostsgrupper, brukergrupper og tjenestegrupper. Hvem skal ha RW/RO tilgang til hva? (1 uke).

  • Integrasjon med Cerebrum for å synkronisere brukergruppe informasjon mellom Cerebrum og overvåkingssystemet.

    Vi kan bruke API-et i Cerebrum for å hente informasjon om gruppemedlemskap.

    Med Zabbix må vi bruke Zabbix API-et for å oppdatere gruppe informasjon i databasen (1 uke)

    Med Icinga må vi aksesere databasen direkte for å oppdatere gruppe informasjon direkte i tabellene som innholder denne informasjonen (1 uke). Tilgang til filsystemet burde bli oppdatert automatisk via filgrupper da denne informasjonen hentes allerede fra Cerebrum.

  • Integrasjon mellom Nivlheim og overvåkingssystem. Nivlheim skal være autoritativ kilde for registrering/sletting av maskiner som overvåkes.

    Vi kan bruke API-et i Nivlheim for å hente informasjon om maskiner som skal overvåkes.

    Med Zabbix må vi bruke Zabbix API-et for å oppdatere denne informasjonen (1 uke).

    Med Icinga må vi generere konfigurasjonsfiler på filnivå (1 uke).

  • Automatisering av sjekker og alarmer på de maskiner som er registrert i overvåkingssystemet.

    Med Zabbix kan man definere et default sett med sjekker basert på OS som maskinen kjører. For overvåking av tjenester som kjøres på maskinen kan man bruke auto-discovery funksjonalitet for å aktivere de malene som kan brukes per tjeneste (2 uker).

    Med Icinga kan man definere et default sett med sjekker basert på OS som maskinen kjører og cfengine roller (2 uker).

    Registrering av nettverksutstyr, printere, osv kan også automatiseres men man må diskutere hvordan dette burde håndteres.

  • Varslingskonfigurasjon, tidsperioder, sms-gateway integrasjon, osv. (1 uke)

  • Integrasjon med andre systemer (Scom, Nav, vCops, osv). Denne jobben må tas fortløpende og i samarbeid med de gruppene som bruker disse systemer.

Konklusjon

Vi anbefaler "Zabbix" som overvåkingsløsning ved UiO.

De punktene som til slutt har vært avgjørende blant de som har blitt nevnt er:

  • Triggere / alarmer: Vi har vektet muligheter til å kunne definere avanserte triggere som kan bruke aggregeringsdata, data fra forskjellige kilder eller sammenligne data for en tidsperiode for å levere svært nøyaktige alarmer.
  • API: Vi har vektet om det finnes et API som kan brukes for å konfigurere og aksesere løsningen fordi dette forenkler interaksjonen med overvåkingssystemet. Det gir gode muligheter for integrasjon med andre systemer og utvikling av tredje part løsninger.
  • Tilgangskontroll: Vi har vektet at produktet bruker en sentralisert autoritativ kilde for håndtering av tilgangskontroll data for konfigurasjon og tilgang.
  • Nagios plugins: Overvåkingsløsningen måtte ha støtte for nagios plugins eller være i stand til å ta de i bruk uten store modifikasjoner hvis de absolutt måtte brukes videre.
Publisert 16. mars 2015 08:23 - Sist endret 22. mars 2019 12:47