Introduction
The best way to have visbility on what is going on in your homelab is to have monitoring over everything from Networking, Storage, and Compute hosts. To do this, I have decided to use Zabbix in HA on my Kubernetes cluster, while integrating it with my PostgreSQL HA cluster to ensure ultimate uptime of my monitoring solution.
Architecture
Below is a simple diagram showing the physical infrastructure backing this Zabbix deployment.
Kubernetes
To move this to Kubernetes, ideally we would want a PostgreSQL cluster to store everything in. We can achieve this by using a PostgreSQL operator in Kubernetes, which automates provisioning StatefulSets of databases, which automates the High Availability by switching the Kubernetes service to the master node.
- PostgreSQL HA cluster using Zalando PostgreSQL Operator
- Zabbix Server in HA with LINDS-Kubernetes/zabbix
- TrueNAS Host to host the PostgreSQL data.
Monitored objects
- 2x Core switches
- 5x Wireless AP’s
- Physical Host hardware (HPE and Dell)
- VMware ESXi Hypervisor OS
- 2x TrueNAS VM
- 2X OPNSense VM
Alerting
To receive alerting, I’ve set up Discord webhooks as well as ZBX Viewer to receive any notifications on my phone if there is any alerts.