使用cacti 监控oracle 10g 2010年12月成功。
有问题可以给我留言,大家可以一起讨论。
首先安装cacti请参照上面的文章,就能够解决问题。
安装oracle10g推荐一篇文章:http://fantlam.blogbus.com/logs/43410551.html
写的非常详细。
然后主要来说cacti监控oralce 10g的一些方法。
cacti 版本:0.8.7.e
os版本: centos 5.4
目的:
使用标准的snmp协议,采集oracle 10g database的性能指标值。
安装说明:
在oracle 9i(含)之前,在数据库安装完成后,在ORACLE_HOME/network/snmp/。就有现成的脚本。按照oracle的文档,start_peer –a 后,再加上agentctl start后,就可以了。
本文说明的是在oracle 10g 上,如何启动oracle对snmp的支持。为什么这样讲呢,是因为当安装好oracle10g后,会发现,按照oracle的文档,以下两个目录都找不到,整个安装过程也就无法继续了。
ORACLE_HOME/network/snmp
ORACLE_HOME/sysman/snmp
为什么会出现这种问题呢,主要是由于oracle 10g开始,oracle提出了一个enterprise management Grid control server 的概念及产品。通过这个产品,可以方便的管理大量的oralce产品,当然,也包括数据库,大大的提高了管理的效率。
安装步骤
1. 下载enterprise management agent
按照oracle的grid的管理策略,如果要启动snmp,需要在被管理的机器上安装enterprise management agent.
下载地址:
http://www.oracle.com/technology/software/products/oem/htdocs/agentsoft.html
按照agent安装的机器OS版本选择。
2. 安装enterprise management agent
安装步骤1下载的文件。在这个安装过程中,如果当没有安装enterprise management Grid control serve时,在指定enterprise management Grid control serve时,可以随意指定一个IP地址。
需要说明的:enterprise management agent的安装目录尽量区别于oracle database的目录,如:agent10。
3. 修改target.xml
修改agent10g/sysman/emd/target.xml
修改前:
<Targets AGENT_TOKEN="39a54772920b8e80768cd5e10393d113e6a26dab">
<Target TYPE="oracle_emd" NAME="t5198:3872"/>
<Target TYPE="host" NAME="t5198"/>
<Target TYPE="oracle_database" NAME="vasomcdb">
<Property NAME="OracleHome" VALUE="/export/home/oracle/product/database"/>
<Property NAME="UserName" VALUE="584147f140be6a4b" ENCRYPTED="TRUE"/>
<Property NAME="MachineName" VALUE="t5198"/>
<Property NAME="Port" VALUE="1521"/>
<Property NAME="SID" VALUE="vasomcdb"/>
<Property NAME="ServiceName" VALUE="vasomcdb"/>
</Target>
</Targets>
修改后。目的:取消加密。只需要修改下面的两行。如果你设置的密码不是DBSNMP的话,将password的value改成相应的密码即可。
<Targets AGENT_TOKEN="39a54772920b8e80768cd5e10393d113e6a26dab">
<Target TYPE="oracle_emd" NAME="t5198:3872"/>
<Target TYPE="host" NAME="t5198"/>
<Target TYPE="oracle_database" NAME="vasomcdb">
<Property NAME="OracleHome" VALUE="/export/home/oracle/product/database"/>
<Property NAME="UserName" VALUE="DBSNMP" ENCRYPTED="FALSE"/>
<Property NAME="password" VALUE="DBSNMP" ENCRYPTED="FALSE"/>
<Property NAME="MachineName" VALUE="t5198"/>
<Property NAME="Port" VALUE="1521"/>
<Property NAME="SID" VALUE="vasomcdb"/>
<Property NAME="ServiceName" VALUE="vasomcdb"/>
</Target>
</Targets>
检查配置文件需要参照oracle Enterprise Manager SNMP support reference guid 官方文档。
4. 解除所管理数据库的dbsnmp 帐号的锁定。
终端执行sqlplus /nolog
sql>conn /as sysdba
sql>ALTER USER DBSNMP ACCOUNT UNLOCK;
5. 启动所管理的数据库及监听 sql>startup
6. 启动agent.即:cd agent10/bin/
./emctl start agent
7. 启动snmp的master 及其agent.
当然,在启动前,要关闭所有的snmp的程序及检查相关的端口是否被占用。
ps –ef | grep snmp
ps –ef | grep snmpd
ps –ef | grep
启动 cd Agent10/network/snmp/peer/
./start_peer –a
8. 启动subagent
cd Agent10/bin/
./emctl start subagent
注意这里需要检查是否成功的启动
./emctl status subagent
如果没有成功启动。
在数据库实例的命令下:emca -config centralAgent db
根据提示,指定management agent的路径等一些信息就可以.
{
如果缺少这个过程,当启动emctl start subagent后,虽然当时显示subagent已经启动,
但通过emctl status subagent时,就会发现subagent并没有启动.
}
9. 配置过程完成。可以通过snmp的客户端,要连接是否能采集到数据库的snmp的mib值。
snmpwalk -c public -v1 127.0.0.1 1.3.6.1.2.1.8 查看结果。
10. 下载模板和脚本
http://docs.cacti.net/usertemplate:graph:oracle
11. 将snmp_query-scripts 复制到 cacti/resource/snmp_querues/中
将所有的templates导入,然后创建新的device。
12.开始监控。
注:如果在本文中没有提到的,请参照链接中的详细信息。在此对原作者表示感谢。