Cacti关于Oracle数据库的监控
OMA10g的安装
5.1.1 介绍
OEM管理升级到10以后必须安装OMA才支持SNMP管理,而ORACLE给出的SNMP支持是到2018年,所以建议ORACLE的监控管理用12.x的版本,采用OMS/OMA的管理模式(Oracle自称是目前最全面的云管理平台),这里SNMP监控仅仅是做测试。
相关的需求和支持见下表,“?”代表未测试!
OMA版本 |
SNMP支持 |
安装OMA是否需要OMS |
SNMP支持需要单独安装 |
9.x |
Y |
N |
N |
10.x |
Y |
N |
Y |
11.x |
? |
Y |
Y |
12.x |
Y |
Y |
Y |
5.1.2 安装
Java1.6.0_35(JAVA)的安装
创建JAVA 安装目录
mkdir –p /opt /java
下载jdk-6u35-linux-x64.bin到/java目录,并赋予安装用户执行权限
chmod –R 775 /opt /java
chown –R oracle:oinstall /opt/java
执行安装
su – oracle
cd /opt/java
./jdk-6u35-linux-x64.bin
修改环境变量,使java生效
export JAVA_HOME=/opt/java/jdk1.6.0_35
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bash_profile
验证java版本为java1.6.0_35
java –version
查看oracle环境变量
cat ~/.bash_profile
export JAVA_HOME=/opt/java/jdk1.6.0_35
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/11.2.0/client_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$CLASSPATH:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export
CLASSPATH
Agent10g安装
OMA10g下载地址
http://www.oracle.com/technetwork/oem/grid-control/downloads/agentsoft-090381.html
解压缩安装文件到/tmp
/bin/mv /tmp/Linux_x86_64_Grid_Control_agent_download_10_2_0_5_0 /tmp/agent10g
chmod –R 775 /tmp/agent10g
chown –R oracle:oinstall /tmp/agent10g
修改Linux的版本识别文件
/bin/cp /etc/redhat-release /etc/redhat-release.bak
echo “red hat 5.1” > /etc/redhat-release
增加oracle账号对X server的访问权限
xhost +
切换的oracle账号,开始安装
su - oracle
cd /tmp/agent10g/linux64/agent/
./runinstaller
如下界面,点击“Next”
输入你OMA10g的安装路径,如下界面是默认路径,如果我们需要安装多个agent,可以考虑路径为$ORACLE_BASE/agent10g,这里默认点击“Next”
如下界面,取消Oracle Support选项,输入邮箱地址,点击Next。
如下界面,选中“I want to remain … …”,点击“continue”。
如下界面,安装需求检测,如果有不符合条件的修正后点击“Retry”。通过后点击“Next”。
如下界面,输入OMS主机名称和,OMS服务的端口号,这里11g和12C的版本,没有OMS服务器是无法通过的,我们是10g版本,随便输入个不存在的主机名称或者地址,点击“Next”。
如下界面,提示不能连接到OMS服务器,点击“OK”。
如下界面安装前确认相关信息,点击“Install”开始安装。
如下界面,安装完成,另外开个终端,用root用户运行提示脚本后点击“OK”。
完成后退出
修改Oracle用户的环境变量,添加:
export OMA10G_HOME=/opt/oracle/OracleHomes/agent10g
source ~/.bash_profile
SNMP获取Oracle数据
修改target.xml
取消对dbsnmp用户的加密设置。
#vim $OMA10G_HOME/sysman/emd/target.xml
#找到下面的这行(关键词:UserName),修改VALUE值和ENCRYPTED值。
#修改后:
#在此行之后添加一行密码设置,密码为DBSNMP用户密码,我这里的密码为Password01
#修改结束 :wq退出。
解除所管理数据库的dbsnmp 帐号的锁定。
#切换到oracle 用户
su - oracle
sqlplus /nolog
sql>conn /as sysdba
sql>startup
sql>ALTER USER DBSNMP ACCOUNT UNLOCK;
sql>quit
启动agent.
cd $OMA10g_HOME/bin/
./emctl start agent
启动snmp的master 及其agent.
#在启动前,要关闭所有的snmp的程序及检查相关的端口是否被占用。
ps –ef | grep snmp
ps –ef | grep snmpd
#如果存在则kill掉。
cd $OMA10G_HOME/network/snmp/peer/
su root
#是su root不是su – root。
#这里要root用户启动,root没有设置oracle环境变量,所以仍然用oracle的环境变量。
./start_peer –a
启动subagent
cd $OMA10G_HOME/bin/
./emctl start subagent
#注意这里需要检查是否成功的启动
./emctl status subagent
#如果没有成功运行,在数据库的实例中运行
emca -config centralAgent db指定相应的路径等信息即可
配置过程完成。通过snmpwalk来查看采集到的snmp的mib值。
snmpwalk -v 1 -c COMMUNITY 127.0.0.1 1.3.6.1.4.1.111
以上配置是仅通过sub agent获取数据的配置,而sub agent仅支持SNMP V1协议,不能
监控千兆网卡和10T以上硬盘,所以如果我们还有这些方面的需求,需要跳过sub agent使用SNMP直接监控这里SNMP端口已经被修改成1161.
udp 0 0 0.0.0.0:1161 0.0.0.0:* 3447/snmpd
udp 0 0 0.0.0.0:1162 0.0.0.0:* 3436/./encap_peer
Cacti添加Oracle模板
下载地址:http://docs.cacti.net/usertemplate:graph:oracle
上传snmp_queries目录中文件到$CACTI/resource/snmp_queries
导入Templates中的图形模板和数据模板到cacti服务器如下图:
选择consoleàImport/ExportàImport Templates
点击Browse按钮选择需要导入的模板后,点击Import完成模板导入
导入后添加一个Oracle Host主机模板方便以后添加,如下图:
Cacti监控Oracle数据库效果图
相关配置文件位置
实际监控中,我们需要指定监控服务器地址和监控社区的名称,通过修改以下文件完成
$OMA10G_HOME/network/snmp/peer/CONFIG.master
$OMA10G_HOME /network/snmp/peer/CONFIG.encap
$OMA10G_HOME /network/snmp/peer/start_peer
$OMA10G_HOME /network/snmp/peer/snmp.conf #subagent配置文件
/etc/snmp/conf/snmpd.conf #master agent配置文件
附1:cacti获取Oracle数据思维导示图
附2:oracle SNMP监控示意图
附3. Oracle OID tree示意图
附4:OMS/OMA SNMP管理示意图