本次介绍如何使用zabbix监控oracle,主要使用pyora这个python脚本来监控,具体地址可以参考https://github.com/bicofino/Pyora

我的zabbix版本为2.0.6,oracle为11g

下面是部分效果图

1、Oracle/Active user count

zabbix企业应用之监控oracle_zabbix监控

2、Oracle/Bytes sent and received via SQL*Net to Client

zabbix企业应用之监控oracle_zabbix监控_02

3、Oracle/Database CPU Time Ratio

zabbix企业应用之监控oracle_zabbix监控_03

4、Oracle/Database Wait Time Ratio

zabbix企业应用之监控oracle_zabbix monito_04

5、Oracle/Deadlocks

zabbix企业应用之监控oracle_zabbix监控_05

6、Oracle/Disk sorts ratio

zabbix企业应用之监控oracle_zabbix monito_06

7、Oracle/Hard parse ratio

zabbix企业应用之监控oracle_zabbix oracle_07

8、Oracle/Query

zabbix企业应用之监控oracle_zabbix oracle_08

9、Oracle/Size of all datafiles

zabbix企业应用之监控oracle_zabbix监控_09

10、Oracle/Size of user data (without temp)

zabbix企业应用之监控oracle_zabbix monito_10

11、Oracle/Table scan rows gotten

zabbix企业应用之监控oracle_zabbix oracle_11

12、 Oracle/Tablespace Use On SYSTEM

zabbix企业应用之监控oracle_zabbix monito_12

13、Oracle/Uptime

zabbix企业应用之监控oracle_zabbix monito_13

14、Oracle/User Transaction Per Sec

zabbix企业应用之监控oracle_zabbix监控_14

15、Oracle listen 1521 port

zabbix企业应用之监控oracle_zabbix监控_15

报警方面:

1、oracle的1521端口是否监听

2、表空间使用率

3、Oracle是否重启

4、query lock是否有

5、query session大于250

6、asm使用率

如何实现:

一、客户端

1、修改zabbix_agentd.conf文件

在zabbix_agentd.conf最后添加以下内容

UserParameter=pyora[*],/usr/local/zabbix/bin/pyora.py --username $1 --password $2 --address $3 --database $4 $5 $6 $7 $8

2、把附件的pyora.py的脚本放到/usr/local/zabbix/bin里,然后给与755权限,并修改用户与组为zabbix(注意,我的pyora.py脚本修改了一些内容,比如如果出现None的返回,我修改为0了,如果需要使用原来的脚本,请去https://github.com/bicofino/Pyora里面下载)

3、安装依赖

确保本机python在2.6以上

安装cx_Oracle与argparse

easy_install cx_Oracle
easy_install argparse

4、在oracle里创建监控oracle账户

CREATE USER ZABBIX IDENTIFIED BY 'zabbix' DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
GRANT CONNECT TO ZABBIX;
GRANT RESOURCE TO ZABBIX;
ALTER USER ZABBIX DEFAULT ROLE ALL;
GRANT SELECT ANY TABLE TO ZABBIX;
GRANT CREATE SESSION TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT UNLIMITED TABLESPACE TO ZABBIX;
GRANT SELECT ANY DICTIONARY TO ZABBIX;
GRANT SELECT ON V_$SESSION TO ZABBIX;
GRANT SELECT ON V_$SYSTEM_EVENT TO ZABBIX;
GRANT SELECT ON V_$EVENT_NAME TO ZABBIX;
GRANT SELECT ON V_$RECOVERY_FILE_DEST TO ZABBIX;

5、重启zabbix服务

ps -ef|grep zabbix|grep -v grep|awk '{print $2}'|xargs kill -9
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf

二、服务端

1、模板导入

把Template Oracle Auto Discovery导入到zabbix里(模板在附件)。

2、主机关联模板

在添加主机,并且关联模板的时候,选择“宏”

zabbix企业应用之监控oracle_zabbix监控_16

然后输入对应信息

zabbix企业应用之监控oracle_zabbix oracle_17

这样就能出图了,注意自动发现规则的时间为3600秒。