首先先容ODBC是什么吧,网上的先容是:ODBC便是是为办理异构数据库间的数据共享而产生的,现已成为WOSA(The Windows Open System Architecture(Windows开放系统体系构造))的紧张部分和基于Windows环境的一种数据库访问接口标准。
ODBC 为异构数据库访问供应统一接口,许可运用程序以SQL 为数据存取标准,存取不同DBMS管理的数据;使运用程序直接操纵DB中的数据,免除随DB的改变而改变。
用ODBC 可以访问各种打算机上的DB文件,乃至访问如Excel 表和ASCI I数据文件这类非数据库工具。
说句听的懂的人话:便是一种针对不同的数据库连接工具,目前针对sql server比较好的办理方案。
当然也可以通过PowerShell实行天生的XML文件导入到zabbix也可以,但推举还是ODBC,目前Zabbix官方供应监控Sql Server的方法便是ODBC的办法。

本文环境

Linux版本:CentOS 8.2Zabbix版本:5.2.2Windows系统:2019数据库:Sql Server 2019ODBC版本:ODBC驱动版本:17

安装ODBC驱动

phpodbcsqlserver一文教你Zabbix若何用ODBC监控Sql Server SQL

由于CentOS自带ODBC软件,无需安装,如果是CentOS8以下(不包含8)安装ODBC软件yum -y updateunixODBCunixODBC-devel安装微软ODBC源,如果是CentOS7,就将下面的数字改为7curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo安装微软干系组件(ACCEPT_EULA=Y为接管政策,必写)ACCEPT_EULA=Y dnf -y install msodbcsql17ACCEPT_EULA=Y dnf -y install mssql-tools导入变量echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profileecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrcsource ~/.bashrc

查看驱动文件

vim/etc/odbcinst.ini

查看驱动文件是否存在

添加数据源

vim /etc/odbc.ini

安装zabbix插件

在zabbix官网下载zabbix agent for windows。

agent安装程序

这里填写Server的IP

测试连接数据库

用isql命令 Kasar为odbc.ini里的[]名称,后面为账户名称isql Kasar sa 123.com -v

连接成功

Zabbix前端添加监控

添加ODBC的MSSQL模板(如果没有可以私信我)

添加这两个模板

修正模板的宏

由于官方自带的模板用户名密码为通用,以是须要自行配置,调度的地方如下图,首先图中的DSN部分为odbc.ini里的[]内容,其次为用户名密码。

修正相对应的值

添加OK

验证

查看最新数据,正常就OK了

数据正常

添加自定义语句

查询sqlserver连接数select COUNT(1) from sysprocesses where dbid in (select dbid from sysdatabases-- where name='master') ##这里牢记要单独一行

须要把稳的是键值这一块,可以写变量,也可以写详细的值,第一个是描述,可以随便填写,第二个便是odbc.ini[]里的内容,第三个可以不用填写。
db.odbc.select[<unique short description>,<dsn>,<connection string>]

添加自定义语句

创建监控项模板测试,看是否能获取值,这里已经成功了

碰着的问题

连接缺点

这种属于账号没有权限连接,以是须要去数据库调度权限,给public权限即可,其余如果是Centos7的报错可能不一样,会涌现类似{administrator|---},基本都会是权限问题。

写在末了

经由我永劫光的测试,基本都OK,包括基于之前的SQL server版本也可以,碰着的一些问题都是权限问题,各位如果感兴趣可以测试,其余数据库的监控只是根本监控,如果须要更深度的监控语句,可以让业务方提出哀求,你们实行就好了,如果我的文章对您有用欢迎关注和转发哦,感激啦