zoukankan      html  css  js  c++  java
  • (15)zabbix ODBC数据库监控

    概述

    ODBC监控对应于Zabbix Web管理端中的Database monitor监控项类型。

    ODBC是用于访问数据库管理系统(DBMS)的C语言中间件APIODBC由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

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

     

    安装unixODBC驱动(同样在server上安装,用于连接远程数据库)

    安装unixODBC数据库驱动。unixODBC有一个受支持的数据库和驱动程序的列表:http://www.unixodbc.org/drivers.html. 在一些Linux发行版中,数据库驱动程序包含在包仓库中。使用yum包管理器在基于RedHat/Fedora的系统上安装MySQL数据库驱动:

    shell> yum  install  -y  mysql-connector-odbc

    配置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用于定义数据源:(该文件/etc/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 support编译Zabbix

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

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

    Zabbix Web前端配置监控项

    配置数据库的 监控项:

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

    Type

    选择数据库监控器。

    Key

    输入db.odbc.select[unique_description,data_source_name]。这里唯一的描述将用于识别触发器中的监控项等。必须按照odbc.ini中的指定设置数据源名称(DSN)。

    User name

    输入数据库用户名(如果用户在odbc.ini中指定,则可选)

    Password

    输入数据库用户密码(如果在odbc.ini中指定密码,则为可选项)

    SQL query

    输入SQL查询

    Type of information

    了解查询将返回什么类型的信息很重要,以便在此处正确选择。 使用不正确的类型的信息监控项将不受支持。

    重要信息

    • 该查询的执行时间不能超过服务器上的Timeout参数。从Zabbix 2.0.8开始,Timeout参数值也用作ODBC登录超时(请注意,根据ODBC驱动程序,登录超时设置可能会被忽略)。
    • 该查询只能返回一个值。
    • 如果查询返回多个列,则只读取第一列。
    • 如果查询返回多行,则只读取第一行。
    • SQL命令必须以select开始。
    • SQL命令不能包含任何换行符。
    • 另请参考ODBC的已知问题

    错误信息

    从Zabbix 2.0.8开始,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

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

    注意:

    目前CentOS仓库中的mysql-connector-odbc版本是8.0,可用于连接MySQL Server 8.0, 5.7, 5.6, and 5.5

    下面是整个过程:

    yum  install  unixODBC  unixODBC-devel  mysql-connector-odbc  -y

     

    vim  /etc/odbcinst.ini

    vim  odbc.ini

     

  • 相关阅读:
    ArrayList removeRange方法分析
    LinkedHashMap源码分析(基于JDK1.6)
    LinkedList原码分析(基于JDK1.6)
    TreeMap源码分析——深入分析(基于JDK1.6)
    51NOD 2072 装箱问题 背包问题 01 背包 DP 动态规划
    51 NOD 1049 最大子段和 动态规划 模板 板子 DP
    51NOD 1006 最长公共子序列 Lcs 动态规划 DP 模板题 板子
    8月20日 训练日记
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/wyzhou/p/10832714.html
Copyright © 2011-2022 走看看