设为首页 收藏本站
查看: 1243|回复: 0

[经验分享] Zabbix 3.2.6通过ODBC监控MySQL&Oracle

[复制链接]

尚未签到

发表于 2019-1-20 12:46:13 | 显示全部楼层 |阅读模式
  一、总览
  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.iniodbc.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
  首先创建一个监控条目。

  这几个条目是必填的,具体解释如下:
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字节,因此错误消息太长会被截断。
  三、验证
  因为我们没有创建图像,可以从最新数据库里面查看我们创建的条目。


  你可以写更加复杂的SQL查询语句,以及制作触发器来对数据库更加详细的监控。
  附录:
  以上是对监控MySQL做的监控,下面我主要简要对Oracle的监控做下介绍。
  1、下载oracle客户端
  http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
  官网下载速度比较慢,也可以到我上传到运维网下载中心的地方下载。
  http://down.运维网.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





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665598-1-1.html 上篇帖子: Zabbix 3.2.6 通过Orabbix监控Oracle数据库 下篇帖子: Zabbix(三):高级应用之
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表