Zabbix appliance用ODBC无代理监控MSSQL时isql无法连接如何解决
排查解决步骤
- 修正测试命令,获取详细报错
你odbc.ini中配置的DSN名称为mssql,执行isql test会找不到对应配置,正确测试命令为isql -v mssql,-v参数会输出详细的连接错误信息,可直接定位具体问题点。 - 检查网络连通性
在Zabbix appliance上执行nc -zv 数据库服务器IP 1433或者telnet 数据库服务器IP 1433,确认1433端口可正常访问。同时检查SQL Server服务器的防火墙、安全组规则,确认已放行Zabbix appliance的IP访问1433端口。 - 检查SQL Server端配置
- 打开SQL Server配置管理器,在对应实例的网络配置中确认已开启TCP/IP协议,且TCP监听端口为1433
- 确认你配置的数据库账号允许从Zabbix服务器IP远程登录,且拥有对应监控数据库的public权限、系统视图读取权限
- 修正ODBC配置文件格式
你当前odbc.ini中Description项用了冒号作为分隔符,ODBC配置要求所有键值对统一使用等号,修正后配置如下:
同时确认odbc.ini、odbcinst.ini文件的权限为644,确保zabbix运行用户有读取权限。[mssql] Description = mssql database connected to zabbix Driver = ODBC Driver 17 for SQL Server Server = 替换为实际数据库服务器IP User = 替换为实际数据库账号 Password = 替换为实际数据库密码 Port = 1433 Database = 替换为实际要监控的数据库名 - 校验ODBC驱动可用性
执行odbcinst -q -d,确认输出包含ODBC Driver 17 for SQL Server;再执行ldd /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.7.so.2.1,检查驱动的所有依赖库是否完整,若有缺失安装对应系统依赖即可。 - 校验Zabbix监控配置
确认Zabbix中SQL Server监控模板的ODBC DSN配置值为mssql,和odbc.ini中的DSN名称完全一致,大小写敏感。
内容的提问来源于stack exchange,提问作者malih
相关产品推荐
相关产品推荐

