
    
    
    1.ODBC概述
   
ODBC监控对应于Zabbix前端中的数据库监控类型
ODBC是C语言编写的中间件API,用于访问数据库管理系统(DBMS)。
ODBC是由Microsoft开发的,后来被移植到了其它平台
Zabbix可以查询任何支持ODBC的数据库。
实现这个目标,Zabbix不直接连接数据库,而是使用ODBC接口并在ODBC中设置的驱动程序。
该功能允许出于多种目的,更加有效地监视不同的数据库。
例如,检测特定的数据库队列、使用统计信息等。
Zabbix支持unixODBC,是最常用的开源ODBC API实现之一
    
    
    2.ODBC安装
   
安装unixODBC的建议方法是使用Linux操作系统默认包库,在主流的Linux发行版中;
默认情况下unixODBC包含在镜像库中
RedHat/Fedora及Centos系统上使用yum包管理器安装unixODBC
#zabbix server上下载安装odbc
[root@Zabbix server ~]# yum -y install unixODBC unixODBC-devel
#查看odbc使用方式
[root@Zabbix server ~]# odbcinst 
**********************************************
* unixODBC - odbcinst                        *
**********************************************
*                                            *
* Purpose:                                   *
*                                            *
*      An ODBC Installer and Uninstaller.    *
*      Updates system files, and             *
*      increases/decreases usage counts but  *
*      does not actually copy or remove any  *
*      files.                                *
*                                            *
* Syntax:                                    *
*                                            *
*      odbcinst Action Object Options        *
*                                            *
* Action:                                    *
*                                            *
*      -i         install                    *
*      -u         uninstall                  *
*      -q         query                      *
*      -j         print config info          *
*      -c         call SQLCreateDataSource   *
*      -m         call SQLManageDataSources  *
*      --version  version                    *
*                                            *
* Object:                                    *
*                                            *
*      -d driver                             *
*      -s data source                        *
*                                            *
* Options:                                   *
*                                            *
*      -f file name of template.ini follows  *
*         this (valid for -i)                *
*      -r get template.ini from stdin, not   *
*         a template file                    *
*      -n Driver or Data Source Name follows *
*      -v turn verbose off (no info, warning *
*         or error msgs)                     *
*      -l system dsn                         *
*      -h user dsn                           *
*                                            *
* Returns:                                   *
*                                            *
*      0   Success                           *
*     !0   Failed                            *
*                                            *
* Please visit;                              *
*                                            *
*      http://www.unixodbc.org               *
*      pharvey@codebydesign.com              *
**********************************************
    
    
    3.安装 unixODBC 驱动程序
   
zabbix监控,需要为被监控的数据库安装一个unixODBC数据库驱动程序。
unixODBC有一个支持的数据库和驱动程序列表:
【ODBC支持数据库组件列表】
在一些Linux发行版中,数据库驱动程序包含在镜像库中。
在RedHat/Fedora系统上使用yum包管理器安装sql server或者MySQL数据库驱动程序
#sql server驱动程序安装
yum install freetds -y
    
    
    4.配置 unixODBC
   
ODBC配置是通过编辑 odbcinstn.ini 和 odbcst.ini 文件完成的
#ODBC配置文件位置查找,可通过命令直接查看
odbcinst
#查看odbc驱动配置
odbc_config --odbcinstini
#ODBC驱动查找
[root@Zabbix server ~]# find / -name 'libtdsodb*'
/usr/lib64/libtdsodbc.so
/usr/lib64/libtdsodbc.so.0
/usr/lib64/libtdsodbc.so.0.0.0
odbcinstst.ini驱动程序配置:
#odbcinstst.ini 用于列明已安装的ODBC数据库驱动程序,在/etc/odbcinst.ini添加SQL Server驱动FreeTDS:
[root@Zabbix server ~]# egrep "^[^#]" /etc/odbcinst.ini 
# PostgreSQL驱动项(默认就有)
[PostgreSQL]
Description	= ODBC for PostgreSQL
Driver		= /usr/lib/psqlodbcw.so
Setup		= /usr/lib/libodbcpsqlS.so
Driver64	= /usr/lib64/psqlodbcw.so
Setup64		= /usr/lib64/libodbcpsqlS.so
FileUsage	= 1
# Mysql驱动项(默认就有)
[MySQL]                                  # 数据库驱动名
Description	= ODBC for MySQL             # 数据库驱动描述
Driver		= /usr/lib/libmyodbc5.so     # 数据库驱动程序库文件位置
Setup		= /usr/lib/libodbcmyS.so
Driver64	= /usr/lib64/libmyodbc5.so
Setup64		= /usr/lib64/libodbcmyS.so
FileUsage	= 1
# SQL Server驱动项(新增项)
[FreeTDS]  
Description = ODBC for SQL Server
Driver = /usr/lib64/libtdsodbc.so.0
Setup = /usr/lib64/libtdsS.so
FileUsage = 1
odbc.ini 自定义数据源:多台设备可直接添加到此配置中
#添加数据源(默认再/etc/odbc.ini,找不到旧find)
[root@Zabbix server ~]# find / -name 'odbc.ini*'
/etc/odbc.ini
/usr/share/doc/freetds-libs-1.3.3/samples-odbc/odbc.ini
/usr/share/man/man5/odbc.ini.5.gz
#配置数据源(配置默认配置即可)
[root@Zabbix server ~]# egrep [^#] /etc/odbc.ini 
[mssql]
Driver = FreeTDS
Server = zeny.database.windows.net
Port = 1433
TDS_Version = 8.0
#Database = zeny
[zeny1]          
Driver = FreeTDS
Server = 192.168.1.5
PORT = 1433
TDS_Version = 8.0
[zeny2]
Driver = FreeTDS
Server = 127.0.0.1
PORT = 1433
TDS_Version = 8.0
《配置以上配置即可,略过以下配置即可》
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
####################################################################################
[root@Zabbix server ~]# egrep "^[^#|^;]" /usr/share/doc/freetds-libs-1.3.3/samples-odbc/odbc.ini
[ODBC Data Sources]
JDBC = Sybase JDBC Server
[JDBC]                                           # 数据源名称
Driver          = /usr/local/lib/libtdsodbc.so   # 数据库驱动程序名称
Description     = Sybase JDBC Server             # 数据源描述
Trace           = No                             
Servername      = JDBC
Database        = pubs2
UID             = guest
[Default]
Driver          = /usr/local/lib/libtdsodbc.so
[MSSQL]                             # 数据源名称
Driver = FreeTDS                      # 数据库驱动程序名称
Server = zeny.database.windows.net    # 数据库服务器 IP/DNS
Port = 1433                           # 数据库连接端口
Database = zeny                       # 数据库名称
TDS_Version = 8.0                     # 数据库版本
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
相关参数详解:
     
   
    
    
    5.ODBC验证
   
验证ODBC连接是否正常工作,应该测试到数据库的连接,这可以通过isql实用程序(包含在unixODBC包中)如下所示:
#通过账号密码测试:(如下所示成功)
__________________________________________________________________________________________________________________________________________
shell> tsql -S zeny.database.windows.net -U admin-zeny
Password: 
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> SELECT Name from sys.databases;      #查看所有库
2> go
Name
master
zeny
(2 rows affected)
1> CREATE DATABASE zenyDB;              #创建数据库
2> go
3> SELECT Name from sys.databases;
4> go
Name
master
zeny
zenyDB
(3 rows affected)
1> quit
________________________________________________________________________________________________________________
shell> tsql -S 192.168.1.5 -U sa -P hzl@20144
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> select name from sys.databases;
2> go
name
master
tempdb
model
msdb
TESTDB
zeny
(6 rows affected)
1> 
_____________________________________________________________________________________________________________________________________________
shell> tsql -S 127.0.0.1 -U sa -P hzl@20144
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> select name from sys.databases;
2> go
name
master
tempdb
model
msdb
(4 rows affected)
1> 
#配置信息查看
[root@Zabbix server ~]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
#查看版本
shell> isql --v
unixODBC 2.3.1
#验证(只需要isql命令加上数据源名称即可)isql -v DSN <username> <password>
isql -v DSN
#测试功能信息状态
tsql -C
#显示连接信息: tsql -S DSN -U <username> -P <password>
tsql -H DSN -p 1433 -U sa -P hzl@2022
osql -S DSN -U <username> -P <password>
    
    
    6.zabbix web配置
   
zabbix配置,正常添加主机即可
注:云上资源直接使用DNS即可,有配置IP,可直接使用IP地址即可
     
   
     
   
mssql监控配置宏
注:不同的mssql,需要使用不同的DSN
     
   
     
   
sql server主机数据监控验证
     
   
     
   
mssql01主机数据监控验证
     
   
     
   
    
    
     
   
    
    
    7.MSSQL自定义项监控
   
mssql监控项添加,添加自定义监控配置
     
   
测试配置的监控项是否有误,及配置的返回值状态
     
   
数据检查:如下所示一个简单的监控配置🆗了,如有其他的需求,也可自定义配置监控
     
   
 
