概述

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

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

    安装unixODBC

    安装unixODBC的建议方法是使用Linux操作系统的默认软件包存储库。在流行的Linux发行版中,unixODBC默认包含在软件包存储库中。如果不可用,可以在unixODBC主页获取:.

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

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

    1. # zypper in unixODBC-devel

    unixODBC-devel包需要使用unixODBC support来编译Zabbix。

    安装unixODBC驱动

    应该为将要被监控的数据库安装unixODBC数据库驱动。 unixODBC有一个受支持的数据库和驱动程序的列表:: . 在一些Linux发行版中,数据库驱动程序包含在包存储库中。使用yum包管理器在基于RedHat/Fedora的系统上安装MySQL数据库驱动:

    1. shell> yum install mysql-connector-odbc

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

    配置unixODBC

      odbcinst.ini用于列出已安装的ODBC数据库驱动程序:

      1. [mysql]
      2. Description = ODBC for MySQL
      3. Driver = /usr/lib/libmyodbc5.so

      参数详细信息:

      odbc.ini用于定义数据源:

      参数详细信息:

      要验证ODBC连接是否正常工作,应测试与数据库的连接。 可以使用isql实用程序(包含在unixODBC包中):

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

      使用ODBC support编译Zabbix

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

      1. --with-unixodbc[=ARG] 使用odbc驱动程序与unixODBC

      源代码查看Zabbix安装的更多信息。

      在Zabbix Web前端配置监控项

      配置数据库的 监控项:

      专用于数据库监控项的必要输入:

      重要信息

      • 该查询的执行时间不能超过服务器上的Timeout参数。从Zabbix 2.0.8开始,参数值也用作ODBC登录超时(请注意,根据ODBC驱动程序,登录超时设置可能会被忽略)。

      • 该查询只能返回一个值。

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

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

      • SQL命令必须以开始。

      • SQL命令不能包含任何换行符。

      • 另请参考ODBC的已知问题

      错误信息

      请注意,错误消息长度限制为2048字节,因此消息可以被截断。如果有多个ODBC诊断记录,Zabbix会尝试把它们连起来,只要长度限制允许。