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.