You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Zabbix无需在数据库主机安装代理即可监控Microsoft SQL Server

无Agent实现Zabbix监控SQL Server指定字段异常告警方案

实现原理

直接用Zabbix原生的ODBC监控能力,从Zabbix Server或Proxy节点远程连接MSSQL数据库采集数据,不需要在数据库服务器上安装任何Agent程序,完全满足安全要求。

前置准备

  • 在Zabbix Server(如果用Proxy监控就对应Proxy节点)上安装unixODBC工具和SQL Server官方ODBC驱动
    • RHEL/CentOS 系列执行:yum install unixODBC msodbcsql18
    • Debian/Ubuntu 系列执行:apt install unixodbc msodbcsql18
      如果msodbcsql18安装失败,也可以替换为17版本,后续配置对应修改驱动名称即可
  • 在待监控的MSSQL实例上创建最小权限的专用监控账号,只给T1表的查询权限,避免安全风险:
-- 创建登录账号
CREATE LOGIN zabbix_monitor WITH PASSWORD = '替换为你自己的强密码';
-- 切换到业务数据库
USE 你的业务数据库名称;
CREATE USER zabbix_monitor FOR LOGIN zabbix_monitor;
-- 仅授予T1表的查询权限
GRANT SELECT ON T1 TO zabbix_monitor;
  • 确保Zabbix Server/Proxy到MSSQL服务器的数据库端口(默认1433,自定义端口改对应值)网络互通,没有防火墙拦截。

具体配置步骤

1. 配置ODBC数据源

编辑Zabbix Server/Proxy节点的/etc/odbc.ini文件,添加对应数据源配置:

[MSSQL_T1_Monitor]
Driver = ODBC Driver 18 for SQL Server
Server = tcp:MSSQL服务器IP,端口号
Database = 你的业务数据库名称
UID = zabbix_monitor
PWD = 你设置的监控账号密码
TrustServerCertificate = yes

配置完成后执行isql -v MSSQL_T1_Monitor测试连通性,返回Connected就说明配置正常,连不上优先检查网络、驱动版本、账号密码配置。

2. Zabbix前端创建监控项

登录Zabbix前端,你可以专门新建一个虚拟主机用来管理MSSQL监控,在该主机下新建监控项:

  • 名称:T1表col1最小值监控
  • 类型:选择「数据库监控 → ODBC」
  • 键值:odbc.get[MSSQL_T1_Monitor,select min(col1) from T1]
  • 数据类型:数字(浮点型)
  • 更新间隔:按你的监控频率要求设置,比如300秒即5分钟
  • 用户名/密码可以留空(已经配置在odbc.ini里),也可以在这里单独填写更安全。

3. 配置告警触发器

在该监控项下新建触发器,触发器表达式设置为:
last(/你建的虚拟主机名称/odbc.get[MSSQL_T1_Monitor,select min(col1) from T1])<0
告警级别按你的需求设置即可,比如警告级。

4. 配置通知规则

把你的账号添加到该触发器对应的告警接收用户组,配置好你需要的通知介质(邮件、企业微信、短信等),当T1表col1出现小于0的值时,就会自动给你发告警通知。

可选优化

如果担心频繁查询业务表对数据库造成压力,可以在MSSQL里提前写一个存储过程封装T1表的查询逻辑,Zabbix直接调用存储过程取返回值即可,进一步降低对业务库的影响。


内容的提问来源于stack exchange,提问作者malih

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:54:01