概述

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

(15)zabbix ODBC数据库监控的更多相关文章

  1. 13 Zabbix Item类型之Zabbix ODBC类型

    点击返回:自学Zabbix之路 13 Zabbix Item类型之Zabbix ODBC类型 ODBC是C语言开发的.用于访问数据库的中间件接口 . zabbix支持查询任何ODBC支持的数据库.za ...

  2. 编译安装mysql和zabbix,xtrabackup数据库备份

    xtrabackup参考文章 https://www.cnblogs.com/linuxk/p/9372990.html 下载5.7的mysql 社区版包 https://cdn.mysql.com/ ...

  3. Zabbix企业级开源监控解决方案

    Zabbix企业级开源监控解决方案 目录 Zabbix企业级开源监控解决方案 一.Zabbix 1. 监控系统的必要性 2. 监控软件的作用 3. Zabbix的定义 4. Zabbix的监控原理 5 ...

  4. 【Paddy】数据库监控系列(一) - 监控理念

    很多时候,都和身边朋友聊两个问题,DBA的日常工作都是哪些?什么才是数据库方面最重要的? 我相信这两个问题的答案每个人都不会完全一样,我也是,所以这里只代表我的个人观点,并且以下的内容将围绕我的思路展 ...

  5. 6. SQL Server数据库监控 - 如何告警

    原文:6. SQL Server数据库监控 - 如何告警 常用的告警方式大致有:短信.邮件.应用程序 (beep提示,图标提示,升窗提示等),可是不能一直坐在电脑前看着应用程序,或者用脚本部署监控,根 ...

  6. 企业级数据库监控利器Lepus

    开篇介绍官方网站:http://www.lepus.cc开源企业级数据库监控系统简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能监控,让数据库监控更 ...

  7. 15 Zabbix Item类型之Zabbix trapper类型

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 15 Zabbix Item类型之Zabbix trapper类型 zabbix获取数据时有时会出 ...

  8. 给zabbix添加percona监控模板

    简单说明一下给zabbix添加的percona的监控模板. 在percona官方网站有说明怎么安装,这里记录下步骤.首先搭建好的zabbix环境. 监控插件连接 : 链接:https://pan.ba ...

  9. Zabbix 添加 WEB 监控

    添加 WEB Monitorings Web Monitoring是用来监控web程序的,可以监控到web程序的下载速度.返回码及响应时间,还支持把一组连续的web动作作为一个整体来监控. 下面我们以 ...

随机推荐

  1. 企业级应用,如何实现服务化五(dubbo综合案例)

    这是企业级应用,如何实现服务化第五篇.在上一篇企业级应用,如何实现服务化四(基础环境准备)中.已经准备好了zookeeper注册中心,和dubbo管理控制台.这一篇通过一个综合案例,看一看在企业级应用 ...

  2. 证书重复冲突问题:Command /usr/bin/codesign failed with exit code 1

    打开钥匙串 查看是否有两个identifier为相同 的证书,显然导证书的时候不知道怎么把证书导进了系统帐号,并且还重复了.把重复的证书删除就行了.

  3. Qt 进程和线程之二:启动线程

    Qt提供了对线程的支持,这包括一组与平台无关的线程类.一个线程安全的发送事件的方式,以及跨线程的信号槽的关联.这些使得可以很容易地开发可移植的多线程Qt应用程序,可以充分利用多处理器的机器.多线程编程 ...

  4. [JSOI2009]密码

    Description Input Output Sample Input 10 2 hello world Sample Output 2 helloworld worldhello HINT 一看 ...

  5. hdu6311( 2018 Multi-University Training Contest 2)

    bryce1010模板 http://acm.hdu.edu.cn/showproblem.php?pid=6311 从dls思路中,我整理一下自己的思路: 1.首先也是建图 2.建图结束后,一个df ...

  6. System.TypeInitializationException: 'The type initializer for 'MySql.Data.MySqlClient.Replication.ReplicationManager' threw an exception.'

    下午在调试的时候报错数据库连接就报错我就很纳闷后面用原来的代码写发现还是报错 System.TypeInitializationException: 'The type initializer for ...

  7. IE和火狐下的iframe刷新

    前面使用了前端上传插件plupload,在谷歌浏览器中运行完全没问题,但是在IE和火狐下就出现当文档加载完成之后,该文件上传的iframe插件的上传按钮点击无效,当对上传的文件进行一次删除之后,按钮就 ...

  8. java.lang.ClassCastException android.widget.RelativeLayout LayoutParams 异常

    1.在xml布局文件如下所示: <RelativeLayout android:layout_width="match_parent" android:layout_heig ...

  9. OutOfMemory

    查看图片格式,如果为PNG,可更改为jpg.图片会变小. 停止activity 当activity调用onStop()方法, activity不再可见,并且应该释放那些不再需要的所有资源.一旦acti ...

  10. Chisel语言

    1 What is Chisel?      Chisel(Constructing Hardware In a Scala Embedded Language)是一种嵌入在高级编程语言Scala的硬 ...