Zabbix Mssql Failed To Fetch Info Data -or No Data For 30m- <2026 Update>
Adjust the trigger expression. Replace nodata(30m) with nodata(30m) and last()<>0 or simply increase the threshold for low-traffic servers. 6. Zabbix Agent Timeout (Too Many SQL Instances) Each UserParameter that runs a T-SQL query (like db.mssql.get from the official template) opens a new ODBC connection. If you have 5 databases × 30 items, the agent may exceed its Timeout setting (default 3 seconds) or ODBC connection pool limit.
odbc: SQLExecDirect: retcode=-1 (42S02: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name 'sys.dm_os_performance_counters'.) Go to Monitoring → Latest data , filter by the host and item. Click History (or Graph ) and see if values appear sporadically. If you see a value 30 minutes ago but nothing recent, the agent is sending but SQL intermittently returns NULL – often due to a deadlock or query timeout. Part 4: Fixing the Problem – Permanent Solutions Fix A: Switch from Performance Counters to Direct T-SQL Performance counters are fragile (localization, missing objects). For critical metrics, use db.odbc.select with custom T-SQL. zabbix mssql failed to fetch info data -or no data for 30m-
UserParameter "db.mssql.ping" returned value "1" Example bad log: Adjust the trigger expression
USE master; GRANT VIEW SERVER STATE TO [NT SERVICE\ZabbixAgent]; GRANT CONNECT SQL TO [NT SERVICE\ZabbixAgent]; Zabbix templates often use a parameter like $MSSQL.INSTANCE (default: MSSQLSERVER ). For named instances, you must use HOSTNAME\INSTANCENAME or just the instance name, depending on the template. Zabbix Agent Timeout (Too Many SQL Instances) Each
Azure SQL Managed Instance does not support sys.dm_os_performance_counters – it raises “Invalid object name”.