Monitoring met Zabbix

2018-11-30

IT assets spelen een belangrijke rol in het monitoren van de dienstketens binnen Alliander. Daarom werk ik voor mijn huidige opdracht veel met Zabbix, een OpenSource monitoring tool voor IT componenten. Zabbix kan data collecteren van apparatuur, systemen en applicaties en daar intelligentie op loslaten om problemen te detecteren, root-analyse te doen en veel meer. Nieuwe IT assets worden automatisch aangemeld in Zabbix en worden er ook steeds meer applicaties en services aan gekoppeld, waardoor Alliander problemen kan traceren en zelfs voorkomen en zo de availability van haar diensten kan maximaliseren. 

Uiteraard zijn er ook alternatieve oplossingen zoals Nagios, Cacti, HP OpenView, Pandora FMS en nog veel meer. De keus viel op Zabbix om de volgende redenen:

  • Zabbix is opensource.
  • Het heeft (rest) API functionaliteit.
  • De tool kan toegepast worden in gezoneerde netwerkomgevingen door middel van proxies en agents.
  • Het is mogelijk om monitoring van bijna alles met een netwerkinterface. Net als de meeste monitoring tools leent Zabbix zich goed voor netwerk devices, maar is ook geschikt voor andere IT componenten zoals servers, virtual machines, databases, services en applicaties.
  • Zabbix heeft laagdrempelige systeemeisen, maar is desondanks flexibel en breed toepasbaar. Het ondersteunt Windows, Linux, IBM, BSD, HP-UX, Mac OS X en Solaris. 
  • De tool is ook zeer schaalbaar, je kan het bijvoorbeeld ook voor je NAS thuis gebruiken. 

 

Screenshot van Zabbix Dashboard

 

Uitproberen?

Als je Zabbix graag wilt uitproberen, dan heb je een Linux machine nodig en volg je deze instructies om Zabbix te installeren. Als je Zabbix server draait, kan je de eerste basis elementen configureren in de Quickstart

Hosts

Dit zijn de devices die je monitort. Dit kan met Zabbix agents, IPMI, SNMP en JMX. Vaak krijg je al vrij snel te maken met een grote populatie hosts. Daarom is het verstandig om host groups te maken. Hosts kunnen in meerdere groepen zitten, wat erg handig kan zijn voor de verschillende views die je qua monitoring wilt hebben.

Items

Dit zijn data bronnen van je hosts, bijvoorbeeld de CPU load of disk space. Ook hier kan je instellen op welke manier deze data binnenkomt, zoals standaard Zabbix elementen, command lines op SSH of Telnet, database queries en meer. Als je een text item aanmaakt (bijvoorbeeld voor log files), dan kan je dependent items maken die met regular expressions specifieke data uit die text ophalen. 

Triggers

Triggers kijken naar één of meerdere items en genereren een alert zodra de waarde van het item voldoet aan de expressie van de trigger, bijvoorbeeld als de CPU load boven de 90% is gestegen voor meer dan 30 minuten. Je kunt de alerts ook automatisch laten recoveren op basis van een recovery expressie, bijvoorbeeld als de CPU load lager dan 50% is voor 5 minuten. 

Vervolgens kan je met Actions instellen voor welke alerts er een bericht moet worden uitgestuurd naar de gebruikers via mail, SMS of andere media. Overigens wil je uiteindelijk niet telkens dezelfde items en triggers aanmaken voor meerdere hosts. Daar heeft Zabbix Templates voor bedacht. Templates kan je op een host of host group toepassen, zodat alle items en triggers van die template op al die hosts worden gemonitord. 

By the way:

Zabbix kan ook gebruikt worden om Docker containers te monitoren, maar dan heb je wel deze oplossing van GitHub nodig.


Bekijk alle posts van Pepijn