# /etc/zabbix/zabbix_agentd.d/mssql.confUserParameter=perf.mssql[fetch.status],
/usr/local/bin/check_mssql_fetch.sh
UserParameter=perf.mssql[last_success],
/usr/local/bin/mssql_last_success.sh
check_mssql_fetch.sh:
#!/bin/bashIf you monitor dozens of SQL Server instances per agent, the default polling may collapse.
Apply these in
zabbix_agentd.conf:StartAgents=32 Timeout=30 ODBCPoolSize=100 EnableRemoteCommands=1Restart the agent. Also, spread items across multiple trapper items or use a Zabbix proxy for distributed SQL monitoring.
timeout 10 $MSSQL_CMD -S $SERVER -d $DB -Q "$QUERY" -W -h -1 > /dev/null 2>&1
if [ $? -eq 0 ]; then echo 0 # Success else echo 1 # Failed fi
Symptom: “Failed to fetch info data” immediately. zabbix mssql failed to fetch info data -or no data for 30m-
Root cause: Azure SQL Managed Instance does not support sys.dm_os_performance_counters – it raises “Invalid object name”.
Solution: Switch to sys.dm_db_resource_stats or sys.server_resource_stats views. Customize the user parameter to query these instead. The official Zabbix template for Azure SQL Database is different from on-prem MSSQL.
Fix: Install the correct driver version. For Zabbix agent 64-bit, use msodbcsql17_x64.msi. For agent 32-bit, use the x86 version.
This specific error usually originates from the Zabbix Agent 2 (which has native MSSQL plugin support) or a custom ODBC/UserParameter setup. # /etc/zabbix/zabbix_agentd
When Zabbix says "failed to fetch info data," it means the agent attempted to execute a query (likely against performance counters or DMVs) and received:
The second part of the trigger—"no data for 30m"—simply confirms that the item has stopped receiving data entirely, rather than just receiving a "zero" value.
Effective database monitoring requires consistent, timely metric collection. Zabbix typically collects MSSQL performance counters (e.g., buffer cache hit ratio, page life expectancy, blocking processes) using:
When Zabbix triggers "Failed to fetch info data" or "No data for 30m", the root cause is rarely the same. The former suggests an authentication or query execution failure; the latter suggests timeouts, deadlocks, or connectivity intermittency.