Om automatikk

Om Zabbix-automatikken og en enkel beskrivelse av hva den gjør.

Om

Vi har to automatikker knyttet til Zabbix. Den ene, LDAP2Zabbix, tar seg av brukere og brukergrupper. Den andre, Zabbix-auto-config, tar seg av blant annet oppretting av hoster og knytting av disse til hostgroups og templates.

Zabbix-auto-config er laget med en tanke om å være modulær og ikke sterkt koblet til spesifikke systemer vi har på UiO. Automatikken kjører som en service på en management-server. Dette ligger som open source på github: https://github.com/unioslo/zabbix-auto-config.

LDAP2Zabbix benytter Cerebrum (LDAP) som kilde til brukere og brukergrupper. Koden ligger internt i BitBucket: https://bitbucket.usit.uio.no/projects/GID/repos/ldap2zabbix/browse

Zabbix-auto-config

Oversikt

En noe forenklet oversikt over komponenter i automatikken. Komponenter i grått er eksterne eller moduler koblet til automatikken.

Flyt

Kilder

Automatikken har et konsept om datakilder (dette kan f.eks være Mreg og Nivlheim). En source collector knyttet til en kilde er en python-modul som leverer data om hosts. Dataen inneholder informasjon som for eksempel kontakt, viktighet, hvorvidt hosten skal overvåkes og generiske egenskaper/properties. Kildene tilbyr datagrunnlaget for videre automatisering. Kildene kan både være dynamiske systemer og mer statiske filer fra for eksempel et git-repository.

På UiO er det i all hovedsak maskiner fra Mreg med policy "with_monitoring" som blir synkronisert inn.

Sammenslåing

Videre blir kildene slått sammen (source merger) til ett sett maskiner. Dette gjøres stort ved at lister slås sammen med listen, men en host vil f.eks få den høyeste viktigheten en kilde mener at den har.

Modifiers

Før en sammenslått host lagres vil den sendes gjennom konfigurerte modifiers. En modifier er en python-modul som tar inn en host og leverer den samme ut igjen med eventuelle  endringer.

Oppdatering

De lagrede, sammenslåtte hostene sier hva som skal være i Zabbix. Det er egne prosesser som oppdaterer sine områder i Zabbix. For eksempel vil host updater opprette, slette og modifisere selve hostene i Zabbix.

Hostgroup updater og template updater legger host inn i grupper og lenker de til templates. Dette gjøres basert på mapping-konfigurasjon som for eksempel sier at en spesifikk kontakt på en host skal gi en spesifikk hostgroup. Egenskaper ved hosten kan brukes for å mappe den til templates.

Det gjøres en diff mot selve Zabbix og det som ikke er i henhold vil bli korrigert.

Eksempel

  • Source01 har hosten "foo.example.com" med kontakten "bob@example.com".
  • Source01 har hosten "bar.example.com" med kontakten "bob@example.com".
  • Source02 har hosten "foo.example.com" med kontakten "alice@example.com" og egenskapen "web_server".
  • Vi har en modifier som sier at hosts med "web_server"-egenskapen i "example.com"-domenet skal ha egenskapen "example_web_server".
  • Mapping-konfigurasjonen av templates sier at hosts med "example_web_server" skal ha templaten "Template-example-web-server".
  • Mapping-konfigurasjonen av hostgroups sier at hosts med "web_server" skal i "Webserver-hosts", og at de med kontakt "bob@example.com" skal i "Bob-hosts".

Etter at dette eksempelet har flytt gjennom automatikken vil det resultere i at "foo.example.com" blir lenket til "Template-example-web-server", medlem av "Bob-hosts" og medlem av "Webserver-hosts". "bar.example.com" vil bli medlem av "Bob-hosts".

LDAP2Zabbix

LDAP2Zabbix ser på grupper prefixet med "zabbix-" i Cerebrum. Gruppene opprettes og administreres av DIA. Det er ønskelig å ha andre grupper som medlem av disse og ikke administrere direkte brukertilganger. Ansatt-grupper som kommer fra SAP er for eksempel gode å bruke.

Publisert 2. juli 2018 11:41 - Sist endret 30. juni 2020 11:11