monicazhang 发表于 2016-5-22 15:00:08

zabbix ODBC之数据库监控

来源自 “ttlsa”
       ODBC是C语言开发的、用于访问数据库的中间件接口.zabbix支持查询任何ODBC支持的数据库.zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息.

1. 安装unixODBC官方主页:download.html.安装方法如下
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.
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

Description = ODBC for MySQL
Driver      = /usr/lib/libmyodbc5.so
参数详解:
属性    描述
mysql    数据库驱动名称.
Zabbix配置
Description    数据库驱动描述.
Driver    数据库驱动类库具体路径
odbc.ini范例:

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                       |
| 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:odbc.ini中定义的数据源名称.
User name数据库用户名 (可选,如果odbc.ini中已经定义)
Password数据库密码 (可选,如果odbc.ini中已经定义)
SQL querySQL语句
Type of information返回值类型,如果类型选错了,这个监控项会不可用

6. 注意事项查询语句执行时间不能超过配置的超时时间
Zabbix培训
查询只允许返回一个值.
如果查询语句返回了多个列,它只读取第一列
如果查询语句返回了多行,它读取第一条
SQL语句必须是 select开头,只能是查询语句.
SQL语句不能包含换行符

7. 错误消息从zabbix 2.08开始ODBC提供如下详细的错误信息:
Cannot execute ODBC query::|
----------------------------------   -----|------------------------------------------------------------------- |
|                  |         |    - Native error code            - error message.                      - Record separator
|                  |         -SQLState
- Zabbix message- ODBC return code


想做Nagios,iTop各种交流的,可以进入开源监控工具Nagios交流QQ群号 :476809427
页: [1]
查看完整版本: zabbix ODBC之数据库监控