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