随着机器数量的增长,管理员不能像过去那样,一台台机器进行监控、解决问题,而需要借助各方工具进行统一监控和管理。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。 在这里,我不想讲太多原理性的东西,网上有大堆的资料可以参考(附录中有链接),下面仅说明关键内容,并提供Linux 和 Windows 环境下snmp实现的方法。
三、SNMP协议一些操作 基本的SNMP协议操作只有4种:get(获取)、get_next(获取下一个)、set(设置)和trap(陷阱)。 get 和 set 是从节点读取数据和把数据写入节点的基本操作,节点以OID方式说明。 get-next 用于在MIB 层次结构上步进。 trap 是从服务器(代理程序)到客户机(管理器)的一个主动提供的异步通知,在出现特定的事情或状态时,它会报告。SNMP协议已经定义了若干标准的trap操作,例如“I have just come up”(刚启动),还有报告网络链路故障或已修复,路由或身份认证等的trap,这取决于agent程序的实现。
# First, map the community name "public" into a "security name" # sec.name source community # 设置允许某个IP,通过opendata作为密码进行访问 com2sec notConfigUser 192.168.228.149 opendata #### # Second, map the security name into a group name: # groupName securityModel securityName # 设置组及验证的方式 group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser #### # Third, create a view for us to let the group have rights to: # Make at least snmpwalk -v 1 localhost -c public system fast again. # 用view 设置视图,定义允许访问的信息范围 # name incl/excl subtree mask(optional) # view systemview included .1.3.6.1.2.1.1 # view systemview included .1.3.6.1.2.1.25.1.1 view all included .1 80 #### # Finally, grant the group read-only access to the systemview view. # group context sec.model sec.level prefix read write notif # 最后用access 把上面的三项连接起来 #access notConfigGroup "" any noauth exact systemview none none # 这里的all 表示允许访问全部信息 access notConfigGroup "" any noauth exact all none none
# ./snmp_setup Please input client IP: ( Which admit connect to this machine) 允许连接的管理端机器IP Please input community password: 连接用的密码 Please input system location: 该服务器的描述 Please input system contact: 该服务器的描述 ******************************************* Client IP: 允许连接的管理端机器IP Community password: 连接用的密码 System location: 该服务器的描述 System contact: 该服务器的描述 ******************************************* Do you confirm upper information(Yes/No): Yes to continue,No or other words will exit ! 输入Yes或yes保存,并启动snmpd服务,其他输入信息将退出脚本。
然后用下面的命令测试连接即可:
# snmpwalk -v 2c -c 密码 已打开snmpd服务的IP .1
七、参考资料 SNMP协议开发家园 Monitoring disk IO with Net-SNMP