Zabbix ODBC监控MYSQL
概述
ODBC监控对应于Zabbix前端中的 数据库监视器 监控项类型。
ODBC是C语言编写的中间件API,用于访问数据库管理系统(DBMS)。ODBC是由Microsoft开发的,后来被移植到了其它平台。
Zabbix可以查询任何支持ODBC的数据库。为此,Zabbix不直接连接数据库,而是使用ODBC接口和在ODBC中设置的驱动程序。该功能允许出于多种目的,更加有效地监视不同的数据库。例如,检测特定的数据库队列、使用统计信息等。Zabbix支持unixODBC,是最常用的开源ODBC API实现之一。
安装unixODBC
安装unixODBC建议的方式是使用Linux操作系统默认的软件包仓库。在最流行的Linux发行版中,unixODBC默认是包含在软件包仓库中的。如果没有,可以在unixODBC主页获取:http://www.unixodbc.org/download.html
使用 yum 软件包管理器在基于RedHat/Fedora的系统上安装unixODBC:
shell> yum -y install unixODBC unixODBC-devel
使用 zypper 软件包管理器,在基于SUSE的系统上安装unixODBC:
# zypper in unixODBC-devel编译Zabbix以支持unixODBC功能时,需要使用到unixODBC-devel这个包。
安装unixODBC驱动
应该为将要被监控的数据库安装unixODBC数据库驱动。unixODBC有一个支持的数据库和驱动程序列表:http://www.unixodbc.org/drivers.html。在一些Linux发行版中,数据库驱动程序已经包含在了软件包仓库中了。使用 yum 软件包管理器,在基于RedHat/Fedora的系统上安装MySQL数据库驱动:
shell> yum install mysql-connector-odbc
使用zypper软件包管理器在基于SUSE的系统上安装MySQL数据库驱动程序:
zypper in MyODBC-unixODBC
配置unixODBC
通过编辑 odbcinst.ini 和 odbc.ini 文件来完成ODBC配置。要确认配置文件位置,请键入:
shell> odbcinst -j
odbcinst.ini 用于列出已安装的ODBC数据库驱动程序:
[mysql] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc5.so
参数详细信息:
| 属性 | 描述 |
|---|---|
| mysql | 数据库驱动名称 |
| Description | 数据库驱动描述 |
| Driver | 数据库驱动程序库位置 |
odbc.ini 用来定义数据源
[test] Description = MySQL test database Driver = mysql Server = 127.0.0.1 User = root Password = Port = 3306 Database = zabbix
参数详细信息:
| 属性 | 描述 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| test | 数据源名称(DSN) | ||||||||||||
| Description | 数据源描述. | ||||||||||||
| Driver | 数据库驱动名称 - 在odbcinst.ini文件中指定 | ||||||||||||
| Server | 数据库服务器的IP/源代码。
在Zabbix前端配置监控项配置数据的 监控项
所有标有红色星号的为必填字段。 对数据库监控,必须输入的监控项:
注意事项
Error messages错误信息ODBC错误消息被构造成字段,以提供详细信息。例如: Cannot execute ODBC query: [SQL_ERROR]:[42601][7][ERROR: syntax error at or near ";"; Error while executing the query]
└───────────┬───────────┘ └────┬────┘ └──┬──┘└┬┘└─────────────────────────────┬─────────────────────────────────────┘
│ │ │ └─ Native error code └─ Native error message
│ │ └─ SQLState
└─ Zabbix message └─ ODBC return code
请注意,错误消息长度限制为2048字节,因此信息可以被截断。如果有多个ODBC诊断记录,只要长度限制允许,Zabbix将尝试把它们连接起来(用“|”分隔)。 相关 |
