zabbix ODBC之数据库监控
来源自 “ttlsa”
ODBC是C语言开发的、用于访问数据库的中间件接口.zabbix支持查询任何ODBC支持的数据库.zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息. 1. 安装unixODBC官方主页:[ /download.html.]download.html.安装方法如下
RedHat/Fedora/Cetnos shell> yum -y install unixODBC unixODBC-devel SUSE zypper # zypper in unixODBC-devel
Zabbix安装
2. 安装unixODBC驱动要监控mysql等数据库必须先安装基于c开发的unixODBC数据库驱动.redhat直接yum安装,suse使用zypper安装.其他系统,源码安装,官方地址:[ /drivers.html.]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 数据库驱动名称.
Zabbix配置
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:退出 Zabbix实施 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. 注意事项查询语句执行时间不能超过配置的超时时间
Zabbix培训
查询只允许返回一个值. 如果查询语句返回了多个列,它只读取第一列 如果查询语句返回了多行,它读取第一条 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
想做Nagios,iTop各种交流的,可以进入开源监控工具Nagios交流 QQ群号 :476809427