西数超哥博客
运维经验教程分享

zabbix ODBC数据库监控(25)

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

1. 安装unixODBC

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

RedHat/Fedora/Cetnos
 yum -y install unixODBC unixODBC-devel

 

2. 安装unixODBC驱动

要监控mysql等数据库必须先安装基于c开发的unixODBC数据库驱动。redhat直接yum安装,suse使用zypper安装.其他系统,源码安装,官方地址:http://www.unixodbc.org/drivers.html.

redhat/centos
 yum install mysql-connector-odbc

3. 配置unixODBC

配置odbcinst.ini和odbc.ini两个配置文件即可,验证配置是否正常,如下命令:
# odbcinst -j

[root@Master ~]# odbcinst -j
unixODBC 2.2.14
DRIVERS…………: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size…….: 4
SQLLEN Size……..: 4
SQLSETPOSIROW Size.: 2

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

命令解释
help:列出所有表
help tablename:查询表所有数据,类似select * from tablename
quit:退出

4.  编译支持ODBC的zabbix

一开始zanbbix安装的时候我们配置了–with-unixodbc参数,如果没有安装的朋友,请重新加上–with-unixodbc参数编译一次。

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://www.ttlsa.com/zabbix/zabbix-odbc-monitor/ 但对内容略作和改动。

 

转载请注明:西数超哥博客www.ysidc.top» zabbix ODBC数据库监控(25)

https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » zabbix ODBC数据库监控(25)