| 
 来源自 “ttlsa”  
       ODBC是C语言开发的、用于访问数据库的中间件接口.zabbix支持查询任何ODBC支持的数据库.zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息. 
 
1. 安装unixODBC官方主页:[  /download.html.]download.html.[/url]安装方法如下 
RedHat/Fedora/Cetnos 
shell> yum -y install unixODBC unixODBC-devel 
SUSE zypper 
# zypper in unixODBC-devel 
Zabbix安装  
2. 安装unixODBC驱动要监控mysql等数据库必须先安装基于c开发的unixODBC数据库驱动.redhat直接yum安装,suse使用zypper安装.其他系统,源码安装,官方地址:[  /drivers.html.]drivers.html.[/url] 
redhat/centos 
shell> yum install mysql-connector-odbc 
SUSE 
zypper in MyODBC-unixODBC 
开源监控软件 
 
3. 配置unixODBC配置odbcinst.ini和odbc.ini两个配置文件即可,验证配置是否正常,如下命令: 
# odbcinst -j 
unixODBC 2.2.14DRIVERS............: /etc/odbcinst.iniSYSTEM DATA SOURCES: /etc/odbc.iniFILE DATA SOURCES..: /etc/ODBCDataSourcesUSER DATA SOURCES..: /root/.odbc.iniSQLULEN Size.......: 8SQLLEN Size........: 8SQLSETPOSIROW Size.: 8 
odbcinst.ini范例: 
# vi /etc/odbcinst.ini 
[mysql] 
Description = ODBC for MySQL 
Driver      = /usr/lib/libmyodbc5.so 
参数详解: 
属性    描述 
mysql    数据库驱动名称. 
Zabbix配置  
Description    数据库驱动描述. 
Driver    数据库驱动类库具体路径 
odbc.ini范例: 
[test] 
Description = MySQL test database 
Driver      = mysql 
Server      = 127.0.0.1 
User        = root 
Password    = 
Port        = 3306 
Database    = zabbix 
参数详解: 
Attribute    Description 
test    数据源名称 (DSN). 
Description    数据源描述. 
Driver    数据库驱动名 - 在 odbcinst.ini指定 
Server    数据库 IP/DNS. 
User    数据库用户名. 
Password    数据库密码. 
Port    数据库端口 
Database    数据库名称. 
验证ODBC是否可用,使用isql(命令unixODBC包提供)命令,如下: 
# isql test 
+---------------------------------------+ 
| Connected!                            | 
|                                       | 
| sql-statement                         | 
| help [tablename]                      | 
| quit                                  | 
|                                       | 
+---------------------------------------+ 
SQL> 
命令解释 
help:列出所有表 
help tablename:查询表所有数据,类似select * from tablename 
quit:退出 
Zabbix实施 
 
4.  编译支持ODBC的zabbix增加ODBC的支持,需要增加如下参数.起先我没有加这个参数,我需要重新编译一次 
--with-unixodbc[=ARG]   use odbc driver against unixODBC package 
 
5.  配置监控项配置数据库监控项: 
监控软件  
Specifically for database monitoring items you must enter: 
 
 
Type  | 类型,选择监控数据库.  |  Key  | 监控项key db.odbc.select[unique_description,data_source_name] 
unique_description:描述,要唯一 
data_source_name:odbc.ini中定义的数据源名称.  |  User name  | 数据库用户名 (可选,如果odbc.ini中已经定义)  |  Password  | 数据库密码 (可选,如果odbc.ini中已经定义)  |  SQL query  | SQL语句  |  Type of information  | 返回值类型,如果类型选错了,这个监控项会不可用  |  
  
6. 注意事项查询语句执行时间不能超过配置的超时时间 
Zabbix培训  
查询只允许返回一个值. 
如果查询语句返回了多个列,它只读取第一列 
如果查询语句返回了多行,它读取第一条 
SQL语句必须是 select开头,只能是查询语句. 
SQL语句不能包含换行符 
 
7. 错误消息从zabbix 2.08开始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 
 
 
想做Nagios,iTop各种交流的,可以进入开源监控工具Nagios交流  QQ群号 :476809427  
 |