Zabbix Mssql Failed To Fetch Info Data -or No Data For 30m-
The error message "MSSQL: Failed to fetch info data (or no data for 30m)" typically indicates a communication failure between the Zabbix agent/server and the target SQL Server instance. This usually results from incorrect connection settings, missing ODBC drivers, or insufficient database permissions. Immediate Troubleshooting Steps
Check Connection Parameters: Verify that your macros or DSN settings are correct.
Server/Port: Ensure the address is set as ipaddress,1433 (use a comma instead of a colon for SQL Server ports).
Trust Certificate: If using newer ODBC drivers (v18+), encryption is often forced. Try adding TrustServerCertificate=yes or Encrypt=yes to your connection string or odbc.ini file.
Verify ODBC Driver Connectivity: Test the connection manually from the command line on the Zabbix server or proxy using isql or sqlcmd to rule out Zabbix-specific issues: isql -v
Confirm Database Permissions: The monitoring user requires specific rights to fetch performance data. Run these commands on your SQL Server:
GRANT VIEW SERVER STATE TO zabbix; (or VIEW SERVER PERFORMANCE STATE for SQL 2022). GRANT VIEW ANY DEFINITION TO zabbix;.
Zabbix Agent 2 Plugin Configuration: If you are using the MSSQL by Zabbix agent 2 template, ensure the plugin configuration file (mssql.conf) is in the correct directory (typically zabbix_agent2.d/plugins.d/) and that the agent has been restarted. Common Fixes from the Community
Username/Password Storage: Users on the Zabbix Forum suggest passing credentials as arguments from the Zabbix frontend rather than storing them in odbc.ini.
Preprocessing Issues: Check if the template's JSONPath preprocessing is failing due to spaces in counter names. For example, change Buffercachehitratio to Buffer cache hit ratio if the raw data includes spaces.
Zabbix Agent 2 Sessions: In mssql.conf, define your connection sessions clearly: Plugins.MSSQL.Sessions..
Are you using the ODBC template or Zabbix Agent 2 for this monitoring setup?
Problem: MSSQL: Failed to fetch info data (or no data for 30m) zabbix mssql failed to fetch info data -or no data for 30m-
PiotrJ. Junior Member. Joined: May 2023. Posts: 26. Problem: MSSQL: Failed to fetch info data (or no data for 30m) 21-09-2023, 19:
MSSQL: Failed to fetch info data (or no data for 30m) - Zabbix
ybcnyc. Junior Member. Joined: Jun 2022. Posts: 1. MSSQL monitoring - MSSQL: Failed to fetch info data (or no data for 30m) 16-06-
MSSQL: Failed to fetch info data (or no data for 30m) - Zabbix
ybcnyc. Junior Member. Joined: Jun 2022. Posts: 1. MSSQL monitoring - MSSQL: Failed to fetch info data (or no data for 30m) 16-06- Microsoft SQL monitoring and integration with Zabbix
The Silent Screen
The Network Operations Center hummed its usual lullaby of cooling fans and low conversation. On the wall, a massive screen displayed a constellation of green dots—each one a server, a service, a heartbeat. In the center of that constellation, glowing a steady, reassuring emerald, was Zabbix.
Leila, the senior on-call engineer, nursed her third coffee of the morning. She glanced at the dashboard. All green. A quiet Tuesday.
Then, at 10:03 AM, she saw it. Not an alarm. Not a siren. An absence.
A single widget on her secondary monitor, the one dedicated to the MSSQL cluster that handled all customer transactions, was… blank. The graph that should have been a lively, jagged line showing query response times was a flat, grey void.
She clicked on the item: MSSQL: User activity per minute.
The status read: "Failed to fetch info data." The error message "MSSQL: Failed to fetch info
Leila frowned. Zabbix never screamed. It whispered. And this whisper was wrong.
She checked the logs. The last successful data pull from the database was 28 minutes ago. The Zabbix proxy, which sat in the DMZ, was sending heartbeats. The firewall rules were intact. The user account zabbix_svc had the right permissions. The ODBC driver was there.
Thirty minutes.
She called Tom, the database admin. "Hey, look at your SQL server. Zabbix is blind."
Tom pulled up his own tools. "It's up. CPU 12%. Memory fine. Locks… no deadlocks. Connections…" He paused. "Huh. I see the Zabbix proxy connected. But it's just… waiting."
"Waiting for what?"
"An answer," Tom said quietly. "The query is SELECT COUNT(*) FROM transactions WHERE timestamp > DATEADD(minute, -5, GETUTCDATE()). It should return in milliseconds. But the execution plan shows a table scan on a table with 2.3 billion rows."
Leila’s blood went cold. "The maintenance job."
Two weeks ago, they had disabled the weekly index rebuild on the transactions table to speed up a different report. They had forgotten to re-enable it. The indexes had fragmented into digital gravel. A simple count query now took the server hostage.
She watched the clock tick over to 10:33 AM.
Thirty minutes. "No data for 30m."
Now Zabbix screamed. The silence broke. Yellow alerts turned to red. A cascade of triggers fired: Zabbix agent on MSSQL01 is unreachable, Template DB MSSQL: Lack of available memory, No data from Database for 30 minutes. The Silent Screen The Network Operations Center hummed
The customer portal, which relied on that data for a "system status" widget, showed a spinning circle. Then a dash. Then a blank page.
Leila didn't reach for her coffee. She reached for her terminal.
She bypassed Zabbix entirely. She logged into the SQL server via an emergency admin account and issued the kill command for the orphaned Zabbix query. Then, with shaking fingers, she typed:
ALTER INDEX ALL ON transactions REBUILD;
She watched the percentage crawl from 0 to 100. Four minutes.
After the rebuild, she restarted the Zabbix proxy agent. In her dashboard, the grey void flickered. Then a single dot of data appeared. Then a line. Then the familiar, jagged, living waveform of a healthy database.
The green lights returned.
Leila slumped back in her chair. Zabbix hadn't failed. It had done exactly what it was supposed to do: it reported an absence. The failure had been human—a forgotten index, an ignored whisper.
She wrote in her post-mortem: "Zabbix did not lose the data. We lost the ability to fetch it. The silence was the alarm."
4. Perfmon Counter Names are Localized (Non-English SQL Server)
This is a legendary trap. On a German, French, or Japanese SQL Server, the performance counter SQLServer:Buffer Manager becomes SQLServer:Puffermanager or similar. The default Zabbix template uses English strings.
Check (in German example):
SELECT DISTINCT object_name FROM sys.dm_os_performance_counters;
You’ll see SQLServer:Puffermanager instead of SQLServer:Buffer Manager.
Fix: Create a custom UserParameter that uses the localized name, or switch to the sql.count item using T-SQL queries instead of perfmon.
Step 3 – Validate Zabbix Item Configuration
- Key format:
odbc.select[DSN,"SELECT 1"]– ensure proper escaping. - Type:
Database monitororZabbix agent?- Agent 2 requires:
mssql.ping[connString]
- Agent 2 requires:
- Update interval: If
30mno data, check if interval = 1h.