• (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

     

  • 相关阅读:
    javascript ext 闭包
    Hibernate HQL from superclass 问题
    sql查询按in顺序排序显示数据 oracle
    Hibernate createSQLquery()
    sql 分页
    javasript 闭包测试
    Excel 批量快速导入mySQL 解决方案~~
    C# 注册COM+组件步骤~
    QT错误集锦~
    QuartzNet Test~~
  • 原文地址:https://www.cnblogs.com/wyzhou/p/10832714.html
Copyright © 2020-2023  润新知