点击返回:自学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字节,因此错误消息太长会被截断。

13 Zabbix Item类型之Zabbix ODBC类型的更多相关文章

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

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

  2. 08 Zabbix Item类型之Zabbix agent类型

    点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 08 Zabbix Item类型之Zabbix agent类型 Zabbix agent类型的item是使用部署在服务器端的age ...

  3. 09 Zabbix Item类型之Zabbix SNMP类型

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 Zabbix Item类型之Zabbix SNMP类型 SNMP是监控服务器以外设备的非常好的方式 ...

  4. 10 Zabbix Item类型之Zabbix IPMI类型

    点击返回:自学Zabbix之路 Zabbix Item类型之Zabbix IPMI类型 一般使用zabbix IPMI 监控硬件信息,比如说温度. 在编译安装zabbix server的时候,一定要加 ...

  5. 11 Zabbix Item类型之Zabbix Calculated 计算型Item类型

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 11 Zabbix Item类型之Zabbix Calculated 计算型Item类型 计算类型 ...

  6. 12 Zabbix Item类型之Zabbix JMX类型

    点击返回:自学Zabbix之路 12 Zabbix Item类型之Zabbix JMX类型 JMX 全称是Java Management Extensions,即Java管理扩展.Java程序会开放一 ...

  7. 14 Zabbix Item类型之Simple checks类型

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 14 Zabbix Item类型之Simple checks类型 Simple checks通常用 ...

  8. (82)zabbix如何选择适合的监控类型

    zabbix提供十几种监控类型,包括:Zabbix agent, Simple checks, SNMP, Zabbix internal, IPMI, JMX monitoring等等,那我们应该如 ...

  9. item 1:理解template类型的推导

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 一些用户对复杂的系统会忽略它怎么工作,怎么设计的,但是很高兴去知道它完成的一些事.通过这 ...

随机推荐

  1. 性能调优之vmstat命令

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.IO读写.CPU活动等进行监视.它是对系统的整体情况进行统计,不足之处是无法对某 ...

  2. Intel x86_64 Architecture Background 3

    多层次的cache结构解决了CPU和DRAM之间处理速度不一致的问题,在Intel体系架构下,CPU核心和主存DRAM之间有着三层的cache.其中一层缓存L1和二层缓存L2在CPU核心(core)中 ...

  3. mysql大数据量下的分页

    mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 测试实验 1.   直接用limit start, count分页语句, 也是我程序中用的方法: select * from p ...

  4. FreeRTOS 任务与调度器(1)

    前言: Task.c和Task.h文件内是FreeRTOS的核心内容,所有任务和调度器相关的API函数都在这个文件中,它包括下图这些内容FreeRTOS文件如下: Task.c和Task.h文件内是F ...

  5. item 11: 比起private undefined function优先使用deleted function

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你为其他开发者提供代码,并且你想阻止他们调用一个特定的函数,你 ...

  6. 【亲测有效】无法定位链接器!请检查 tools\link.ini 中的配置是否正确的解决方案

    在进行易语言静态编译的时候,出现了如下错误: 正在进行名称连接...正在统计需要编译的子程序正在编译...正在生成主程序入口代码程序代码编译成功等待用户输入欲编译到的文件名正在进行名称连接...开始静 ...

  7. Ionic 入门与实战之第二章第二节:Ionic 环境搭建之 Ionic Lab 使用

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第二节,主要对 Ionic Lab 工具作了介绍,并讲解了其使用方法,这也是一个开发 Ionic 比较好的调试工具. 原文发表于 ...

  8. 利用阿里云的源yum方式安装Mongodb

    今天在线上服务器上安装MongoDB,从Mongo官网直接下载链接,结果在下载时发觉速度慢的可怜.迫于无奈,只能找国内的镜像下载.这里选择阿里云的源进行安装,记录如下: 1)在/etc/yum.rep ...

  9. Samba共享目录的多用户权限设置案例

    下面根据实际工作中遇到的一个共享目录的多用户权限需求案例来说明下Samba用户权限的设置. 一.需求场景领导:李一(liyi)正式员工(zhengshiyuangong):刘二二(liuerer).于 ...

  10. android开发之Tabhost刷新

    在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次 ...