麒麟系统V10 SP2 MySQL Connector unixODBC

2022-11-19 09:40:26 浏览数 (1)

Zabbix6.0 LTS ODBC 监控MySQL

ODBC介绍

  ODBC是Open Database Connect 即开发数据库互连的简称,它是一个用于访问数据库的统一界面标准。ODBC引入一个公共接口以解决不同数据库潜在的不一致性,从而很好的保证了基于数据库系统的应用程序的相对独立性。ODBC 概念由 Microsoft 开发,后来移植到其他平台。

Zabbix 可以查询 ODBC 支持的任何数据库。Zabbix 不直接连接到数据库,而是使用 ODBC 接口和在 ODBC 中设置的驱动程序。此功能允许更有效地监控不同数据库的多种用途——例如,检查特定的数据库队列、使用统计信息等。

系统版本信息

代码语言:javascript复制
cat /etc/kylin-release
nkvers
cat /proc/version

MySQL 创建监控用户

代码语言:javascript复制
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'zbx_monitor';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';

Zabbix 使用ODBC 监控数据库性能需要使用 odbc poller进程,使用StartODBCPollers参数激活 ODBC 轮询器。

代码语言:javascript复制
cat zabbix_server.conf |grep StartODBCPollers
## Option: StartODBCPollers
# StartODBCPollers=1
StartODBCPollers=10

安装 unixODBC

下载unixODBC文件 http://www.unixodbc.org/

编译unixODBC

代码语言:javascript复制
tar  -zvxf unixODBC-2.3.11.tar.gz
cd unixODBC-2.3.11
./configure --prefix=/usr/local/unixODBC-2.3.11 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
make && make install

odbcinst -j 输出配置信息

安装完成后,查看unixODBC安装情况,错误如下

#odbcinst -j

odbcinst: error while loading shared libraries: libodbcinst.so.2: cannot open shared object file: No such file or directory

解决办法

共享库文件安装到了/lib或/usr/lib目录下, 执行一下ldconfig命令

ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件.

安装 unixODBC MySQL 驱动程序

下载链接

https://downloads.mysql.com/archives/c-odbc/

下载mysql-connector-odbc二进制文件

代码语言:javascript复制
#解压mysql-connector-odbc
tar -zvxf mysql-connector-odbc-8.0.29-linux-glibc2.12-x86-64bit.tar.gz 
#拷贝文件
cp -r mysql-connector-odbc-8.0.29-linux-glibc2.12-x86-64bit /usr/local/mysqlodbc8
#设置环境变量
echo “export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysqlodbc8/lib” >>/etc/profile.
source  /etc/profile

配置 unixODBC

odbcinst.ini用于列出已安装的 ODBC 数据库驱动程序

vim /etc/odbcinst.ini

代码语言:javascript复制
[mysql]
Description = ODBC for MySQL
Driver      = /usr/local/mysqlodbc8/lib/libmyodbc8w.so
FileUsage   = 1

odbc.ini用于定义数据源

vim /etc/odbc.ini

代码语言:javascript复制
[mysqlzabbix]
Description = MySQL test database
Driver      = mysql
Server      = 127.0.0.1
User        = zbx_monitor
Password    = zbx_monitor
Port        = 3306
Database    = zabbix

odbc.ini参数详情

属性

描述

mysqlzabbix

数据源名称 (DSN)。

Description

数据源描述。

Driver

数据库驱动程序名称 - 在 odbcinst.ini 中指定

Server

数据库服务器 IP/DNS。

User

用于连接的数据库用户。

Password

数据库用户密码。

Port

数据库连接端口。

Database

数据库名称。

验证 ODBC 连接

代码语言:javascript复制
isql  mysqlzabbix

添加主机--链接“MySQL by ODBC”模板

设置宏

MySQL 最新数据

报错处理

监控项不支持提示

Support for Database monitor checks was not compiled in.

编译Zabbix 使用unixODBC功能时,添加--with-unixodbc 参数,系统需要安装 unixODBC-devel

代码语言:javascript复制
yum install  unixODBC-devel

重新编译zabbix

代码语言:javascript复制
#停止zabbix服务器
systemctl stop zabbix-server
#重新编译zabbix
/opt/zabbix-6.0.8/
./configure --prefix=/usr/local/zabbix --enable-server 
--enable-agent --with-mysql --enable-ipv6 --with-net-snmp 
--with-libcurl --with-libxml2 - --with-ssh2 --with-openipmi 
---with-unixodbc
#执行make
make

无需执行make install,不然会覆盖原有二进制文件

代码语言:javascript复制
#备份zabbix旧执行文件
mv /usr/local/zabbix/sbin/zabbix_server  /usr/local/zabbix/sbin/zabbix_server.bak
#拷贝zabbix新执行文件
cp /opt/zabbix-6.0.8/src/zabbix_server/zabbix_server /usr/local/zabbix/sbin/
#重启zabbix-server服务
systemctl  restart zabbix-server

Zabbix 官方文档

https://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/odbc_checks

0 人点赞