几种常见数据库的SNMP代理配置
1. SQL Server数据库监控SNMP代理配置
SQL Server采用扩展代理的方式来实现SNMP代理功能,需要对注册表作相应修改。使得SNMP服务启动时可以自动加载扩展代理。
SQL Server 2000以上的版本,安装时默认都自动注册扩展代理,无须手工配置。扩展代理DLL为sqlsnmp.dll。
目前发现只有V1才能完全支持SQL Server的所有SNMP参数。其中的部分参数不支持Get Bulk导致。
对于SQL Server 2000一下的版本,手工添加扩展代理方法如下,注意区分大小写的匹配:(1)添加扩展代理注册信息
找到HKEY_LOCAL_MACHINE/
SYSTEM/
CurrentControlSet/
Services/
SNMP/
Parameter/
ExtensionAgents
新增如下字符串值:格式为:名称、类型、数值
1 : REG_SZ : SOFTWARE/Microsoft/MSSQLServer/SNMP/CurrentVersion
(2)配置扩展代理DLL对于的路径
转到HKEY_LOCAL_MACHINE/SOFTWARE
创建主键:Microsoft/MSSQLServer/SNMP/CurrentVersion
新增字符串值:Pathname:REG_EXPAND_SZ:d:/Program Files/Microsoft SQL
Server/MSSQL/BINN/sqlsnmp.dll
2. Sybase ASE数据库监控SNMP代理配置
在“第三方程序/sybase”目录下带了一个Sybase ASE12.5 的SNMP子代理,它是Net-snmp 的AgentX扩展代理。
首先需要安装和配置Net-snmp代理,并且配置Net-snmp支持agentx,简单来说就是snmpd.conf文件中有一行是“master agentx”,具体参考第3章。
2.1. Linux
3.1.1 Windows
Oracle8i:8.1.3.6
Oracle9i:2.2.4
3.1.2 Unix
Oracle8i:
Oracle9i:
3.2. 验证方法
用OID查询工具看看能否获得如下参数值:
Oracle参数:oraDbTablespaceSizeUsed 1.3.6.1.4.1.311.1.4.1.1.6.1.8,如果不能获取表示Oracle的SNMP参数不能获取;
3.3. Windows配置
SNMP版本支持,目前发现只支持SNMP V1。
3.3.1 修改Windows标准SNMP服务端口
需要将Windows标准SNMP服务端口修改为1161(snmp)、1162(snmptrap)。
具体操作参见8.1Windows标准SNMP服务端口修改。
3.3.2 修改Oracle配置文件
主代理服务配置文件master.cfg(OracleOraHome90SNMPPeerMasterAgent,在ORACLE_HOME/Network/admin目录下):
TRANSPORT ordinary SNMP
OVER UDP SOCKET
AT PORT 161 (Oracle Master Agent的服务端口)COMMUNITY public
ALLOW ALL OPERATIONS
USE NO ENCRYPTION
MANAGER localhost (Trap目标地址)
SEND ALL TRAPS
WITH COMMUNITY public
子代理兼容协议转换服务配置文件encaps.cfg在
(
ORACLE_HOME/Network/admin目录下):
AGENT AT PORT 1161 WITH COMMUNITY public (表示子代理(Windows标准SNMP 服务)使用1161端口)
SUBTREES 1.3.6.1.2.1.1,
1.3.6.1.
2.1.2,
1.3.6.1.
2.1.3,
1.3.6.1.
2.1.4,
1.3.6.1.
2.1.5,
1.3.6.1.
2.1.6,
1.3.6.1.
2.1.7,
1.3.6.1.
2.1.8,
1.3.6.1.
2.1.25, (HOSTRESOURCE-MIB,必须加入,否则不支持主机监控)
1.3.6.1.4.1.77,
1.3.6.1.
2.1
FORWARD ALL TRAPS;
注意:不支持子节点。如设置了1.3.6.1.2.1,如果需要访问1.3.6.1.2.1.25下的资源,还是需要单独设置。
3.3.3 启动
按照如下顺序启动服务,否则可能导致取值异常。
启动Oracle服务(OracleServiceORCL[ORACLE.EXE]),当已经启动时忽略此项
启动Oracle主代理(OracleOraHome90SNMPPeerMasterAgent[AGNTSVC.EXE])
启动OEM代理服务(OracleOraHome90Agent [dbsnmp.exe])
启动Oracle协议转换服务
(OracleOraHome90SNMPPeerEncapsulator[ENCSVC.EXE])启动Windows SNMP标准服务
注意:如果需要自动启动Oracle及其SNMP服务,只需要将上面的服务全部设置为“自动”则可。
3.4. Linux配置
以AS4(Linux 2.6.9-5.EL,红帽企业Linux 4)为例进行说明。
SNMP版本支持,目前发现只支持SNMP V1。
3.4.1 关闭SELinux
红帽企业Linux 4 包括了一个SELinux 的实现。SELinux 代表了用户,程序以及进程间相互交流的主要变化。在这个发行版本中,SELinux 被默认安装并被开启使用,需要关闭,否则无法正确采集主机监控信息。
正确配置如下:
[root@AS4 selinux]# more /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=Disabled (不能设置为enforcing)
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
3.4.2 安装NET-SNMP
使用如下命令可以查出安装的NET-SNMP包,rpm -qa | grep snmp
AS4自带如下NET-SNMP包:
net-snmp-libs-5.1.2-11
net-snmp-5.1.2-11
net-snmp-utils-5.1.2-11
对于别的平台,参见3.2Linux平台上的安装配置。
3.4.3 修改Linux标准SNMP服务端口(此项需要验证修改的必要性?)
保证操作系统自身的SNMP不占用标准端口(161、162),以空出给作为主代理的ORACLE 使用。
其中的配置文件为“/etc/services”,类似于Windows标准SNMP服务端口的修改。
此处设置如下:
snmp 1161/udp #SNMP (修改本地SNMP服务端口为1161,只要不是161则可) snmptrap 1162/udp snmp-trap #SNMP trap(修改本地SNMP TRAP服务端口为1162,只要不是162则可)
3.4.4 配置NET-SNMP
参见3.2.2配置Net-SNMP代理的设置。
其中必须确保已将NET-SNMP的端口设置为161以外的端口,系统缺省为161,可以在/etc/snmp/snmpd.conf中新增如下行来修改:
agentaddress 1161
注意:/usr/sbin/snmpd加载配置文件的搜索顺序是“/etc/snmp/snmpd.conf
/usr/share/snmp/snnpd.conf”
3.4.5 安装Oracle智能代理
3.4.5.1编译智能代理
(1) stop all the instances of this ORACLE_HOME,stop listener
(2) relink the agent
#relink oemagent
(3) you should find agentctl and dbsnmp in $ORACLE_HOME/bin, it's date show they are new files
3.4.5.2运行root.sh,修改dbsnmp的属性
成功安装智能代理后,必须运行root.sh脚本,以修改智能代理的权限,以更新或者是创建一份oratab文件,以保证dbsnmp能够
#cd $ORACLE_HOME/bin
#ls -al dbsnmp
-rwsr-s--- 1 root g651 1497980 Jun 12 21:04 dbsnmp
紫色部分表明已经成功执行了root.sh脚本。
3.4.5.3修改Oracle配置文件
与Windows下的Oracle配置基本相同。
主代理服务配置文件CONFIG.master:
TRANSPORT ordinary SNMP
OVER UDP SOCKET
AT PORT 161 (Oracle Master Agent的服务端口)
COMMUNITY leagsoft
ALLOW ALL OPERATIONS
USE NO ENCRYPTION
MANAGER localhost (Trap目标地址)
SEND ALL TRAPS
WITH COMMUNITY leagsoft
子代理兼容协议转换服务配置文件CONFIG.encaps:
AGENT AT PORT 1161 WITH COMMUNITY leagsoft (表示子代理(Windows标准SNMP 服务)使用1161端口)
SUBTREES 1.3.6.1.2.1.1,
1.3.6.1.
2.1.2,
1.3.6.1.
2.1.3,
1.3.6.1.
2.1.4,
1.3.6.1.
2.1.5,
1.3.6.1.
2.1.6,
1.3.6.1.
2.1.7,
1.3.6.1.
2.1.8,
1.3.6.1.
2.1.25 (HOSTRESOURCE-MIB,必须加入,否则不支持主机监控)
FORWARD ALL TRAPS;
3.4.6 启动Oracle智能代理
按照如下顺序启动服务,否则可能导致取值异常。
(1)启动Oracle主代理以及操作相同标准代理
1.首先通过如下命令来确认相应代理没有启动
#ps –d | grep snmpd
#ps –d | grep peer
2. cd $ORACLE_HOME/network/snmp/peer
3. verify that a script start_peer exists.
将start_peer中启动语句修改为
4. su root
5. ./start_peer -a (starts the Master Peer agent, the encapsulator and the native SNMP daemon, 可以使用./start_peer –help 来获得帮助信息)
可以通过如下语句来检查是否启动成功
#ps –d | grep snmpd
#ps –d | grep peer
6. Exit from root.
如果snmpd启动失败,则检查是否不支持
/usr/sbin/snmpd –c snmpd.conf –p 1161的启动方式,如果不支持,需要修改root.sh脚本,找到最后一行,去掉-p $SNMPD_PORT的命令行参数。
本AS4的应用环境就需要删除此项不支持的参数。
(2)启动智能代理
$cd ORACLE_HOME/bin
$agentctl start
Then use ps -ef|grep dbsnmp
to check the agent started successful or not.
因篇幅问题不能全部显示,请点此查看更多更全内容