• Zabbix ODBC监控MYSQL


    概述

    ODBC监控对应于Zabbix前端中的 数据库监视器 监控项类型。

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

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

    安装unixODBC

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

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

    shell> yum -y install unixODBC unixODBC-devel

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

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

    安装unixODBC驱动

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

    shell> yum install mysql-connector-odbc

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

    zypper in MyODBC-unixODBC

    配置unixODBC

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

    shell> odbcinst -j

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

    [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

    参数详细信息:

    属性描述
    test 数据源名称(DSN)
    Description 数据源描述.
    Driver 数据库驱动名称 - 在odbcinst.ini文件中指定
    Server 数据库服务器的IP/DNS
    User 用于数据库连接的用户名
    Password 数据库用户的密码
    Port 数据库连接端口
    Database 数据库名称

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

    shell> isql test
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>

    编译支持ODBC的Zabbix

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

      --with-unixodbc[=ARG]   use odbc driver against unixODBC package
    更多关于Zabbix安装信息请参考 源代码

    在Zabbix前端配置监控项

    配置数据的 监控项

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

    对数据库监控,必须输入的监控项:

    Type 这里选择 数据库监控器
    Key 输入 db.odbc.select[unique_description,data_source_name]
    这里唯一的描述将用于识别触发器中的监控项等
    数据源名称 (DSN)必须按照odbc.ini中指定的方式设置。
    User name 输入数据库用户名 (如果用户在odbc.ini中已指定,此项可选填)
    Password 输入数据用户密码 (如果用户在odbc.ini中已指定,此项可选填)
    SQL query 输入SQL查询
    Type of information 了解查询返回的信息类型很重要, 以便在此处选择正确的类型。若使用不正确的 信息类型 监控项将不受支持。

    注意事项

    • Zabbix不限制查询执行时间。 用户可以选择在合理时间内执行的查询。
    • Zabbix server的 Timeout 参数值也用作于ODBC登陆超时时间 (请注意,根据ODBC驱动,登录超时设置可能会被忽略)。
    • 查询只能返回一个值。
    • 如果查询返回多个列,则只读取第一列。
    • 如果查询返回多行,则只读取第一行。
    • SQL命令必须以select开头。
    • SQL命令不能包含任何换行符。
    • 另请参阅ODBC检查的 已知问题

    Error messages

     

    错误信息

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

    Cannot execute ODBC query: [SQL_ERROR]:[42601][7][ERROR: syntax error at or near ";"; Error while executing the query]
    └───────────┬───────────┘  └────┬────┘ └──┬──┘└┬┘└─────────────────────────────┬─────────────────────────────────────┘
                │                   │         │    └─ Native error code            └─ Native error message
                │                   │         └─ SQLState
                └─ Zabbix message   └─ ODBC return code

    请注意,错误消息长度限制为2048字节,因此信息可以被截断。如果有多个ODBC诊断记录,只要长度限制允许,Zabbix将尝试把它们连接起来(用“|”分隔)。

  • 相关阅读:
    [super dealloc]内存释放的先后顺序
    NSString的常用方法
    Xcode开发技巧之code snippets(代码片段)
    关于oc运行时 isa指针详解
    ios快捷键
    自动释放池的使用
    【字典树】统计难题
    数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
    字典树模板
    数据结构实验之串三:KMP应用
  • 原文地址:https://www.cnblogs.com/A121/p/14969271.html
Copyright © 2020-2023  润新知