Utforska Zabbix, Utveckling, Utmaningar och Framsteg. Bara fantasin sätter gränser!
Det finns mycket att upptäcka och göra med Zabbix, egentligen är det bara fantasin som sätter gränser. Vår kollega William berättar här hur han gick tillväga när han upptäckte mer kring att bygga egna moduler till Zabbix front-end.
Är ni intresserade av att ta del av mer vad Zabbix har att erbjuda och diskutera detta med likasinnade? Du kan då ta del av Zabbix community Sverige.
Bara fantasin sätter gränser!
Under Williams första tid här på Metricio fanns ett intresse av att lära sig mer om Zabbix och vad man kan upptäcka, utveckla med bara fantasin som sätter gränser.
-Jag upptäckte att det gick att bygga egna moduler till Zabbix front-end och tänkte att det är ett roligt sätt att lära sig mer om hur Zabbix fungerar.
William pratade lite med en kollega och han hade ett problem som eventuellt kunde lösas: Att visa en vy över alla hostar och vilken version av agenten som de använde och kunna exportera detta till ett användbart filformat.
Kollegan hade tidigare behövt göra detta i en mindre miljö men hade då kopierat ut data ur Zabbix "för hand" och klistrat in ett excel-ark. Det skalar inte så bra om miljön växer. Så uppdraget för William blev att försöka skriva en modul som kunde lösa detta.
Tillvägagångsätt
-För att hjälpa mig att bygga ihop det här behövde jag lite hjälp, speciellt då jag knappt skrivit en rad php (språket som Zabbix front end till största del är skrivet i) innan även om jag är van vid programmering i andra språk, berättar William.
-Den största hjälpen fick jag av Zabbix egen källkod som är helt öppen att läsa/ladda ner. Där kunde jag se hur Zabbix själva byggt saker tidigare och även använda mig av delar av deras kod i min modul.
William tipsar
- Här finns ett exempel på hur man börjar med egna moduler, hur de är strukturerade samt dokumentation för API och mycket annat: Zabbixdokumentation
Utveckling, Utmaningar och Framsteg
-Genom att läsa igenom Zabbix egen kod insåg jag att det fanns många funktioner som jag kunde använda från min modul så jag behövde inte skriva all kod själv från grunden. Bland annat API funktioner och funktioner för att bygga upp de element som vyn bestod av.
Ett problem William stötte på vad att Zabbix sätt att exportera data inte var tillgängligt från hans modul om han inte modifierade Zabbix källkod. Det ville William inte göra då det skulle innebära hans modul inte skulle gå att använda med en vanlig Zabbix installation. Men detta löste han.
-Efter lite efterforskning lärde jag mig hur jag kunde exportera data själv och skrev några enkla funktioner för detta, som jag knöt till en knapp, fortsätter William.
-Jag lärde mig även en hel del om hur Zabbix fungerar internt och hur kommunikation fungerar från front-end till databas till server. Att använda Zabbix API innebar också att jag fick lära mig att formatera data så det passade det som jag ville bygga.
-Genom att ladda ner Zabbix källkod som är helt öppen att läsa/ladda ner, för att sedan använda VS Code kunde jag få kod-förslag och auto-komplettering när jag utvecklade min modul vilket var till stor hjälp för mig som var ny med både php och Zabbix front-end kod.
Vad blev resultatet?
- En ny menyrad under reports som heter Agent Versions till vänster i bilden.
- En tabell med information om varje host och vilken version av agent som körs.
- Host och Item name är länkade till host respektive item konfiguration.
- Export knapp där användaren kan välja mellan JSON eller CSV format.
Slutprodukten är William nöjd med även om den kanske inte är helt redo för användning i produktion så var det ett kul sätt att lära sig mer om hur Zabbix fungerar och vad som går att göra om man har lite fantasi och nyfikenhet!
Kom ihåg, det är bara fantasin som sätter gränser
Kontakta gärna oss om ni är intresserade av att ta en titt på koden bakom modulen, ni kan även klicka här!!
Resultat blev vyn som ni ser nedan: