在oracle 9i前,数据库安装完成后,在ORACLE_HOME/network/snmp/。按照oracle的文档,start_peer–a后,再agentctl start,就可以了。当安装oracle 10g后发现snmp目录已经不存在了,这是由于oracle提供了一套管理软件enterprise management Grid control server对功能进行了集成导致的。按照ORACLE官方说法,可以得到的结论是只要安装enterprise management agent这样一个代理软件便可以使用snmp了,因为在Oracle 11g R2 上安装grid control agent 11g 必须配置grid control server,尝试在Oracle 11g R2上安装grid control agent 10g发现可以安装。
1. 下载安装enterprise management agent,注意选择合适的版本
下载地址:
http://www.oracle.com/technetwork/cn/oem/grid-control/downloads/agentsoft-088763-zhs.html
我下载的版本是Linux_x86_64_Grid_Control_agent_download_10_2_0_4_0.zip,用ORACLE用户解压到/opt/software/,解压后的文件夹是/opt/software/linux_x64。
配置responseFile文件:
# vi /opt/software/linux_x64/response/additional_agent.rsp
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME="oinstall"
FROM_LOCATION="/opt/software/linux_x64/agent/stage/products.xml"
BASEDIR="/opt/oracle/" ##安装到哪个目录
b_upgrade=false
SHOW_WELCOME_PAGE=false
SHOW_NODE_SELECTION_PAGE=false
SHOW_CUSTOM_TREE_PAGE=false
SHOW_COMPONENT_LOCATIONS_PAGE=false
SHOW_SUMMARY_PAGE=false
SHOW_INSTALL_PROGRESS_PAGE=false
SHOW_REQUIRED_CONFIG_TOOL_PAGE=false
SHOW_CONFIG_TOOL_PAGE=false
SHOW_RELEASE_NOTES=false
SHOW_ROOTSH_CONFIRMATION=false
SHOW_END_SESSION_PAGE=false
SHOW_EXIT_CONFIRMATION=false
NEXT_SESSION=false
NEXT_SESSION_ON_FAIL=false
DEINSTALL_LIST={"oracle.sysman.top.agent","10.2.0.4.0"}
SHOW_DEINSTALL_CONFIRMATION=false
SHOW_DEINSTALL_PROGRESS=false
b_silentInstall=true
b_doAgentConfig=true
SHOW_XML_PREREQ_PAGE=false
SHOW_END_OF_INSTALL_MSGS=false
ACCEPT_LICENSE_AGREEMENT=true
TOPLEVEL_COMPONENT={"oracle.sysman.top.agent","10.2.0.4.0"}
SHOW_SPLASH_SCREEN=false
SELECTED_LANGUAGES={"en"}
COMPONENT_LANGUAGES={"en"}
sl_OMSConnectInfo={"omsserver","4889"} ##这里指定了一个不存在的OMS服务器及端口,omsserver是本机hostname
s_agentServiceName="GridAgent"
静默安装(oracle用户):
# cd /opt/software/linux_x64/agent/
#./runInstaller -silent -responseFile /opt/software/linux_x64/response/additional_agent_n.rsp
2. 修改target.xml,取消对dbsnmp用户的加密设置
# vim /opt/oracle/agent10/sysman/emd/target.xml
找到下面的这行,修改VALUE值和ENCRYPTED值。
<Property NAME="UserName" VALUE="584147f140be6a4b" ENCRYPTED="TRUE"/>
修改后:
<Property NAME="UserName" VALUE="DBSNMP" ENCRYPTED="FALSE"/>
在此行之后添加一行对密码的设置,密码为DBSNMP用户的密码,如我这里的密码为dbsnmp:
<Property NAME="password" VALUE="dbsnmp" ENCRYPTED="FALSE"/>
修改结束 :wq退出。
如果需要检查特殊的配置文件设置,请参照 oracle Enterprise Manager SNMP support reference guid官方文档中关于在UNIX下snmp的部分。
3. 登录数据库,解除dbsnmp帐号的锁定
SQL> ALTER USER DBSNMP ACCOUNT UNLOCK;
4. 启动oracle数据库及监听(如果数据库和监听已经启动可忽略这步)
5. 系统安装snmpd服务
6. 启动snmp的master及其agent (root用户)
在启动前,要关闭所有的snmp的程序及检查相关的端口是否被占用。
# ps –ef | grep snmp
# ps –ef | grep snmpd
如果存在则kill掉。
cd /opt/oracle/agent10/network/snmp/peer/
./start_peer –a
启动后可以用命令ps -ef|grep peer看到下面两个进程
root 30695 1 0 May28 ? 00:00:04 ./master_peer CONFIG.master NOV
root 30697 1 0 May28 ? 00:00:01 ./encap_peer -t 1162 -s 1160 -c CONFIG.encap
7. 启动subagent(root用户)
# cd /opt/oracle/agent10/bin/
# ./emctl start subagent
注意这里需要检查是否成功的启动
# ./emctl status subagent
Oracle Enterprise Manager 10g Release 4 Grid Control 10.2.0.4.0.
Copyright (c) 1996, 2007 Oracle Corporation. All rights reserved.
Sub agent is running.
如果没有成功运行,在数据库的实例中运行emca -config centralAgent db指定相应的路径等信息即可。
8. 通过加载oracle mib文件显示oid对应的名字解释
把下载的ORADB-MIB.txt和RDBMS-MIB.txt加入到mib目录/usr/share/snmp/mibs,再把export MIBS=ALL 加入到/root/.bash_profile中,source一下即可。
9. 配置过程完成。通过snmpwalk来查看采集到的snmp的mib值。
# snmpwalk -v 1 -c public 127.0.0.1 1.3.6.1.4.1.111
参考:
http://www.cnblogs.com/wanpengcoder/archive/2010/12/26/1917137.html
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1629519
Oracle mibs库下载地址:
http://www.oidview.com/mibs/111/md-111-1.html
Oracle Enterprise Manager GridControl 的详细配置,可以参考: