首先先容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驱动
由于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版本也可以,碰着的一些问题都是权限问题,各位如果感兴趣可以测试,其余数据库的监控只是根本监控,如果须要更深度的监控语句,可以让业务方提出哀求,你们实行就好了,如果我的文章对您有用欢迎关注和转发哦,感激啦