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

[经验分享] zabbix ODBC 数据库监控

[复制链接]

尚未签到

发表于 2019-1-18 12:38:04 | 显示全部楼层 |阅读模式
ODBC是C语言开发的、用于访问数据库的中间件接口.zabbix支持查询任何ODBC支持的数据库.zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息.
1. 安装unixODBC
官方主页:http://www.unixodbc.org/download.html.安装方法如下
RedHat/Fedora/Cetnos
shell> yum -y install unixODBC unixODBC-devel

SUSE zypper
# zypper in unixODBC-devel
2. 安装unixODBC驱动
要监控mysql等数据库必须先安装基于c开发的unixODBC数据库驱动.redhat直接yum安装,suse使用zypper安装.其他系统,源码安装,官方地址:http://www.unixodbc.org/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    数据库驱动名称.
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:退出

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 querySQL语句
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字节,因此错误消息太长会被截断.





运维网声明 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-664814-1-1.html 上篇帖子: Zabbix 全新安装教程 入门使用教程 下篇帖子: centos 6.6安装zabbix3.0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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