概述

    ODBC是C语言编写的中间件API,用于访问数据库管理系统(DBMS)。ODBC是由Microsoft开发的,后来被移植到了其它平台。

    Zabbix可以查询任何支持ODBC的数据库。为此,Zabbix不直接连接数据库,而是使用ODBC接口和在ODBC中设置的驱动程序。该功能允许出于多种目的,更加有效地监视不同的数据库。例如,检测特定的数据库队列、使用统计信息等。Zabbix支持unixODBC,是最常用的开源ODBC API实现之一。

    安装unixODBC

    安装unixODBC建议的方式是使用Linux操作系统默认的软件包仓库。在最流行的Linux发行版中,unixODBC默认是包含在软件包仓库中的。如果没有,可以在unixODBC主页获取:

    使用 yum 软件包管理器在基于RedHat/Fedora的系统上安装unixODBC:

    使用 zypper 软件包管理器,在基于SUSE的系统上安装unixODBC:

    编译Zabbix以支持unixODBC功能时,需要使用到unixODBC-devel这个包。

    安装unixODBC驱动

    应该为将要被监控的数据库安装unixODBC数据库驱动。unixODBC有一个支持的数据库和驱动程序列表:http://www.unixodbc.org/drivers.html。在一些Linux发行版中,数据库驱动程序已经包含在了软件包仓库中了。使用 yum 软件包管理器,在基于RedHat/Fedora的系统上安装MySQL数据库驱动:

      使用zypper软件包管理器在基于SUSE的系统上安装MySQL数据库驱动程序:

      配置unixODBC

      通过编辑 odbcinst.iniodbc.ini 文件来完成ODBC配置。要确认配置文件位置,请键入:

      1. shell> odbcinst -j
      1. [mysql]
      2. Description = ODBC for MySQL
      3. Driver = /usr/lib/libmyodbc5.so

      参数详细信息:

      odbc.ini 用来定义数据源

      参数详细信息:

      要验证ODBC连接是否正常运行,应测试到数据库的连接。可以使用 isql 程序(包含在unixODBC软件包中):

      1. +---------------------------------------+
      2. | Connected! |
      3. | |
      4. | sql-statement |
      5. | help [tablename] |
      6. | |
      7. +---------------------------------------+
      8. SQL>

      编译支持ODBC的Zabbix

      要启用ODBC支持,Zabbix应该使用以下标志进行编译:

      1. --with-unixodbc[=ARG] use odbc driver against unixODBC package

      更多关于Zabbix安装信息请参考 。

      在Zabbix前端配置监控项

      配置数据的 监控项

      所有标有红色星号的为必填字段。

      注意事项

      • Zabbix不限制查询执行时间。 用户可以选择在合理时间内执行的查询。

      • Zabbix server的 Timeout 参数值也用作于ODBC登陆超时时间 (请注意,根据ODBC驱动,登录超时设置可能会被忽略)。

      • 查询只能返回一个值。

      • 如果查询返回多个列,则只读取第一列。

      • 如果查询返回多行,则只读取第一行。

      • SQL命令必须以select开头。

      • 另请参阅ODBC检查的

      Error messages

      错误信息

      ODBC错误消息被构造成字段,以提供详细信息。例如: