-
Problem report
-
Resolution: Unresolved
-
Trivial
-
None
-
4.0.48, 5.0.37, 6.0.21, 6.4.6, 7.0.0alpha4
-
Windows SQL-Server Always On Cluster
SQL-Database Error Logfile Check
Currently Agent Active checks do not work on HA-Clusters. And probably never have.
Example: Given is a Microsoft always on cluster with two nodes, called sql01 and sql02. This cluster carries a number of virtual IPs for the clustered SQL-Server instances, sqlapp01, sqlapp02, etc.
The hostname-parameter in the Zabbix client configuration is set to the node name - sql01 and sql02 respectively. This is required so that the monitoring of node private items works correctly.
The cluster virtual IPs are configured each as a Zabbix host of their own with the interface pointing to the correct virtual IP / DNS-name (sqlapp01, etc.).
SQL-Server database checks are configured on the cluster ip hosts, so the checks follow the database instance regardless on which cluster node it is currently running.
This works without problems for passive checks. Active checks do not work, because they are sent with the hostname of the currently active cluster node for that instance instead of the cluster virtual ip hostname.
Changing the hostname in the Zabbix agent configuration is no solution, because we have multiple independent database instances on the cluster and we can set only one hostname. Also, this would mess up active checks for node private items and confuse auto registration, which we also use.
The problem shows up in the Item Queue, as the active checks never receive any values.
Switching to passive checks is not possible for log file items.
I can think of no possible workaround for this. The only way to fix this is that when the Zabbix client is sent the active item configuration, it receives the hostname of the Zabbix host the item is attached to and uses this as hostname for the value reporting instead of the one in the client configuration.