Zabbix 使用 ODBC 监控 MySQL
实验平台:
CentOS Linux release 7.9.2009 (Core)
zabbix_server Version:
zabbix_server (Zabbix) 6.0.6
ODBC监控对应于Zabbix Web管理端中的数据库监控器监控项类型。
ODBC是用于访问数据库管理系统(DBMS)的C语言中间件API。ODBC由Microsoft开发,后来移植到其它平台。
Zabbix可以查询ODBC支持的任何数据库。为了实现监控,Zabbix不直接连接到数据库,而是使用ODBC中设置的ODBC接口和驱动。该功能允许为多个目的更加有效地监控不同的数据库 - 例如,监控特定的数据库队列、使用统计信息等。 Zabbix支持unixODBC,它是最常用的开源ODBC API实现之一。
:star: 前提使用 zabbix
需要启用 ODBC
支持,使用 --with-unixodbc
此进行编译
1 安装 unixODBC
和 unixODBC
驱动
$ sudo yum -y install unixODBC unixODBC-devel mysql-connector-odbc
2 配置 unixODBC
2.1 查看 odbc
默认配置文件位置
$ odbcinst -j
#查看 odbc 默认配置文件位置
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
#odbcinst.ini 用于列出已安装的 ODBC 数据库驱动程序
SYSTEM DATA SOURCES: /etc/odbc.ini
#odbc.ini 用于定义数据源
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/jarbo/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
2.2 odbcinst.ini
[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
2.3 odbc.ini
$ sudo vim /etc/odbc.ini
#新增数据源
[mysql01]
数据源名称 (DSN)
Description = MySQL Monitor
#数据源描述
Driver = mysql
#数据库驱动名称。 - 被指定在文件 odbcinst.ini
Server = 10.0.0.91
#数据库ip
User = zabbix
#数据库用户
Password = *****
#数据库密码
Port = 3306
#数据库端口
Database = zabbix
#数据库名称
#sock = /data/mysql/run/mysql.sock
2.4 验证数据源
$ isql -v mysql01
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
3 配置 Zabbix
Type #类型选择数据库监控
Key #db.odbc.select[<unique short description>,<dsn>,<connection string>]
#db.odbc.select #是必填,不能修改
#<unique short description> #简短描述,可随意。列如当前连接数就写为 Threads_connecyed
#<dsn> #数据源,配置在 odbc.ini 中的名称,比如本文中的数据源名称就是 mysql01
#<connection string> #连接字符串,选填
用户名称 #数据库用户名(如果用户在odbc.ini中指定了这里就可以忽略,也可以用宏变量得形式)
密码 #数据库密码(如果用户在odbc.ini中指定了这里就可以忽略,也可以用宏变量得形式)
SQL 查询 #需要监控数值的 SQL 语句
重要信息
- 该查询的执行时间不能超过服务器上的[Timeout]参数。从Zabbix 2.0.8开始,[Timeout]参数值也用作ODBC登录超时(请注意,根据ODBC驱动程序,登录超时设置可能会被忽略)。
- 该查询只能返回一个值。
- 如果查询返回多个列,则只读取第一列。
- 如果查询返回多行,则只读取第一行。
- SQL命令必须以
select
开始。 - SQL命令不能包含任何换行符。
错误信息
从Zabbix 2.0.8开始,ODBC错误消息被构造为字段以提供更详细的信息。示例:
Cannot execute ODBC query:[SQL_ERROR]:[42601][7][ERROR: syntax error at or near ";"; Error while executing the query]|
------------------------- --------- ----- | ------------------------------------------------------------------- |
| | | `- Native error code `- error message. `- Record separator
| | `-SQLState
`- Zabbix message `- ODBC return code
请注意,错误消息长度限制为2048字节,因此消息可以被截断。如果有多个ODBC诊断记录,Zabbix会尝试把它们连起来,只要长度限制允许。
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1184 0 2023-02-16
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2024-12-28
今日天气
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:12条
- 本站总访问量 353109 次
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...