13 Zabbix Item类型之Zabbix ODBC类型
13 Zabbix Item类型之Zabbix ODBC类型
ODBC是C语言开发的、用于访问数据库的中间件接口 。
zabbix支持查询任何ODBC支持的数据库。zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息。
zabbix只用ubixODBC,它是最常用的开源ODBC API应用之一。
1. 安装unixODBC
安装方法如下:
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安装
- 其他系统,源码安装
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 query | SQL语句 |
| 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字节,因此错误消息太长会被截断。
13 Zabbix Item类型之Zabbix ODBC类型的更多相关文章
- 15 Zabbix Item类型之Zabbix trapper类型
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 15 Zabbix Item类型之Zabbix trapper类型 zabbix获取数据时有时会出 ...
- 08 Zabbix Item类型之Zabbix agent类型
点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 08 Zabbix Item类型之Zabbix agent类型 Zabbix agent类型的item是使用部署在服务器端的age ...
- 09 Zabbix Item类型之Zabbix SNMP类型
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 Zabbix Item类型之Zabbix SNMP类型 SNMP是监控服务器以外设备的非常好的方式 ...
- 10 Zabbix Item类型之Zabbix IPMI类型
点击返回:自学Zabbix之路 Zabbix Item类型之Zabbix IPMI类型 一般使用zabbix IPMI 监控硬件信息,比如说温度. 在编译安装zabbix server的时候,一定要加 ...
- 11 Zabbix Item类型之Zabbix Calculated 计算型Item类型
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 11 Zabbix Item类型之Zabbix Calculated 计算型Item类型 计算类型 ...
- 12 Zabbix Item类型之Zabbix JMX类型
点击返回:自学Zabbix之路 12 Zabbix Item类型之Zabbix JMX类型 JMX 全称是Java Management Extensions,即Java管理扩展.Java程序会开放一 ...
- 14 Zabbix Item类型之Simple checks类型
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 14 Zabbix Item类型之Simple checks类型 Simple checks通常用 ...
- (82)zabbix如何选择适合的监控类型
zabbix提供十几种监控类型,包括:Zabbix agent, Simple checks, SNMP, Zabbix internal, IPMI, JMX monitoring等等,那我们应该如 ...
- item 1:理解template类型的推导
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 一些用户对复杂的系统会忽略它怎么工作,怎么设计的,但是很高兴去知道它完成的一些事.通过这 ...
随机推荐
- Luogu4528 CTSC2008 图腾 树状数组、容斥
传送门 设$f_i$表示$i$排列的数量,其中$x$表示不确定 那么$$ans=f_{1324}-f_{1432}-f_{1243}=(f_{1x2x}-f_{1423})-(f_{14xx}-f_{ ...
- Python从菜鸟到高手(1):初识Python
1 Python简介 1.1 什么是Python Python是一种面向对象的解释型计算机程序设计语言,由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版 ...
- CSharp 案例:用 Dynamic 来解决 DataTable 数值累加问题
需求说明 给定一个 DataTable,如果从中取出数值类型列的值并对其累加? 限制:不知该列是何种数值类型. 解决方案 1.将表转换为 IEnumerable<dynamic>,而后获取 ...
- 运行supervisorctl reload报错解决方法
在进行守护进程时运行supervisorctl reload出现“error: <class 'socket.error'>, [Errno 2] No such file or dire ...
- Oracle数据库设置为归档模式的操作方法
Oracle归档模式非常非常重要!对于有些数据库刚装好后可能是非归档模式,这是很危险的!为了安全起见,一定要谨记:对于Oracle数据库,一定要设置为归档模式,尤其是生产库,只有这样才能实现数据库的有 ...
- linux-shell-引用-命令替换-命令退出状态-逻辑操作符
命令替换:bash7步扩展的之一 嵌套 这里没什么意义 退出状态可以参与逻辑判断 表达式 算数表达式和条件表达式,逻辑表达式 查看passwd命令比,避免用户捕获输入密码的接口 这种方式就可以直接输 ...
- C. Maximum Subrectangle
链接 [http://codeforces.com/contest/1060/problem/C] 题意 给你两个数列,可以构成一个矩阵C,ci,j=ai⋅bj 1≤x1≤x2≤n , 1≤y1≤y2 ...
- Pair Project 1 elevator
结对编程——电梯调度 12061181 高孟烨 12061182 郝倩 1.结对编程的优缺点: 优点:结对编程可以结合两个人各自擅长之地,充分发挥两个人各自的优势,两个人一起合作效率会更高.一份工作两 ...
- 个人作业Week3
个人作业week3 一. 调研,评测 1.我的使用体验 版本:IOS版 BUG_1: 点击单词本中的“同步”后,会提示登录Microsoft账户.登录成功立即开始同步单词本.在单词本同步过程中, ...
- 《面向对象程序设计》c++第五次作业___calculator plus plus
c++第五次作业 Calculator plusplus 代码传送门 PS:这次作业仍然orz感谢一位同学与一位学长的windows帮助,同时再次吐槽作业对Mac系统用户的不友好.(没朋友千万别用Ma ...