zoukankan      html  css  js  c++  java
  • 13 Zabbix Item类型之Zabbix ODBC类型

    点击返回:自学Zabbix之路

    13 Zabbix Item类型之Zabbix ODBC类型

    ODBC是C语言开发的、用于访问数据库的中间件接口 。

    zabbix支持查询任何ODBC支持的数据库。zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息。

    zabbix只用ubixODBC,它是最常用的开源ODBC API应用之一。

    1. 安装unixODBC

       安装方法如下:

        RedHat/Fedora/Cetnos
        shell> yum -y install unixODBC unixODBC-devel

        SUSE zypper

        # zypper in unixODBC-devel

    2. 安装unixODBC驱动

    要监控mysql等数据库必须先安装基于c开发的unixODBC数据库驱动.

    • redhat直接yum安装
    • suse使用zypper安装
    • 其他系统,源码安装

        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    数据库驱动名称.
    • 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:退出

    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. 注意事项

    • 查询语句执行时间不能超过配置的超时时间
    • 查询只允许返回一个值.
    • 如果查询语句返回了多个列,它只读取第一列
    • 如果查询语句返回了多行,它读取第一条
    • 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
    错误消息最长不能超过128字节,因此错误消息太长会被截断。

  • 相关阅读:
    SmartJS 系列规划分享和背景介绍
    SmartJS 第一期(0.1)发布
    让文档和Demo生成更加简单和强大
    SmartDoc(YUIDoc) 注释编写
    smartjs
    smartjs
    smartjs 0.3 DataManager 发布&介绍
    smartjs 0.2 OOP讲解
    smartjs 0.2 OOP讲解
    smartjs 0.2发布
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/8213254.html
Copyright © 2011-2022 走看看