SNMP告警研究与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S N M P告警研究与实现 This model paper was revised by the Standardization Office on December 10, 2020
SNMP告警研究与实现目录
一、什么是SNMP
SNMP:“简单网络管理协议”,用于网络管理的协议。

SNMP用于网络设备的管理。

SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了“读”操作;管理员需要向设备执行设置操作,所以SNMP提供了“写”操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了“Trap”操作。

二、SNMP结构概述
SNMP被设计为工作在TCP/IP协议族上。

SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。

所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。

如下图
三、SNMP支持的网管操作
对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。

如下图
1.1Get:读取网络设备的状态信息。

1.2Set:远程配置设备参数。

1.3Trap:管理站及时获取设备的重要信息。

四、SNMP的实现结构
在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为管理站,负责网管命令的发出、数据存储、及数据分析。

被监管的设备上运行一个SNMP代理(Agent)),代理实现设备与管理站的SNMP通信。

如下图
管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。

管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。

管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。

已有的设备,只要新加一个SNMP模块就可以实现网络支持。

旧的带扩展槽的设备,只要插入SNMP模块插卡即可支持网络管理。

网络上的许多设备,路由器、交换机等,都可以通过添加一个SNMP网管模块而增加网管功能。

服务器可以通过运行一个网管进程实现。

其他服务级的产品也可以通过网管模块实现网络管理,如Oracle、WebLogic都有SNMP进程,运行后就可以通过管理站对这些系统级服务进行管理。

根据管理者和被管理的设备在网络管理操作中的不同职责,SNMP定义了3种角色。

如下图
网络管理系统:又称管理站、NMS。

是系统的控制台,向管理员提供界面以获取与改变设备的配置、信息、状态、操作等信息。

管理站与Agent进行通信,执行相应的Set和Get 操作,并接收代理发过来的警报(Trap)。

代理:Agent是网络管理的代理人,负责管理站和设备SNMP操作的传递。

介于管理站和设备之间,与管理站通信并相应管理站的请求,从设备获取相应的数据,或对设备进行相应的设置,来响应管理站的请求。

代理也需要具有根据设备的相应状态使用MIB中定义的Trap向管理站发送报告的能力。

代理服务器:Proxy是一种特殊的代理,在不能直接使用SNMP协议的地方,如:异种网络、不同版本的SNMP代理等情况,Proxy代替相关设备向管理站提供一种外观,为设备代理SNMP协议的实现。

Proxy做了异种网络或不同版本代理和相应SNMP数据请求的转换工作。

如下图
五、SNMP现有版本
1.1SNMP共有v1,v2,v3这三个版本:
v1和v2都具有基本的读、写MIB功能。

v2增加了警报、批量数据获取、管理站和管理站通信能力。

v3在v2的基础上增加了USM,使用加密的数据和用户验证技术,提高了安全性。

六、Net-SNMP
1.1-snmp的安装与配置
操作系统,CentOS X86_64
软件版本,net-snmp
有两个重要的安装,、一个是net-snmp软件包,另一个是snmp的工具包。

安装命令如下
yum install -y net-snmp net-snmp-utils
1.2常用的配置选项
主配置文件:/etc/snmp/
常用定义项:
1)首选是定义一个共同体名(community),这里是public(多数SNMP设备或服务
默认都是是用public),及可以访问这个public的用户名(sec name),这里
是notConfigUser。

Public相当于用户notConfigUser的密码:) ,source 在
net-snmp中用来对来源IP加以控制,即哪些可以获取SNMP信息
# source community
com2sec notConfigUser default public
2)定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把
notConfigGroup这个用户加到这个组中。

:安全模式,可选值为v1/v2c/usm。

# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
3)定义一个可操作的范围(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这个范围做只读操作。

# group context prefix read write notif
access notConfigGroup "" any noauth exact all none none
注:
context:上下文,v1、v2c中始终为空。

:安全模式,可选值为v1/v2c/usm。

:安全级别,可选值为auth/noauth/priv,v1、v2c中只能为noauth。

prefix:前缀,指定context如何与PDU中的context匹配,v3使用。

read:授权的读视图。

write:授权的写视图。

notif:授权的trap视图。

5)端口:标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、
391、705和1993端口,net-snmp用udp 161。

1.3启动snmp
service snmpd start
1.4查看启动是否成功
[root@node1 ~]# snmpget -v 2c -c public localhost
SNMPv2-MIB:: = STRING: Linux #1 SMP Fri Feb 22 00:31:26
出现以上信息表示启动成功
七、SNMP的MIB库文件
IETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。

MIB是一个树形结构,SNMP协议消息通过遍历
MIB树形目录中的节点来访问网络中的设备。

下图给出了NMS系统中SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构。

企业的OID节点都是从.开始申请分配。

八、具体实现
1.1定义MIB告警文件
本用例主要实现CPU,内存,硬盘,网络状态的告警
1.2MIB文件内容
HW-NAT-MIB DEFINITIONS ::= BEGIN
-- Design notes:
--
-- : cpu
-- : mem
-- : disk
-- : flow
IMPORTS
OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
Integer32, Opaque, enterprises, Counter32
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString, TruthValue FROM SNMPv2-TC;
-- natinfo MODULE-IDENTITY
natinfo MODULE-IDENTITY
LAST-UPDATED "0000Z"
ORGANIZATION "Peking of China"
CONTACT-INFO
"This mib is only for fujian NAT server postal: Haiwei Cai
email"
DESCRIPTION
"trap for nat server info"
::= { enterprises 2011 }
natTraps OBJECT IDENTIFIER ::= { natinfo 1 }
natCpu NOTIFICATION-TYPE
STATUS current
DESCRIPTION
"This trap is sent when the cpu use > 70%" ::= { natTraps 1 }
natMem NOTIFICATION-TYPE
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 }
END
1.3在监控软件中导入mib文件
1.4用命令发送告警
snmptrap -v 2c -c public "" .. . s "80%"
其中:监控程序接收地址
""为代理主机名,可为空
.表示CPU告警
s表示字符串
或者指定mib库发送告警:
snmptrap -m ./mibs/ -v 2c -c public "" HW-NAT-MIB:natTraps HW-NAT-MIB: s "80%"
1.5查看告警内容
本软件为第三方软件:。

相关文档
最新文档