I'm using Zabbix 2.2.1 on Linux (Ubuntu 13.04) to monitor my environments, and am in the process of deploying some Corosync/Pacemaker failover clusters. I'm struggling to find a way to effectively monitor these clusters in a templated way.
For example - each cluster will have DRBD/MySQL/Apache installed, but MySQL and Apache will only ever be running on one of the nodes at a time due to it being a failover cluster.
As a result, if I take the traditional approach, I'll always at least have a ton of unsupported items on one of the hosts at any time (and a large number of emails when a failover occurs and the items go supported/unsupported).
Triggers are also a challenge, as I could write custom ones for each cluster - taking the example from https://www.zabbix.com/documentation...ers/expression I could write
{node1
roc.num[apache2,,,].last(0)}<1&{node2
roc.num[apache2,,,].last(0)}<1
But I don't know how (if?) I can do this in a template. Ideally I want the trigger to be running against a pseudo-host (the cluster) rather than on each actual host, so it would only check/alert once for the cluster rather than alerting from both hosts. I'm also not sure how I'd pass the two actual hostnames to the template if I implemented the example above.
I've seen some examples of people monitoring clusters by creating another host against the cluster's VIP, but unfortunately this isn't an option for me as I'm running in the public cloud (MS Azure) and so can't have any VIPs running on the hosts themselves.
So, my questions are:
1. Is there any plans to introduce the concept of "pseudo-hosts" such as clusters to Zabbix that could exist across multiple real hosts?
2. Is there any way I can easily get my items to "follow" the service as it fails over from one node to another?
3. Is it possible to create triggers that monitor the status of two hosts in a template?
Thanks in advance
Greg Murphy
For example - each cluster will have DRBD/MySQL/Apache installed, but MySQL and Apache will only ever be running on one of the nodes at a time due to it being a failover cluster.
As a result, if I take the traditional approach, I'll always at least have a ton of unsupported items on one of the hosts at any time (and a large number of emails when a failover occurs and the items go supported/unsupported).
Triggers are also a challenge, as I could write custom ones for each cluster - taking the example from https://www.zabbix.com/documentation...ers/expression I could write
{node1
roc.num[apache2,,,].last(0)}<1&{node2
roc.num[apache2,,,].last(0)}<1But I don't know how (if?) I can do this in a template. Ideally I want the trigger to be running against a pseudo-host (the cluster) rather than on each actual host, so it would only check/alert once for the cluster rather than alerting from both hosts. I'm also not sure how I'd pass the two actual hostnames to the template if I implemented the example above.
I've seen some examples of people monitoring clusters by creating another host against the cluster's VIP, but unfortunately this isn't an option for me as I'm running in the public cloud (MS Azure) and so can't have any VIPs running on the hosts themselves.
So, my questions are:
1. Is there any plans to introduce the concept of "pseudo-hosts" such as clusters to Zabbix that could exist across multiple real hosts?
2. Is there any way I can easily get my items to "follow" the service as it fails over from one node to another?
3. Is it possible to create triggers that monitor the status of two hosts in a template?
Thanks in advance
Greg Murphy
Comment