Zabbix Monitoring for Multi Node Architecture

thegoogoblin

New Member
Aug 13, 2024
2
0
1
I am looking to find suggestions and what has worked for anyone else utilizing Zabbix as their monitoring tool in a multi node layout.

I have been successful with implementing the template from zabbix.com that fetches your entire cluster via HTTP calls, however I can't seem to have Zabbix monitor the cluster in a highly available way. If I add a single node to the macro {$PVE.URL.HOST} I get data, but what if I want that monitoring to still work if that host URL becomes unavailable?

Should I scrap the HTTP monitoring for local agents instead?
Should I do both the HTTP monitoring and local agents in tandem to get copious amounts of data?

Is there a way within the cluster to assign user and API permissions to only 1 node? (I tried this and was unsuccessful but may have done it incorrectly)
I could then just create a user and assign permissions for each node and have zabbix monitor each node via HTTP rather than 1 host for the entire cluster. (Not ideal)

I did see another post that accomplished something similar using keepalived to assign a VIP here, maybe that would be best?

Is there something simple I am missing here?

Using proxmox VE v8.2.4 and Zabbix Server v6.4
 
Install Agent on each node... add Zabbix API Template to each Zabbix Agent and configure API and URL to the specific nodes....
You have x-time redundant monitoring then.

Drawback.... Alerts come multiple times... from each node in monitoring once...
 
Hello.

We solved this issue by creating a separate domain, e.g., pve-cluster.network.lan.

Additionally, we installed HAProxy (https://www.haproxy.org/) on the Zabbix server and configured it to listen on this domain and forward the requests from Zabbix to one available node in the cluster.

This way, you need only one Host in Zabbix and any node can fail - the proxy ensures that no requests are sent to the unavailable node.
 
Last edited:
Hello.

We solved this issue by creating a separate domain, e.g., pve-cluster.network.lan.

Additionally, we installed HAProxy (https://www.haproxy.org/) on the Zabbix server and configured it to listen on this domain and forward the requests from Zabbix to one available node in the cluster.

This way, you need only one Host in Zabbix and any node can fail - the proxy ensures that no requests are sent to the unavailable node.
But you get another SPOF... what if your haproxy has problems?