Monitor HTTP endpoint from Zabbix – Cool graph

I’m a long user of Zabbix, about 9 years now. I’m using it to make sure all my services are working normal. However, it’s never been a go to tool for daily check, because the zabbix generated graph is usually very industrial and not exciting.

Zabbix 4.0.0 was released on October 2018, and it changed my mind. We can now have SVG graph on dashboard, it just looks like Grafana.

Other item I want to highlight is HTTP agent. Which enables zabbix to use REST API, and we can use returned values for monitoring purpose.

There has been a “Web scenario”, which can be used to check web services availability. It is a great feature just to check the availability(and latency) for the web services. But It cannot cooperate with complex post request nor it cannot parse the value from responses. With HTTP agent, you can use jsonpath to specify which value you want to monitor.

So in my case, I’m using both features for different services:

  • Web Scenario … Monitor Kubernetes API server. It polls /healthz to check if the service is working. Rest kubernetes services are monitored by Prometheus.
  • HTTP Agent … Monitor network gateway devices –e.g. Fortigate for CPU/RAM utilization. Previously I did this with SNMP, and now using REST API to get the resource.