加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Zabbix 3.2.6通过ODBC监视MySQL&Oracle

发布时间:2023-08-04 14:21:03 所属栏目:MySql教程 来源:
导读:一、总览

ODBC的监控和在Zabbix前端配置数据库监控条目类型基本一致。

ODBC是用C语言编写的用于连接数据库管理系统的一个中间件,最初有微软公司研发,后来发展到各大平台。

有了ODBC的支持
一、总览
 
    ODBC的监控和在Zabbix前端配置数据库监控条目类型基本一致。
 
    ODBC是用C语言编写的用于连接数据库管理系统的一个中间件,最初有微软公司研发,后来发展到各大平台。
 
    有了ODBC的支持,Zabbix可以查询很多种数据库,因为Zabbix自己不直接去连接数据库,而是通过ODBC的接口和驱动,因此可以更加高效的去监控不同的数据库。
 
二、安装配置
 
1、编译Zabbix server
 
    要支持ODBC功能,在编译的时候需要加上--with-unixodbc,解决依赖需要安装如下软件包,
 
yum -y install unixODBC unixODBC-devel
 
2、安装unixODBC驱动
 
    驱动是用于ODBC连接数据库用的,他可以支持各式各样的驱动,在大部分的Linux发行版中的仓库中,都有这些驱动,我们安装一个MySQL的驱动,用来监控MySQL数据库。
 
yum install mysql-connector-odbc
 
3、配置unixODBC
 
    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>
 
4、配置Zabbix前端web
 
    首先创建一个监控条目。
 
Zabbix 3.2.6通过ODBC监控MySQL&Oracle
 
    这几个条目是必填的,具体解释如下:
 
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 需要我们之前查询的返回值是什么,正确的选择才会被支持
 
5、注意事项
 
查询语句执行时间不能超过配置的超时时间
 
查询只允许返回一个值.
 
如果查询语句返回了多个列,它只读取第一列
 
如果查询语句返回了多行,它读取第一条
 
SQL语句必须是 select开头,只能是查询语句.
 
SQL语句不能包含换行符
 
6、错误消息
 
    从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字节,因此错误消息太长会被截断。
 
三、验证
 
    因为我们没有创建图像,可以从最新数据库里面查看我们创建的条目。
 
Zabbix 3.2.6通过ODBC监控MySQL&Oracle
 
    你可以写更加复杂的SQL查询语句,以及制作触发器来对数据库更加详细的监控。
 
附录:
 
    以上是对监控MySQL做的监控,下面我主要简要对Oracle的监控做下介绍。
 
1、下载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
 
2、安装
 
yum localinstall oracle-instantclient11.2-*
 
3、创建本地监控
 
    安装的默认位置分别在
 
/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)
 
4、配置环境变量
 
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
 
5、配置需要的库
 
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
 
6、添加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
 
7、添加oracle数据源
 
# vim  /etc/odbc.ini  
 
[test1]
 
Driver= oracle
 
DSN= test_oracle
 
ServerName= yourname
 
UserID= basicdb
 
Password= yourpasswd
 
8、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
 
9、配置zabbix前端
 
参考文档:https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/odbc_checks
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章