Zabbix 通过pyora监控oracle
Zabbix 通过pyora监控oracle
1.oracle客户端的安装
从oracle官方网站上下载客户端,devel和sqlplus程序或者从以下网址下载 http://pan.uu456.com/s/1mgx8Fsk
以root用户安装
rpm –ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm –ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
rpm –ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
vim /root/.bashrc 添加
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export TNS_ADMIN=/usr/lib/oracle/11.2/client64/network/admin
export PATH=$PATH:$ORACLE_HOME/bin
设置好环境变量之后执行
source /root/.bashrc
创建文件 /etc/ld.so.conf.d/oracle.conf添加
/usr/lib/oracle/11.2/client64/lib
执行命令 ldconfig
创建连接文件
在ORACLE_HOME目录下创建以下目录network/admin,并创建文件tnsnames.ora,内容如下:
vim /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521)) )
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
测试
执行
[root@Monitor ~]# sqlplus system/admin@orcl
SQL*Plus: Release 11.2.0.4.0 Production on Thu May 8 14:25:07 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
测试成功!
注:
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
说明环境变量没有生效!
SQL> conn system/oracle@depdb1
ERROR:
ORA-21561: OID generation failed
检查自己的/etc/hosts文件,修改/etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.0.10 orcl orcl
192.168.0.110 Monitor Monitor
2. python库cx_Oracle的安装
下载http://jaist.dl.sourceforge.net/project/cx-oracle/5.1.1/cx_Oracle-5.1.1-1.src.rpm或者从http://pan.uu456.com/s/1gdeLYEJ
[root@devel ~]# rpm -ivh cx_Oracle-5.1.1-1.src.rpm
1:cx_Oracle
########################################### [100%]
[root@devel ~]# cd ~/rpmbuild/SPECS
[root@devel ~]# ORACLE_HOME=/usr/lib/oracle/11.2/client64/ rpmbuild -ba cx_Oracle.spec
[root@devel ~]# cd ../RPMS/x86_64
[root@devel ~]# rpm -ivh cx_Oracle-5.1.1-1.x86_64.rpm
Preparing...
########################################### [100%]
1:cx_Oracle
########################################### [100%]
注:
因为我的系统的python版本是2.6 所以要将Oracle.spec中的python2.4改为python2.6
3.pyora下载安装
利用pyora监控oracle数据库需要用到cx_Oracle和oracle客户端,安装pyora之前请确保前两个软件安装完毕
下载pyora
[root@Monitor ~]# cd /tmp/
[root@Monitor tmp]#git clone https://github.com/bicofino/Pyora.git
Cloning into 'Pyora'...
remote: Counting objects: 17, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 17 (delta 2), reused 16 (delta 1)
Unpacking objects: 100% (17/17), done.
然后在/etc/zabbix_agentd.conf 中添加
UserParameter=pyora[*],/home/zabbix/scripts/pyora.py --username $1 --password $2 --address $3 --database $4 $5 $6 $7 $8
我是通过zabbix-server端的zabbix-agent 监控其他机器的oracle数据库,导入模板zabbix-template/Pyora.xml到你的主机
{$ADDRESS} 192.168.0.1
{$DATABASE} MY_ORACLE_DATABASE
{$USERNAME} zabbix
{$PASSWORD} zabbix
{$ARCHIVE} VGDATA
{$HIGH} 90
本次介绍如何使用zabbix监控oracle,主要使用pyora这个python脚本来监控,具体地址可以参考 https://github.com/bicofino/Pyora
我的zabbix版本为2.0.6,oracle为11g
下面是部分效果图
1、 Oracle/Active user count
2、 Oracle/Bytes sent and received via SQL*Net to Client
3、Oracle/Database CPU Time Ratio
4、Oracle/Database Wait Time Ratio
5、Oracle/Deadlocks
6、Oracle/Disk sorts ratio
7、Oracle/Hard parse ratio
8、Oracle/Query
9、Oracle/Size of all datafiles
10、Oracle/Size of user data (without temp)
11、Oracle/Table scan rows gotten
12、 Oracle/Tablespace Use On SYSTEM
13、Oracle/Uptime
14、Oracle/User Transaction Per Sec
15、Oracle listen 1521 port
报警方面:
1、oracle的1521端口是否监听
2、 表空间使用率
3、 Oracle 在线时间
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;
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 memcached Auto Discovery导入到zabbix里(模板在附件)。
2、主机关联模板
在添加主机,并且关联模板的时候,选择“宏”
这样就能出图了,注意自动发现规则的时间为3600秒。
目录 返回
首页