zabbix ODBC 数据库监控

ODBC是C语言开发的、用于访问数据库的中间件接口.zabbix支持查询任何ODBC支持的数据库.zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息.

1. 安装unixODBC

官方主页:http://www.unixodbc.org/download.html.安装方法如下

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安装.其他系统,源码安装,官方地址:http://www.unixodbc.org/drivers.html.

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字节,因此错误消息太长会被截断.

原文地址:http://blog.51cto.com/13120271/2064230

时间: 2024-11-11 15:02:23

zabbix ODBC 数据库监控的相关文章

利用Zabbix ODBC monitoring监控SQL Server

利用Zabbix ODBC monitoring监控SQL Server 1. 创建群组ODBC Templates 2. 创建Template SQL Server和Template MySQL 3. 在Zabbbix上安装unixODBC shell> yum -y install unixODBC unixODBC-devel 4. 在Zabbix上安装对应数据库的unixODBC驱动 unixODBC有一个支持的数据库和驱动列表: http://www.unixodbc.org/driv

利用Zabbix ODBC monitoring监控MySQL

利用Zabbix ODBC monitoring监控MySQL 1. 创建群组ODBC Templates 2. 创建Template SQL Server和Template MySQL 3. 在Zabbbix上安装unixODBC shell> yum -y install unixODBC unixODBC-devel 4. 在Zabbix上安装对应数据库的unixODBC驱动 unixODBC有一个支持的数据库和驱动列表: http://www.unixodbc.org/drivers.h

zabbix学习笔记4-ODBC数据库监控

ODBC是C语言开发的.用于访问数据库的中间件接口,zabbix支持查询任何ODBC支持的数据库,zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等 安装unixODBC yum install unixODBC unixODBC-devel -y 安装unixODBC驱动 要监控mysql等数据库必须先安装基于c开发的unixODBC数据库驱动 redhat直接yum安装 yum install mysql-connector-odbc 配置unixODBC 配置odbcinst

zabbix专题:第十一章 zabbix proxy分布式监控配置

zabbix专题:第十一章 zabbix proxy分布式监控配置             对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.co zabbix proxy分布式监控配置 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式.分

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

很多时候,都和身边朋友聊两个问题,DBA的日常工作都是哪些?什么才是数据库方面最重要的? 我相信这两个问题的答案每个人都不会完全一样,我也是,所以这里只代表我的个人观点,并且以下的内容将围绕我的思路展开,希望对大家有或多或少的帮助. Q1:DBA的日常工作都是哪些? A: 数据库的安装部署 数据库监控 数据库优化 数据库故障处理 其他 Q2:什么才是数据库方面最重要的? A: 稳定性 很多公司,DBA和管理的DB数量比,1:10算少的,1:50都不算多,1:100也见过,数据库的优化.高可用.监

zabbix web scenario 监控Web站点的可用性

Zabbix也可以监控Web站点的可用性.前提是安装Zabbix时启用了libcurl支持. 要使用Web监控,首先需要定义Web Scenario.而每个Web Scenario有一个或者多个 "Http 请求"或者 "Steps"构成.Zabbix根据定义的顺序定期的执行步骤. 在一个Web Scenario中,搜集到的信息包含一下几种: 1. 整个web场景所有步骤的平均下载速度(每秒) 2. 执行出错的步骤(steps)编号 3. 最近的错误信息 而在每一个

《Zabbix企业级分布式监控系统》预售

<Zabbix企业级分布式监控系统>预售 一.预售网站链接如下 网站名称 链接 亚马逊 http://www.amazon.cn/3/dp/B00MN6QEYK 当当 京东 二.书籍封面如下 三.该书相关信息如下 本书的读者QQ群: Zabbix企业级分布式监控 271659981 (可申请加入,验证码:Zabbix监控) 四.随书资料 随书所带的附件托管在github上面,完全开源. https://github.com/itnihao/zabbix-book 五.书籍目录如下 第一部分Za

zabbix 3.0 监控的安装

Zabbix安装文档 zabbix进程构成 默认情况下zabbix包 含5个程序:zabbix_agentd.zabbix_get.zabbix_proxy.zabbix_sender. zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装.下面来分别介绍下他们各自的作用. 进程介绍 1.zabbix_agentd客户端守护进程,此进程收集客户端数据,例如cpu负载.内存.硬盘使用情况等 2.zabbix_getzabbix工具,单独使用的命令,通常

Zabbix 3.0 监控MySQL [六]

Zabbix 3.0 监控MySQL [六] 2016年10月9日18:25:29 zabbix 笔者QQ:381493251 博客地址:www.abcdocker.com 微信公众号:abcdocker Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体! Mysql监控 zabbix自带了一个监控mysql的模板,但是真正监控mysql的并不是zabbix自带的模板.而是percona公司的一个监控mysql模板 percona官网: www