1、总览html
ODBC的监控和在Zabbix前端配置数据库监控条目类型基本一致。前端
ODBC是用C语言编写的用于链接数据库管理系统的一个中间件,最初有微软公司研发,后来发展到各大平台。mysql
有了ODBC的支持,Zabbix能够查询不少种数据库,由于Zabbix本身不直接去链接数据库,而是经过ODBC的接口和驱动,所以能够更加高效的去监控不一样的数据库。linux
2、安装配置web
一、编译Zabbix serversql
要支持ODBC功能,在编译的时候须要加上--with-unixodbc,解决依赖须要安装以下软件包,数据库
yum -y install unixODBC unixODBC-devel
二、安装unixODBC驱动vim
驱动是用于ODBC链接数据库用的,他能够支持各式各样的驱动,在大部分的Linux发行版中的仓库中,都有这些驱动,咱们安装一个MySQL的驱动,用来监控MySQL数据库。bash
yum install mysql-connector-odbc
三、配置unixODBC
oracle
ODBC的配置主要是经过修改odbcinst.ini和odbc.ini两个文件,能够经过下面的命令去指定配置文件的位置。
# 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.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
odbcinst.ini主要是配置安装的ODBC数据库驱动,如MySQL,oracle,各字段含义我再也不介绍。
[MySQL] # 驱动名称,在数据库文件中须要 Description = ODBC for MySQL Driver = /usr/lib/libmyodbc5.so Setup = /usr/lib/libodbcmyS.so Driver64 = /usr/lib64/libmyodbc5.so Setup64 = /usr/lib64/libodbcmyS.so FileUsage = 1
odbc.ini主要是配置数据源。
[test] # 数据源名称Data source name,在zabbix前端配置须要 Description = MySQL test database Driver = mysql # 从驱动文件odbcinst.ini获取 Server = 127.0.0.1 User = zabbix Password = zabbix Port = 3306 Database = zabbix
咱们能够经过在安装unixODBC的时候附带安装的一个命令isql来判断咱们是否能够成功的链接数据库。
# isql test +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
四、配置Zabbix前端web
首先建立一个监控条目。
这几个条目是必填的,具体解释以下:
Type | 这里咱们选择Database monitor |
Key | 选择db.odbc.select[unique_description,data_source_name] unique_description将会用于触发器中的条目data_source_name填写在odbc.ini中的test |
User name | 输入在odbc.ini中的用户名 |
Password | 输入在odbc.ini中的密码 |
SQL query | 输入SQL查询语句 |
Type of information | 须要咱们以前查询的返回值是什么,正确的选择才会被支持 |
五、注意事项
查询语句执行时间不能超过配置的超时时间
查询只容许返回一个值.
若是查询语句返回了多个列,它只读取第一列
若是查询语句返回了多行,它读取第一条
SQL语句必须是 select开头,只能是查询语句.
SQL语句不能包含换行符
六、错误消息
从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字节,所以错误消息太长会被截断。
3、验证
由于咱们没有建立图像,能够从最新数据库里面查看咱们建立的条目。
你能够写更加复杂的SQL查询语句,以及制做触发器来对数据库更加详细的监控。
附录:
以上是对监控MySQL作的监控,下面我主要简要对Oracle的监控作下介绍。
一、下载oracle客户端
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
官网下载速度比较慢,也能够到我上传到51CTO下载中心的地方下载。
http://down.51cto.com/data/2328882
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm oracle-instantclient11.2-odbc-11.2.0.3.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
二、安装
yum localinstall oracle-instantclient11.2-*
三、建立本地监控
安装的默认位置分别在
/usr/share/oracle/11.2/client64 /usr/include/oracle/11.2/client64 /usr/lib/oracle/11.2/client64
设置环境变量以前,在/usr/lib/oracle/11.2/client64下建立network/admin文件夹,
mkdir -p /usr/lib/oracle/11.2/client64/network/admin
在此文件夹下建立tnsnames.ora,其内容入下:
test_oracle= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.14)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = basicdb) ) )
在/usr/lib/oracle/11.2/client64/network/admin文件下建立sqlnet.ora,输入:
NAME_DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
四、配置环境变量
export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:$LD_LIBRARY_PATH export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
五、配置须要的库
chmod +x /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1 cd /usr/lib64/ ln -s libodbcinst.so.2.0.0 libodbcinst.so.1
六、添加oracle驱动
# vim /etc/odbcinst.ini [oracle] Description = Oracle ODBC driver for Oracle 11g Driver = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
七、添加oracle数据源
# vim /etc/odbc.ini [test1] Driver= oracle DSN= test_oracle ServerName= yourname UserID= basicdb Password= yourpasswd
八、sqlplus测试链接
# sqlplus yourname/yourpasswd@test_oracle SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 19 11:39:18 2017 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> exit
九、配置zabbix前端
参考文档:https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/odbc_checks