1、SNMP告警研究与实现目录SNMP告警研究与实现1一、什么是SNMP2二、SNMP构造概述2三、SNMP支持网管操作21.1 Get:读取网络设备状态信息。31.2 Set:远程配备设备参数。31.3 Trap:管理站及时获取设备重要信息。3四、SNMP实现构造3五、SNMP既有版本61.1 SNMP共有v1,v2,v3这三个版本:6六、NET-SNMP61.1 .net-snmp安装与配备61.2 惯用配备选项61.3 启动snmp71.4 查看启动与否成功7七、SNMPMIB库文献7八、详细实现91.1 定义MIB告警文献91.2 MIB文献内容(HW-NAT-MIB.mib)91.3 在
2、监控软件中导入mib文献101.4 用命令发送告警101.5 查看告警内容11版本日期阐明作者V1.0-3-4创立蔡海伟一、 什么是SNMPSNMP:“简朴网络管理合同”,用于网络管理合同。SNMP用于网络设备管理。SNMP工作方式:管理员需要向设备获取数据,因此SNMP提供了“读”操作;管理员需要向设备执行设立操作,因此SNMP提供了“写”操作;设备需要在重要状况变化时候,向管理员通报事件发生,因此SNMP提供了“Trap”操作。二、 SNMP构造概述SNMP被设计为工作在TCP/IP合同族上。SNMP基于TCP/IP合同工作,对网络中支持SNMP合同设备进行管理。所有支持SNMP合同设备都
3、提供SNMP这个统一界面,使得管理员可以使用统一操作进行管理,而不必理睬设备是什么类型、是哪个厂家生产。如下图三、 SNMP支持网管操作对于网络管理,咱们面对数据是设备配备、参数、状态等信息,面对操作是读取和设立;同步,由于网络设备众多,为了能及时得到设备重要状态,还规定设备能积极地报告重要状态,这就是报警功能。如下图1.1 Get:读取网络设备状态信息。1.2 Set:远程配备设备参数。1.3 Trap:管理站及时获取设备重要信息。四、 SNMP实现构造在详细实现上,SNMP为管理员提供了一种网管平台(NMS),又称为管理站,负责网管命令发出、数据存储、及数据分析。被监管设备上运营一种SNM
4、P代理(Agent),代理实现设备与管理站SNMP通信。如下图管理站与代理端通过MIB进行接口统一,MIB定义了设备中被管理对象。管理站和代理都实现了相应MIB对象,使得双方可以辨认对方数据,实现通信。管理站向代理申请MIB中定义数据,代理辨认后,将管理设备提供有关状态或参数等数据转换为MIB定义格式,应答给管理站,完毕一次管理操作。已有设备,只要新加一种SNMP模块就可以实现网络支持。旧带扩展槽设备,只要插入SNMP模块插卡即可支持网络管理。网络上许多设备,路由器、互换机等,都可以通过添加一种SNMP网管模块而增长网管功能。服务器可以通过运营一种网管进程实现。其她服务级产品也可以通过网管模块
5、实现网络管理,如Oracle、WebLogic均有SNMP进程,运营后就可以通过管理站对这些系统级服务进行管理。依照管理者和被管理设备在网络管理操作中不同职责,SNMP定义了3种角色。如下图网络管理系统:又称管理站、NMS。是系统控制台,向管理员提供界面以获取与变化设备配备、信息、状态、操作等信息。管理站与Agent进行通信,执行相应Set和Get操作,并接受代理发过来警报(Trap)。代理:Agent是网络管理代理人,负责管理站和设备SNMP操作传递。介于管理站和设备之间,与管理站通信并相应管理站祈求,从设备获取相应数据,或对设备进行相应设立,来响应管理站祈求。代理也需要具备依照设备相应状态
6、使用MIB中定义Trap向管理站发送报告能力。代理服务器:Proxy是一种特殊代理,在不能直接使用SNMP合同地方,如:异种网络、不同版本SNMP代理等状况,Proxy代替有关设备向管理站提供一种外观,为设备代理SNMP合同实现。Proxy做了异种网络或不同版本代理和相应SNMP数据祈求转换工作。如下图五、 SNMP既有版本1.1 SNMP共有v1,v2,v3这三个版本:v1和v2都具备基本读、写MIB功能。v2增长了警报、批量数据获取、管理站和管理站通信能力。v3在v2基本上增长了USM,使用加密数据和顾客验证技术,提高了安全性。六、 Net-SNMP1.1 .net-snmp安装与配备操作
7、系统,CentOS 6.4 X86_64软件版本,net-snmp 5.5有两个重要安装,net-snmp.x86_64 、net-snmp-utils.x86_64 一种是net-snmp软件包,另一种是snmp工具包。安装命令如下yum install -y net-snmp net-snmp-utils1.2 惯用配备选项主配备文献:/etc/snmp/snmpd.conf惯用定义项:1) 首选是定义一种共同体名(community),这里是public(多数SNMP设备或服务默认都是是用public),及可以访问这个public顾客名(sec name),这里是notConfigUse
8、r。Public相称于顾客notConfigUser密码:) ,source 在net-snmp中用来对来源IP加以控制,即哪些可以获取SNMP信息# sec.name source communitycom2sec notConfigUser default public2) 定义一种组名(groupName)这里是notConfigGroup,及组安全级别,把notConfigGroup这个顾客加到这个组中。sec.model:安全模式,可选值为v1/v2c/usm。# groupName securityModel securityNamegroup notConfigGroup v1
9、notConfigUsergroup notConfigGroup v2c notConfigUser3) 定义一种可操作范畴(view)名, 这里是all,范畴是 .1 # name incl/excl subtree mask(optional)view all included .1 #表达可以查看.1节点下所有设备信息注:incl/excl:对下面MIB子树是涉及还是排除。subtree:视图中涉及MIB子树。mask:掩码4) 定义notConfigUser这个组在all这个view范畴内可做操作(即权限),这时定义了notConfigUser构成员可对.1这个范畴做只读操作。 #
10、group context sec.model sec.level prefix read write notifaccess notConfigGroup any noauth exact all none none注:context:上下文,v1、v2c中始终为空。sec.model:安全模式,可选值为v1/v2c/usm。sec.level:安全级别,可选值为auth/noauth/priv,v1、v2c中只能为noauth。prefix:前缀,指定context如何与PDU中context匹配,v3使用。read:授权读视图。write:授权写视图。notif:授权trap视图。5)
11、端口: 原则SNMP服务使用161和162端口,厂商私有实现普通使用199、391、705和1993端口,net-snmp用udp 161。1.3 启动snmpservice snmpd start1.4 查看启动与否成功rootnode1 # snmpget -v 2c -c public localhost sysDescr.0SNMPv2-MIB:sysDescr.0 = STRING:Linux 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26浮现以上信息表达启动成功七、 SNMPMIB库文献IETF规定管理信息库MIB(由中定义了可访问
12、网络设备及其属性,由对象辨认符(OID:Object Identifier)唯一指定。MIB是一种树形构造,SNMP合同消息通过遍历MIB树形目录中节点来访问网络中设备。下图给出了NMS系统中SNMP可访问网络设备对象辨认树(OID:Object Identifier)构造。公司OID节点都是从1.3.6.1.4.1开始申请分派。八、 详细实现1.1 定义MIB告警文献本用例重要实现CPU,内存,硬盘,网络状态告警1.2 MIB文献内容(HW-NAT-MIB.mib)HW-NAT-MIB DEFINITIONS := BEGIN- Design notes:- .ID.1 :cpu- .ID.
13、2 :mem- .ID.3 :disk- .ID.4 :flowIMPORTS OBJECT-TYPE,NOTIFICATION-TYPE,MODULE-IDENTITY, Integer32,Opaque,enterprises,Counter32 FROM SNMPv2-SMI TEXTUAL-CONVENTION,DisplayString,TruthValue FROM SNMPv2-TC;- natinfo MODULE-IDENTITYnatinfo MODULE-IDENTITY LAST-UPDATED 03030000Z ORGANIZATION Peking of Chin
14、a CONTACT-INFO This mib is only for fujian NAT server postal: Haiwei Cai email: DESCRIPTION trap for nat server info := enterprises natTraps OBJECT IDENTIFIER := natinfo 1 natCpu NOTIFICATION-TYPE STATUS current DESCRIPTION This trap is sent when the cpu use 70% := natTraps 1 natMem NOTIFICATION-TYP
15、E STATUS current DESCRIPTION This trap is sent when the mem use 80% := natTraps 2 natDisk NOTIFICATION-TYPE STATUS current DESCRIPTION This trap is sent when the disk use 80% := natTraps 3 natFlow NOTIFICATION-TYPE STATUS current DESCRIPTION This trap is sent when the net flow = 0 := natTraps 4 END1
16、.3 在监控软件中导入mib文献1.4 用命令发送告警snmptrap -v 2c -c public 192.168.192.1 .1.3.6.1.4.1.1.1 1.3.6.1.4.1.1.1 s 80%其中:192.168.192.1监控程序接受地址 为代理主机名,可为空1.3.6.1.4.1.1.1表达CPU告警s表达字符串或者指定mib库发送告警:snmptrap -m ./mibs/HW-NAT-MIB.mib -v 2c -c public 192.168.192.1 HW-NAT-MIB:natTraps HW-NAT-MIB:natTraps.1 s 80%1.5 查看告警内容本软件为第三方软件: