@zabbix监控Sql Server 数据库及云上pass应用(ODBC监控)

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监控项添加,添加自定义监控配置
测试配置的监控项是否有误,及配置的返回值状态
数据检查:如下所示一个简单的监控配置🆗了,如有其他的需求,也可自定义配置监控
本文来自博客园,作者:ଲ小何才露煎煎饺,转载请注明原文链接:https://www.cnblogs.com/zeny/p/16631293.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库