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字节,因此错误消息太长会被截断。

  • 相关阅读:
    聊聊高并发(二十)解析java.util.concurrent各个组件(二) 12个原子变量相关类
    windows curl ssl版本号编译
    扩展MSEG 加入Z字段
    HDU 1565 1569 方格取数(最大点权独立集)
    Codeforces Round #277.5 (Div. 2)
    葡萄城公布新版ActiveReports 9报表控件和报表server
    we标签
    ADO.NET (二)—— ADO和ADO .NET对照
    补:小玩文件2--将文本文件里的全部行加上行号后写到新文件里
    poj3061 Subsequence ,尺取法
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/8213254.html
Copyright © 2011-2022 走看看