当前位置:文档之家› SNMP学习笔记

SNMP学习笔记

SNMP学习笔记
SNMP学习笔记

SNMP学习笔记

https://www.doczj.com/doc/a612553978.html, 时间: 2011-01-23 作者:网络编辑:hawk 点击: 289 [ 评论 ]

SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”。SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。

目前,几乎所有的网络设备生产厂家都实现了对SNMP的支持。领导潮流的SNMP是一个从网络上的设备收集管理信息的公用通信协议。设备的管理者收集这些信息并记录在管理信息库(MIB)中。这些信息报告设备的特性、数据吞吐量、通信超载和错误等。MIB 有公共的格式,所以来自多个厂商的SNMP管理工具可以收集MIB信息,在管理控制台上呈现给系统管理员。

SNMP提供了一种统一的、跨平台的设备管理办法。

概念太抽象,先来看一个例子。

我们来做一个最简单的Snmp操作:获取一台机器的机器名,假设其IP是192.168.1.1。

首先要给192.168.1.1安装Snmp环境。Window组件的管理监视工具里包含Snmp,只需要安装一下就可以了。Snmp默认的通信端口是161/162,有的系统需要手动设置,这个可以通过创建筛选器列表来实现,具体怎么设置网上很多,大家可以去搜索一下。另外需要关闭192.168.1.1的防火墙。

接下来需要一个能够进行Snmp通信的工具,比较简单的有snmputil,大家可以去网上下载。snmputil的命令规则是:

snmputil [get|getnext|walk] agent community oid [oid ...]

[get|getnext|walk]为消息类型,我们此次进行的操作是get

agent指Snmp代理即你想进行操作的网络设备的ip或名称,即192.168.1.1

community:分区域,即密码,默认是public

oid:想要操作的MIB数据对象号,设备名称对应的MIB对象号是.1.3.6.1.2.1.1.5.0

打开命令行窗口,进入snmputil所在路径,键入

snmputil get 192.168.1.1 public .1.3.6.1.2.1.1.5.0

如果参数都正确,控制台就会显示出192.168.1.1的机器名。

不知道现在大家对snmp有没有一个感性的认识,通过get、set这样的操作,我们就可以读取、控制网络设备了。

接下来学习一下和Snmp有关的基本概念吧

代理和管理站的模型

Snmp分2种角色:SNMP管理站(manager,我们的本机127.0.0.1)和SNMP代理(agent,我们操作的机器,比如192.168.1.1)。代理是实际网络设备中用来实现SNMP功能的部分。代理在UDP的161端口接收NMS的读写请求消息,管理站在UDP的162端口接收代理的事件通告消息。所以,一旦获取设备的访问权限(community,默认为public),就可以访问设备信息、改写和配置设备参数。由于采用UDP协议,不需要在代理和管理站之间保持连接。

SNMP的操作命令

SNMP协议之所以易于使用,这是因为它对外提供了三种用于控制MIB对象的基本操作命

令。它们是:Get、Set 和Trap。

Get:管理站读取代理者处对象的值。它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。

Set:管理站设置代理者处对象的值。它是一个特权命令,因为可以通过它来改动设备的配置或控制设备的运转状态。它可以设置设备的名称,关掉一个端口或清除一个地址解析表中的项等。

Trap:代理者主动向管理站通报重要事件。它的功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题发生了。如果发生意外情况,客户会向服务器的162端口发送一个消息,告知服务器指定的变量值发生了变化。通常由服务器请求而获得的数据由服务器的161端口接收。Trap 消息可以用来通知管理站线路的故障、连接的终端和恢复、认证失败等消息。管理站可相应的作出处理。

SNMP的命令和报文

SNMP协议定义了数据包的格式,及网络管理员和管理代理之间的信息交换,它还控制着管理代理的MIB数据对象。因此,可用于处理管理代理定义的各种任务。

一条SNMP报文由三个部分组成:版本域(version field),分区域(community field)和SNMP协议数据单元域(SNMP protocol data unit field),数据包的长度不是固定的。

版本域:这个域用于说明现在使用的是哪个版本的SNMP协议。目前,version 1是使用最广泛的SNMP协议。

分区域:分区(community)是基本的安全机制,用于实现SNMP网络管理员访问SNMP 管理代理时的身份验证。类似于密码,默认值为public。分区名(Community name)是管理代理的口令,管理员被允许访问数据对象的前提就是网络管理员知道网络代理的口令。如果把配置管理代理成可以执行Trap命令,当网络管理员用一个错误的分区名查询管理代理时,系统就发送一个autenticationFailure trap报文。

PDU : 协议数据单元。是SNMP消息中的数据区,即Snmp通信时报文数据的载体。MIB : 管理信息库

管理信息数据库(MIB)是一个信息存储库,它包含了管理代理中的有关配置和性能的数据,有一个组织体系和公共结构,其中包含分属不同组的许多个数据对象。

MIB数据对象以一种树状分层结构进行组织,这个树状结构中的每个分枝都有一个专用的名字和一个数字形式的标识符。结构树的分枝实际表示的是数据对象的逻辑分组。而树叶,有时候也叫节点(node),代表了各个数据对象。在结构树中使用子树表示增加的中间分枝和增加的树叶。

使用这个树状分层结构,MIB浏览器能够以一种方便而且简洁的方式访问整个MIB数据库。MIB浏览器是这样一种工具,它可以遍历整棵MIB结构树,通常以图形显示的形式来表示各个分枝和树叶对象。可以通过其数字标识符来查找MIB中的数据对象,这个数字标识符号从结构树的顶部(或根部)开始,直到各个叶子节点(即数据对象)为止。这种访问方式和文件系统的组织方式一致。两者的主要区别在于文件系统中的路径名可以以绝对也可以以相对方式表示,而MIB数据对象只能以绝对方式表示,不能使用相对方式。

每一个节点都有一个对象标识符(OID)来唯一的标识,每个节点用数字和字符两种方式显示,其中对象标识符OID是由句点隔开的一组整数,也就是从根节点通向它的路径。一个带标号节点可以拥有包含其它带标号节点为它的子树,如果没有子树它就是叶子节点,它包含一个值并被称为对象。比如网络设备名的oid 是.1.3.6.1.2.1.1.5.0,其值为设备名称的字符串。

网络资源被抽象为对象进行管理。但SNMP中的对象是表示被管资源某一方面的数据变量。对象被标准化为跨系统的类,对象的集合被组织为管理信息库(MIB)。MIB作为设

在代理者处的管理站访问点的集合,管理站通过读取MIB中对象的值来进行网络监控。管理站可以在代理者处产生动作,也可以通过修改变量值改变代理者处的配置。

上一篇文章讲了Snmp的一些基本概念(Snmp学习笔记),接下来,我们使用Java的开源组件snmp4j来实现一下Snmp里的各种功能。首先是上一篇文章中的那个例子。即通过snmp 获取机器名。

snmp4j的jar包可以在它的官方网站https://www.doczj.com/doc/a612553978.html,/上下载,我就不啰嗦了。

接下来直接贴代码:

import java.io.IOException;

import java.util.Vector;

import https://www.doczj.com/doc/a612553978.html,munityTarget;

import org.snmp4j.PDU;

import org.snmp4j.Snmp;

import org.snmp4j.TransportMapping;

import org.snmp4j.event.ResponseEvent;

import org.snmp4j.mp.SnmpConstants;

import org.snmp4j.smi.Address;

import org.snmp4j.smi.GenericAddress;

import org.snmp4j.smi.OID;

import org.snmp4j.smi.OctetString;

import org.snmp4j.smi.VariableBinding;

import org.snmp4j.transport.DefaultUdpTransportMapping;

public class SnmpUtil {

private Snmp snmp = null;

private Address targetAddress = null;

public void initComm() throws IOException {

// 设置Agent方的IP和端口

targetAddress = GenericAddress.parse("udp:127.0.0.1/161");

TransportMapping transport = new DefaultUdpTransportMapping();

snmp = new Snmp(transport);

transport.listen();

}

public void sendPDU() throws IOException {

// 设置target

CommunityTarget target = new CommunityTarget();

target.setCommunity(new OctetString("public"));

target.setAddress(targetAddress);

// 通信不成功时的重试次数

target.setRetries(2);

// 超时时间

target.setTimeout(1500);

target.setVersion(SnmpConstants.version1);

// 创建PDU

PDU pdu = new PDU();

pdu.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 5, 0 })));

// MIB的访问方式

pdu.setType(PDU.GET);

// 向Agent发送PDU,并接收Response

ResponseEvent respEvnt = snmp.send(pdu, target);

// 解析Response

if (respEvnt != null && respEvnt.getResponse() != null) {

Vector recVBs = respEvnt.getResponse()

.getVariableBindings();

for (int i = 0; i < recVBs.size(); i++) {

VariableBinding recVB = recVBs.elementAt(i);

System.out.println(recVB.getOid() + " : " + recVB.getVariable());

}

}

}

public static void main(String[] args) {

try {

SnmpUtil util = new SnmpUtil();

util.initComm();

util.sendPDU();

} catch (IOException e) {

e.printStackTrace();

}

}

}

上面的这段代码直接参考snmp4j API说明文档中提供的例子,是一个最简单的snmp4j的应用。只要你的机器里安装了snmp通讯组件,上面的代码应该可以运行成功。

在上一个例子中,我们只做了读取的工作,接下来,我们进行一下设置操作,通过Snmp 修改读取的机器名。

public的默认权限是只读,要想进行写操作,我们必须进行手动的设置。具体的做法是:进入管理工具→服务,找到Snmp Service→属性→安全。在这个选项卡中我们可以看到public的权限是只读,你可以修改public的权限,也可以重新创建一个community。从安全角度来讲当然应该新建一个,在这里为了测试方便,我就直接给public添加写入权限了。

接下来就可以编写代码了,我把上面的例子重构一下,代码如下:

import java.io.IOException;

import java.util.Vector;

import https://www.doczj.com/doc/a612553978.html,munityTarget;

import org.snmp4j.PDU;

import org.snmp4j.Snmp;

import org.snmp4j.TransportMapping;

import org.snmp4j.event.ResponseEvent;

import org.snmp4j.mp.SnmpConstants;

import org.snmp4j.smi.Address;

import org.snmp4j.smi.GenericAddress;

import org.snmp4j.smi.OID;

import org.snmp4j.smi.OctetString;

import org.snmp4j.smi.VariableBinding;

import org.snmp4j.transport.DefaultUdpTransportMapping;

public class SnmpUtil {

private Snmp snmp = null;

private Address targetAddress = null;

public void initComm() throws IOException {

// 设置Agent方的IP和端口

targetAddress = GenericAddress.parse("udp:127.0.0.1/161");

TransportMapping transport = new DefaultUdpTransportMapping();

snmp = new Snmp(transport);

transport.listen();

}

public ResponseEvent sendPDU(PDU pdu) throws IOException { // 设置target

CommunityTarget target = new CommunityTarget();

target.setCommunity(new OctetString("public"));

target.setAddress(targetAddress);

// 通信不成功时的重试次数

target.setRetries(2);

// 超时时间

target.setTimeout(1500);

target.setVersion(SnmpConstants.version1);

// 向Agent发送PDU,并返回Response

return snmp.send(pdu, target);

}

public void setPDU() throws IOException {

// set PDU

PDU pdu = new PDU();

pdu.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 5, 0 }), new OctetString("SNMPTEST")));

pdu.setType(PDU.SET);

sendPDU(pdu);

}

public void getPDU() throws IOException {

// get PDU

PDU pdu = new PDU();

pdu.add(new VariableBinding(new OID(new int[] { 1, 3, 6, 1, 2, 1, 1, 5, 0 })));

pdu.setType(PDU.GET);

readResponse(sendPDU(pdu));

}

public void readResponse(ResponseEvent respEvnt) {

// 解析Response

if (respEvnt != null && respEvnt.getResponse() != null) {

Vector recVBs = respEvnt.getResponse()

.getVariableBindings();

for (int i = 0; i < recVBs.size(); i++) {

VariableBinding recVB = recVBs.elementAt(i);

System.out.println(recVB.getOid() + " : " + recVB.getVariable());

}

}

}

public static void main(String[] args) {

try {

SnmpUtil util = new SnmpUtil();

util.initComm();

util.setPDU();

util.getPDU();

} catch (IOException e) {

e.printStackTrace();

}

}

}

如果控制台打出“1.3.6.1.2.1.1.5.0 : SNMPTEST”的消息,就说明我们的操作成功啦!

以上代码在WindowsXP下测试成功。

前一篇文章讲了如何用snmp4j实现set和get的功能,今天讲如何接收trap。

snmp4j提供了一个抽象类CommandResponder类用于接收trap,这个类里面有一个必须实现的方法processPdu(),当接收到trap,会自动进入这个方法,因此我们可以将对trap的处理写在这里。

下面修改上篇文章例子中的initComm()方法:

private TransportMapping transport = null;

public void initComm() throws IOException {

// 设置Agent方的IP和端口

targetAddress = GenericAddress.parse("udp:192.168.1.1/161");

// 设置接收trap的IP和端口

transport = new DefaultUdpTransportMapping(new UdpAddress(

"192.168.1.2/162"));

snmp = new Snmp(transport);

CommandResponder trapRec = new CommandResponder() {

public synchronized void processPdu(CommandResponderEvent e) {

// 接收trap

PDU command = e.getPDU();

if (command != null) {

System.out.println(command.toString());

}

}

};

snmp.addCommandResponder(trapRec);

transport.listen();

}

其中targetAddress指Agent端也就是trap发送,transport指trap接收方,这里就是本机,假设IP是192.168.1.2,但注意不能写成127.0.0.1。

因为我们无法得知trap什么时候会发送,所以需要有一个线程等待trap的到来,在这个例子中我们使用wait()来等待trap的到来,具体应用中就要根据实际情况来做了。

public synchronized void listen() {

System.out.println("Waiting for traps..");

try {

this.wait();//Wait for traps to come in

} catch (InterruptedException ex) {

System.out.println("Interrupted while waiting for traps: " + ex);

System.exit(-1);

}

}

public static void main(String[] args) {

try {

SnmpUtil util = new SnmpUtil();

util.initComm();

util.listen();

} catch (IOException e) {

e.printStackTrace();

}

}

将上面的代码添加到原来的例子中,就可以接收trap了。

但是还有一个问题,如何让192.168.1.1发送trap呢?这个也可以使用snmp4j来做。其实发送trap和发送set、get PDU是类似的,同样是发送PDU,只不过类型不一样。我们把前面的例子复制到192.168.1.1,在里面添加一段代码:

public void setTrap() throws IOException {

// 构造Trap PDU

PDU pdu = new PDU();

pdu.add(new VariableBinding(new OID(".1.3.6.1.2.3377.10.1.1.1.1"),

new OctetString("SnmpTrap")));

pdu.setType(PDU.TRAP);

sendPDU(pdu);

System.out.println("Trap sent successfully.");

}

这里PDU的OID和Value可以自己构造,无需使用特定的值。

然后修改地址

targetAddress = GenericAddress.parse("udp:192.168.1.2/162");

transport = new DefaultUdpTransportMapping(new UdpAddress("192.168.1.1/161"));

另外需要修改target的version,即改为target.setVersion(SnmpConstants.version2c)为什么要这样改我也没搞清楚,总之verion1收不到。

接下来修改main()函数,调用setTrap()。

然后回到本机运行刚才的例子,当控制台显示“Waiting for traps..”时,运行Agent端的例子。此时如果192.168.1.2打出我们刚刚设置的PDU的信息,就说明Trap的收发成功了。

前两篇文章讲了如何使用Snmp4j实现Set、Get(使用snmp4j实现Snmp功能(一))以及

发送、接收Trap(使用snmp4j实现Snmp功能(二))功能。

在我们前面的实现中,如果访问MIB库中不存在的OID,Get方式的话,我们会得到一个Null值,而Set方式时Agent端会把我们发过去的PDU原封不动的返回回来。当然多数情况下这不是我们想要的结果,所以今天我们讲一下如何设置Agent端的Response。

这个功能其实和接收发送Trap是一样的,只不过对象变了一下而已。同样,接收Set和Get 的方法写在CommandResponder的processPdu()中。我们把前面写过的initComm() 的processPdu()中添加一段代码(Agent端):

// 设置Response

if ((command.getType() != PDU.TRAP)

&& (command.getType() != PDU.V1TRAP)

&& (command.getType() != PDU.REPORT)

&& (command.getType() != PDU.RESPONSE)) {

command.setErrorIndex(0);

command.setErrorStatus(0);

command.setType(PDU.RESPONSE);

// 设置PDU的Value

command.get(0).setVariable(new OctetString("MYSNMP"));

StatusInformation statusInformation = new StatusInformation();

StateReference ref = e.getStateReference();

try {

System.out.println("send Response!");

e.getMessageDispatcher().returnResponsePdu(

e.getMessageProcessingModel(),

e.getSecurityModel(), e.getSecurityName(),

e.getSecurityLevel(), command,

e.getMaxSizeResponsePDU(), ref,

statusInformation);

} catch (MessageException ex) {

System.err.println("Error while sending response: "

+ ex.getMessage());

}

}

接下来让Agent端的main()函数调用listen(),运行main()函数,Agent端开始监听来自Manager的Set和Get。

回到本机,向Agent端发送一个Set的PDU或Get的PDU,如果控制台打出我们刚刚在程序中设置的值"MYSNMP",说明我们的Response设置成功啦!

当然,程序中的设置PDU的Value是一个最简单的Response示例,在实际的应用中,应该要根据不同的OID返回不同的Value,这一部分的代码要根据实际的应用去发挥啦。

如何使用SNMP监视VMware ESX的服务器参数

使用简单网络管理协议(SNMP)监视服务器性能并发送通知(叫做traps)是所有VMware 管理员最终必须掌握的一项技能。在本文中,TechTarget中国的特约虚拟化专家David Davis将解释VMware ESX与ESXi可用的不同类型的SNMP代理,并给出使用SNMP 进行监控的例子。最后,你将学习如何配置ESX SNMP代理和ESXi代理以发送SNMP traps到网络管理站(NMS)。 为什么需要为VMware ESX Server配置SNMP? SNMP用于收集如PC、服务器、网络设备等的信息。SNMP也能用于发送traps到SNMP管理站(如Dell OpenManage)。我会简短地提及如何配置traps,本文将着重介绍如何配置ESX以便收集信息。 为什么想要使用SNMP?例如,如果你下载一个新的ESX Server监控工具SolarWinds VM Monitor,首先必须启用ESX上的SNMP,这是由于SolarWinds的VM Monitor使用SNMP收集数据。由于越来越多的应用用于监控VMware ESX Server,并且许多应用都使用SNMP。我们也开始听说现有的监控应用能监视VMware ESX——如果你启用SNMP。 VMware ESX Server(而不是ESXi)带有两个SNMP代理。一个代理基于net-snmp (这是一个在互联网上很出名的Linux SNMP)。另一个代理非常简单,并且只支持traps。这与ESXi所提供的代理是相同的。在本文中,我将配置更加高级的SNMP代理,即 net-snmp。(关于如何配置小型ESX代理与ESXi代理请参见VMware的文章―在ESXi 上使用SNMP‖)。不过要注意,你不能使用我下面所提到的应用监控服务器。你只能配置ESX和ESXi以发送traps到NMS。 但是不能使用图形界面(如VMware Infrastracture Client)启用SNMP。这就是说很难使用命令行。下面我们看看如何通过使用SSH命令行和SNMP命令启用SNMP。 如何通过SSH在ESX Server里启用SNMP? 通过SSH配置SNMP是唯一的方法,而不是通过服务器的控制台。 一旦使用SSH连接SNMP到ESX Server,就能使用标准的Linux命令配置SNMP。配置(使用加密等技术的版本3)SNMP很复杂,我只介绍标准的SNMP配置。 SNMP进程在默认下不会运行,SNMP监控应用不能与ESX Server对话。 首先使用nano或vi编辑/etc/snmp/snmpd.conf文件。例如: nano /etc/snmp/snmpd/conf

snmp介绍

什么是SNMP协议 简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。许多人认为SNMP在IP上运行的原因是Internet运行的是TCP/IP协议,然而事实并不是这样。 SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。 SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。S NMP也为设备向网络管理工作站报告问题和错误提供了一种方法。 名字说明 MIB 管理信息库 SMI 管理信息的结构和标识 SNMP 简单网络管理协议 从被管理设备中收集数据有两种方法:一种是只轮询(polling-only)的方法,另一种是基于中断(interrupt -based)的方法。 如果你只使用只轮询的方法,那么网络管理工作站总是在控制之下。而这种方法的缺陷在于信息的实时性,尤其是错误的实时性。你多久轮询一次,并且在轮询时按照什么样的设备顺序呢?如果轮询间隔太小,那么将产生太多不必要的通信量。如果轮询间隔太大,并且在轮询时顺序不对,那么关于一些大的灾难性的事件的通知又会太馒。这就违背了积极主动的网络管理目的。 当有异常事件发生时,基于中断的方法可以立即通知网络管理工作站(在这里假设该设备还没有崩溃,并且在被管理设备和管理工作站之间仍有一条可用的通信途径)。然而,这种方法也不是没有他的缺陷的,首先,产生错误或自陷需要系统资源。如果自陷必须转发大量的信息,那么被管理设备可能不得不消耗更多的时间和系统资源来产生自陷,从而影响了它执行主要的功能(违背了网络管理的原则2)。 而且,如果几个同类型的自陷事件接连发生,那么大量网络带宽可能将被相同的信息所占用(违背了网络管理的原则1)。尤其是如果自陷是关于网络拥挤问题的时候,事情就会变得特别糟糕。克服这一缺陷的一种方法就是对于被管理设备来说,应当设置关于什么时候报告问题的阈值(threshold)。但不幸的是这种方法可能再一次违背了网络管理的原则2,因为设备必须消耗更多的时间和系统资源,来决定一个自陷是否应该被产生。 结果,以上两种方法的结合:面向自陷的轮询方法(trap-directed polling)可能是执行网络管理最为有效的方法了。一般来说,网络管理工作站轮询在被管理设备中的代理来收集数据,并且在控制台上用数字或图形的表示方式来显示这些数据。这就允许网络管理员分析和管理设备以及网络通信量了。 被管理设备中的代理可以在任何时候向网络管理工作站报告错误情况,例如预制定阈值越界程度等等。代理并不需要等到管理工作站为获得这些错误情况而轮询他的时候才会报告。这些错误情况就是众所周知的SNMP自陷(trap)。

snmp协议的分析

竭诚为您提供优质文档/双击可除 snmp协议的分析 篇一:实验三snmp协议分析 实验三snmp协议分析 一、实验目的 (1)掌握嗅探工具ethereal协议分析软件的使用方法(2)利用ethereal软件工具截snmp数据包并完成报文分析 二、实验环境 局域网,windowsserver20xx,snmputil,ethereal,superscan 三、实验步骤(0、snmp的安装配置) 1、理解应用层snmp协议工作原理; 2、使用windows平台上的snmputil.exe程序实现snmp 交互; 3、利用协议分析和抓包工具ethereal抓取分析snmp 协议报文。 四、实验内容 内容一:

1.打开ethereal软件开始抓包, 输入命令: snmputilget[目标主机ip地址]团体 名.1.3.6.1.2.1.1.2.0停止抓包。对snmp包进行过滤。(给出抓包结果截图) 2.找出一对snmp协议请求包和相对应的应答包。给出抓包结果截图。 3.对上面这对请求和应答包进行分析,根据snmp协议数据包格式填值。 请求包报文分析 应答包报文分析 内容二: 1.通过snmptuil.exe与snmp交互: 输入snmputilwalk[目标主机ip地址]团体 名.1.3.6.1.2.1.1命令列出目标主机的系统信息。 2.打开ethereal软件开始抓包,再次输入上面命令后,停止抓包。对snmp包进行过滤。给出抓包结果截图。 3.找出一对snmp协议请求包和相对应的应答包。给出抓包结果截图。 4.对上面这对请求和应答包进行分析,根据snmp协议数据包格式填值。 请求包报文分析

H3C配置SNMP协议

H3C配置SNMP协议 1.使用telnet登陆设备 System-view Snmp-agent Snmp-agent community read public Snmp-agent sys-infoversion all Dis cur Save 保存 配置完成。。 1.1 概述 SNMP是Simple Network Manger Protocol(简单网络管理协议)的缩写,在1988 年8月就成为一个网络管理标准RFC1157。到目前,因众多厂家对该协议的支持, SNMP已成为事实上的网管标准,适合于在多厂家系统的互连环境中使用。利用SNMP 协议,网络管理员可以对网络上的节点进行信息查询、网络配置、故障定位、容量规 划,网络监控和管理是SNMP的基本功能。 SNMP是一个应用层协议,为客户机/服务器模式,包括三个部分: ●SNMP网络管理器 ●SNMP代理 ●MIB管理信息库 SNMP网络管理器,是采用SNMP来对网络进行控制和监控的系统,也称为NMS (Network Management System)。常用的运行在NMS上的网管平台有HP OpenView 、CiscoView、CiscoWorks 2000,锐捷网络针对自己的网络设备,开发了 一套网管软件--Star View。这些常用的网管软件可以方便的对网络设备进行监控和 管理。 SNMP代理(SNMP Agent)是运行在被管理设备上的软件,负责接受、处理并且响 应来自NMS的监控和控制报文,也可以主动发送一些消息报文给NMS。 NMS和Agent的关系可以用如下的图来表示: 图1 网络管理站(NMS)与网管代理(Agent)的关系图

服务器状态监控之snmp

服务器状态监控之snmp&ipmi 一、ipmi 1、简介 IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准 开源的免费标准、跨不同操作系统 监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源供应及机箱入侵等 核心部件:BMC(Baseboard Management Controller),一种嵌入式微控制器,整个平台管理的大脑, ipmi所有功能都是通过BMC发送命令来完成,BMC接受并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据,支持远程访问 BMC具有以下功能: 1.通过系统的串行端口进行访问 2. 故障日志记录和SNMP 警报发送 3.访问系统事件日志(System Event Log ,SEL) 和传感器状况 4.控制包括开机和关机 5.独立于系统电源或工作状态的支持 6.用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向 基于BMC,最大优势:独立于CPU BIOS和OS,无论是开机还是关机状态下,接通电源就可以实现对服务器的监控 2、使用ipmi的先决条件

(1)服务器硬件本身提供对ipmi的支持 目前惠普、戴尔和NEC 等大多数厂商的服务器都支持IPMI 2.0,但并不是所有服务器都支持,所以应该先通过产品手册或在BIOS 中确定服务器是否支持ipmi,也就是说服务器在主板上要具有BMC 等嵌入式的管理微控制器。 (2)操作系统提供相应的ipmi驱动 通过操作系统监控服务器自身的ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对OpenIPMI(ipmi 驱动)的支持来提供对ipmi 的系统接口。在使用驱动之前,请先启动该驱动: service ipmi start 或者启动模块: modprobe ipmi_msghandler modprobe ipmi_devintf modprobe ipmi_si modprobe ipmi_poweroff modprobe ipmi_watchdog (3)ipmi管理工具 选择的是Linux 下的命令行方式的ipmi 平台管理工具ipmitool,开源的还有很多,如:ipmiutil ipmitool通过OpenIPMI接口来访问BMC,实现对服务器的两种管理方式:(1)通过OS 监控本地服务器;(2)通过网络监控远程服务器 本地服务管理:系统结构 监控本地命令格式:ipmitool -I open command,其中-I Open command有以下项:

SNMP协议

SNMP的前身是简单网管监控协议用来对通信线路进行管理对后人们对SGMP进行了很大的修改特别是加入了符合INTERNET定义的SMI和MIB;体系结构改进后的协议就是著名的SNMP。SNMP的目标是管理互联网INTERNET上众多厂商生产的软硬件平台,因此SNMP收到INTERNET标准网络管理框架的应先也很大。现在SNMP已经出到第三个版本的协议,其功能教以前已经大大地加强了和改进了。SNMP的体系结构是围绕一下四个概念和目标进行设计的保持管理代理(AGENT)的软件成本尽可能低;最大限度地保持远程管理功能,以便充分利用INTERNET的网络资源;体系结构必须有扩充的余地;保持SNMP的独立性,不依赖于具体计算、网管和网络传输协议。在最近的改进中,又加入了保证SNMP体系本身系统安全性的目标。 SNMP风险 接入INTERNET的网络面临许多风险,WEB服务器可能面临攻击,邮件服务器的安全也令人担忧。但除此之外,网络上可能还存在一些隐性的漏洞。大多数网络总有一些设备运行着SNMP服务,许多时候这些SNMP服务是不必要的,但却没有引起网络管理员的重视。 根据SANS协会的报告,对于接入INTERNET的主机,SNMP是威胁安全的十大首要因素之一;同时,SNMP还是INTERNET主机上最常见的服务之一。特别的,SNMP 服务通常在位于网络边缘的设备(防火墙保护权之前爱的设备)上运行,进一步加剧了SNMP带来的风险。这一切听起来出人意料但其实事情不应该是这样的。 一、背景知识 SNMP开发与九十年代早期,其目的是简化大型网络中设备的管理和数据的获取。许多与网络有关的软件包,如HP的OPENVIEW和NORTEL NETWORKS的OPTIVITY NETWORK MANAGEMENT SYSTEM,还有MULTI ROUTER TRAFFIC GRAPHER (MRTG)之类的免费软件,都用SNMP服务来简化网络管理和维护。 由于SNMP效果实在太好了,所以网络硬件厂商开始把SNMP加入到它们制造的每一台设备。今天,各种网络设备上都可以看到默认用的SNMP服务,从交换机到路由器,从防火墙到网络打印机,无一例外。 仅仅是分布广泛还不足以造成威胁,问题是许多厂商安装的SNMP都采用了默认的通信字符串(例如密码),这些通信字符串是程序获取设备信息和修改必不可少的。采用默认通信字符串的好处是网络上的软件可以直接访问设备,无需通过复杂的配置。 通信字符串主要包含两类命令:GET命令、SET命令。GET命令从设备读取数据,这些数据通常是操作参数,例如连接状态、接口名称等。SET命令允许设置设备某些参数。这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。但很显然,GET\SET命令都可能被利用与拒绝服务攻击和恶意修改网络参数。 SNMP2.0和SNMP1.0的安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。攻击者一旦不活了网络通信,就可以利用各种嗅探工具直接获取通信字符串,即是哟过户改变了通信字符串默认值也无济于事。 近几年才出现的SNMP3.0解决了一部分问题,为保护通信字符串,SNMP3.0使用DES算法加密数据通信;另外,SNMP3.0还能够用MD5和SHA技术技术验证节点的标识符,从而防止攻击者冒充管理节点的身份操作网络 虽然SNMP3.0出现已经有一段时间了,但目前还没有广泛应用。如果设备是2、3年前的产品,很可能根本不支持SNMP3.0,甚至有些交心的设备也只有SNMP2.0或SNMP1.0。

《SNMP的安全性配置》word版

实验8 SNMP的安全性配置 一、实验目的 1、掌握Windows操作系统的SNMP服务的安装; 2、理解SNMP协议的工作原理; 3、理解SNMP协议的作用 二、实验环境 装有windows 2003操作系统的计算机 三、实验原理 1.什么是网络管理? 网络管理分为两类。第一类是网络应用程序、用户帐号(例如文件的使用)和存取权限(许可)的管理。它们都是与软件有关的网络管理问题。 网络管理的第二类是由构成网络的硬件所组成。这一类包括工作站、服务器、网卡、路由器、网桥和集线器等等。通常情况下这些设备都离你所在的地方很远。正是由于这个原因,如果当设备有问题发生时网络管理员可以自动地被通知的话,那么一切事情都好办。但是你的路由器不会象你的用户那样,当有一个应用程序问题发生时就可以打电话通知你,而当路由器拥挤时它并不能够通知你。 为了解决这个问题,厂商们已经在一些设备中设立了网络管理的功能,这样你就可以远程地询问它们的状态,同样能够让它们在有一种特定类型的事件发生时能够向你发出警告。这些设备通常被称为"智能"设备。 网络管理通常被分为四类:

当设计和构造网络管理的基础结构时,你需要记住下列两条网络管理的原则: 1.由于管理信息而带来的通信量不应明显的增加网络的通信量。 2.被管理设备上的协议代理不应明显得增加系统处理的额外开销,以致于该设备的主要功能都被削弱了。 2.什么是SNMP? 简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。许多人认为 SNMP在IP上运行的原因是Internet运行的是TCP/IP协议,然而事实并不是这样。 SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。 SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。 名字说明 MIB 管理信息库 SMI 管理信息的结构和标识 SNMP 简单网络管理协议 从被管理设备中收集数据有两种方法:一种是只轮询(polling-only)的方法,另一种是基于中断(interrupt-based)的方法。 如果你只使用只轮询的方法,那么网络管理工作站总是在控制之下。而这种方法的缺陷在于信息的实时性,尤其是错误的实时性。你多久轮询一次,并且在轮询时按照什么样的设备顺序呢?如果轮询间隔太小,那么将产生太多不必要的通信量。如果轮询间隔太大,并且在轮询时顺序不对,那么关于一些大的灾难性的事件的通知又会太馒。这就违背了积极主动的网络管理目的。 当有异常事件发生时,基于中断的方法可以立即通知网络管理工作站(在这里假设该设备还没有崩溃,并且在被管理设备和管理工作站之间仍有一条可用的通信途径)。然而,这种方法也不是没有他的缺陷的,首先,产生错误或自陷需要系统资源。如果自陷必须转发大量的信息,那么被管理设备可能不得不消耗更多的时间和系统资源来产生自陷,从而影响了它执行主要的功能(违背了网络管理的原则2)。 而且,如果几个同类型的自陷事件接连发生,那么大量网络带宽可能将被相同的信息所占用(违背了网络管理的原则1)。尤其是如果自陷是关于网络拥挤问题的时候,事情就会变得特别糟糕。克服这一缺陷的一种方法就是对于被管理设备来说,应当设置关于什么时候报告问题的阈值(threshold)。但不幸的是这种方法可能再一次违背了网络管理的原则2,因为设备必须消耗更多的时间和系统资源,来决定一个自陷是否应该被产生。

snmp简单网络管理协议漏洞分析

snmp简单网络管理协议漏洞分析 字体: | 发表于: 2008-4-10 01:23 作者: menyuchun 来源: IXPUB技术博客 简单网络管理协议(SNMP)是一个 可以远程管理计算机和网络设备的协议. 有两种典型的远程监控模式. 他们可以粗略地分为"读"和"写"(或者是PUBLIC和PRIVATE). 如果攻击者能猜出一个PUBLIC团体串值, 那么他就可以从远程设备读取SNMP数据. 这个信息可能包括 系统时间,IP地址,接口,运行着的进程,etc等. 如果攻击者猜出一个PRIVATE团体串值 (写入或"完全控制", 他就有更改远程机器上信息的能力. 这会是一个极大的安全漏洞, 能让攻击者成功地破坏网络,运行的进程,ect. 其实,"完全控制"会给远程攻击者提供在主机上的完全管理权限. 更多信息请参见: ___________________________________________________________________ SNMP Agent responded as expected with community name: public CVE_ID : CAN-1999-0517, CAN-1999-0186, CAN-1999-0254, CAN-1999-0516

BUGTRAQ_ID : 11237, 10576, 177, 2112, 6825, 7081, 7212, 7317, 9681, 986 NESSUS_ID : 10264 Other references : IAVA:2001-B-0001 SNMP服务在UDP 161/162端口监听 用法:snmputil walk IP public [OID] [----------OID-----------------------含义-------] .1.3.6.1.2.1.25.4.2.1.2 获取系统进程 .1.3.6.1.4.1.77.1.2.25.1.1 获取用户列表 .1.3.6.1.4.1.77.1.4.1.0 获取域名 .1.3.6.1.2.1.25.6.3.1.2 获取安装的软件 .1.3.6.1.2.1.1 获取系统信息 -------------------------------------------------------------------- 扫描到的一个报告: . 端口"snmp (161/udp)"发现安全漏洞: Snmp口令: "public" . 端口"snmp (161/udp)"发现安全提示: sysDescr.0 = Draytek V3300 Advanced Router sysUpTime.0 = 3 Days, 1 Hours, 53 Minutes, 10 Seconds

网络、服务器等相关设备SNMP配置指南

SNMP配置模板 一.中兴交换机系列 1.1中兴28系列(2852) conf snmp create community IDCI-SYSJ public create view AllView set community public view AllView set community IDCI-SYSJ view AllView set host 85.60.16.17 trap v2c IDCI-SYSJ set trap all enable exit 1.2中兴39、59、89系列 snmp-server trap-source 3.9.9.2 snmp-server community IDCI-XNXJ view AllView ro snmp-server host 3.9.9.253 trap version 2c IDCI-XNXJ udp-port 162 snmp-server enable trap exit 二.迈普系列 2.1迈普3840 conf t snmp-server community IDCI-XNXJ view default ro snmp-server trap-source 3.9.9.1 snmp-server host 3.9.9.253 traps community IDCI-XNXJ version 2 snmp-server enable traps snmp-server start

2.2迈普4152S conf t snmp-server enable snmp-server trap-source 3.9.9.3(网口地址) snmp-server securityip disable snmp-server host 3.9.9.253 v2c IDCI-XNXJ snmp-server community ro IDCI-XNXJ snmp-server enable traps 2.3迈普6800、7500、7600 conf t snmp-server community IDCI-YYSJ view default ro snmp-server trap-source 3.0.0.3 snmp-server host 3.0.0.253 traps community IDCI-YYSJ version 2 snmp-server enable traps 三.H3C(华为)系列 3.1H3C(华为) sy snmp-agent snmp-agent community read IDCI-YXXJ snmp-agent sys-info version v2c v3 snmp-agent target-host trap address udp-domain 85.72.88.240 params securityname I DCI-YXXJ v2c snmp-agent trap source vlan-interface 1000(可以为VLAN、端口、地址等)

服务器运行状态监控系统

系统目标 本系统的主要功能是对各种服务器进行实时监控,基于Windows 系统(包括Windows XP/2003/2008),采用C/S模式,使用VC6.0开发。其中,Client客户端安装在受监控的服务器上,Server服务器端安装在网管人员的PC机上。网管人员可以随时通过Server端获知任意一台受监控服务器的运行状态,并在服务器出现异常的情况下(如:服务器意外down机、存储空间不足、CPU利用率过高等),及时的收到Server端的短信报警信息。 2.1、Client端主要功能 (1) 采集服务器的各种性能指标数据,并发送到Server端,使网络管理员能实时查看服务器的状态。主要包括:CPU使用率、内存使用率、进程数量监控、进程运行状况监控等。 (2) 采集服务器的相关信息,并保存在服务器的日志文件中,供网络管理员进行定期的数据分析。主要包括:重点分区文件的变动信息、容量大小信息、服务器重新启动信息等。 (3) 服务器进程信息的监测。主要包括进程列表的实时扫描、黑名单监测和白名单监测。其中,黑名单监测是指对非正常进程的监测(如病毒进程),当发现监测服务器上运行着这类非正常进程时,便会向Server端发送告警信息,并自动关闭进程。白名单是指对服务器上守护进程的监控,当发现服务器守护进程没有正常运行时,便会

向Server端发送告警信息,并自动重新启动进程。 (4) 日志文件监控。此项功能实现对服务器日志文件所占存储空间的监控。当监控的日志文件大小超过其预设阀值时,Client端便会向Server端发送告警信息,通知网络管理人员进行及时处理。 (5) Web服务器监控。对WEB服务器的实时监控,当发现受监控的Web服务器不能正常提供服务时,自动重新启动该服务,使其能够正常运行,并将WEB服务器发生问题的时间和处理信息写入日志文件,以供网络管理人员进行分析。主要提供对Tomcat、IIS(6.0)等Web 服务器的监控。 (6) 数据库服务器监控。对服务器上运行的数据库服务器的实时监控,当发现受监控的数据库服务不能正常提供服务时,自动重新启动该服务,以使其能够运行正常,并将问题发生时间和处理信息写入日志文件,以供网络管理人员进行分析。主要提供对SQL Server、Oracle等数据库的监控。 (7) 盘符容量监控。选定某一监控盘符后,设置其容量大小,当容量不足时,向Server端发送报警信息。 2.2、Server端主要功能 Server端的主要功能是接收Client端发送的数据,并根据设置阈值在这些海量数据中筛选出异常数据向网络管理员进行告警。 (1) 参数设置:对一些基本参数进行设置,保存设置后,Server 端按照参数的设定范围对接收的数据进行分析。主要包括:

使用SNMP管理及配置cisco交换机

SNMP版本 Cisco IOS支持SNMP协议的下列版本: SNMPv1 ·C 简单网络管理协议:一个完全的互联网标准,定义在 STD15/RFC1157(RFC1157文档替代了早期的RFC1098和RFC1067文档)和 STD16/RFC1155,RFC1212文档中。安全机制采用基于团体字符串(Community String)认证方式。 SNMPv2c ·C 基于团体字符串认证管理框架的简单网络管理协议版本 2.SNMPv2c(c代表Community)是一个互联网实验标准,具体技术规范定义在RFC1901,RFC1905和RFC1906文档。SNMPv2c在SNMPv2p(SNMPv2 Classic)基础上定义了协议操作和数据类型的更新,安全机制延续了SNMPv1的基于团体字符串认证方式。 SNMPv3 ·C 简单网络管理协议版本3,2002年3月被IESG(Internet Engineering Steering Group)批准为完全的互联网标准。SNMPv3是一个具有互操作性的标准协议,核心规范定义在STD62/RFC3411到RFC3418文档中。SNMPv3提供了设备安全访问机制,是由认证和网络传输中数据包加密的组合方式实现的。 SNMPv3提供的安全特性包括: 报文完整性·C 确保数据包在传输过程中没有被篡改 认证·C 确定报文是由正确信息源发送来的 加密·C 对报文内容进行加密,防止其被未经授权的读取 SNMPv1和SNMPv2c都利用了基于“团体(Community)”形式的安全认证机制。能够访问SNMP代理MIB数据的管理者“团体”通过一个IP地址访问控制列表和口令进行定义。 SNMPv2c还增加了对大批量数据读取机制的支持和向管理工作站更加详细的错误消息汇报机制。支持对大批量数据的读取机制能够用来对整个 MIB数据表格和大量的信息进行快速读取,减少请求/应答的往复数量。SNMPv2c增强的错误处理机制包括扩展的错误代码,用于区别不同的错误状况。错误返回代码现在将包括错误类型。 SNMPv3重点强调增强协议的安全认证/加密,授权/访问控制以及远程配置管理等功能,而在其它方面沿用了部分SNMPv2原有的技术规范。 SNMPv3提供了一个安全模型。这个安全模型中可以为用户/用户组定义不同的安全认证策略;而安全级别是指SNMPv3安全模型中被允许的安全等级。安全模型和安全等级的组合将会决定在处理一个SNMP数据包时采用的安全机制。

用SNMP协议实现系统监控

用SNMP协议实现系统监控 作者王基立系统监测的基本概念及分类: a.系统监测的概述: 如何对现有IT架构的整体以及细节运行情况进行科学、系统和高效地监测是目前各企业运维和管理部门一项非常重要的工作内容。随着当前企业IT环境中服务器、应用数量和类型的不断地增加,运维部门需要通过科学和高效的手段尽可能详细、实时和准确地获取整个架构中具体到每个服务器、每个系统甚至每个应用程序工作的细节,并且会对所获取到的原始数据进行分析、绘图和统计,以便为后续的性能调优、建构调整以及各类型排错建立参考依据。 常见的监测对象基本上涵盖了IT运行环境的方方面面,包括机房环境、硬件、网络等,而每一个方面所涉及的监测项目则种类繁多。例如对硬件环境的监测中,所涵盖内容就会包括服务器的工作温度、风扇转速等指标;针对系统环境的监测,将包括基本的操作系统运行环境,如CPU、内存、I/O、存储空间使用状况、网络吞吐量、进程数量和状态等情况;针对具体的应用情况,涉及监测的内容可能会更多,而且也会有很多专门针对应用的指标。 除了监测的内容需要尽量全面之外,同时我们还希望所使用的监测解决方案能够灵活和具备更多扩展功能。例如有效地支持IT架构的变化和扩展,在监测量增加的情况下能够尽可能少地占用资源,拥有强大的事件通知机制等等。 今天本文所涉及的内容,主要是针对操作系统以及软件环境的监测,而且尤其是针对Linux操作系统的运行情况监测。尽管目前有很多的商用软件以及解决方案来实现相关的功能,但是实际上我们也有很多开源的解决方案可以起到相同的作用,而且效果也非常不错。下面的内容中,我们将会对这些解决方案的实现方法进行详细描述。 b.基于Linux上系统监测的基本原理以及种类: 在Linux系统上的系统监测所采用的方式基本上有两种: 第一种,通过SNMP协议结合数据采集软件来实现: 这种方法所涉及的架构一般包括两部分,其中一部分是被监测服务器,另外一部分则是网管工作站。至于实现方法具体来说就是在Linux服务器上启动 SNMP简

服务器监控系统实现方案

2019.03 随着信息化建设的不断深入,各单位部署的服务器数量越来越多,导致系统管理和运维的难度也越来越大。对服务器的状态进行实时监控,及时发现和处理问题,是解决此难题的一个行之有效的方法。然而,目前市面上真正好用、能满足实际运维需要的监控软件却极少,不少单位在试用了一些监控软件之后,不得不选择自行开发。 1服务器监控的必要性 服务器是网络中能对其他机器提供某些服务的计算 机系统,它存储、处理网络上80%的数据和信息,被称为网络的灵魂[1]。由于服务器需要长时间不间断地工作,因此对稳定性和可靠性有很高要求。计算机的可靠性可用MTTF (Mean Time To Failure ,平均无故障时间)来度量,平均无故障时间越长系统的可靠性就越高。对用户而言,高可靠性也就意味着高可用性,意味着可以随时随地从系统获得高质量的服务。 尽管服务器采用了大量的软、硬件技术,但其稳定性和可靠性离人们的期望还是有不小的距离,服务器响应变慢、服务中断的现象仍时有发生。尽管提高软、硬件的可靠性是软、硬件厂商需要考虑的事情,但是对最终用户来说,对服务器的软、硬件进行实时监控,及时发现和处理问题,无疑能大大提高系统的可用性。 2服务器监控软件的现状 对服务器进行监控,显然用软件方式要比人工方式 更加高效和快捷。与网络管理类似,服务器管理也分为带内(in -band )管理和带外(ou t-of-band )管理[2],带 内管理的控制信息与数据信息使用同一物理通道进行传送,而带外管理则是使用不同的物理通道。带外管理可 以在操作系统失去响应的情况下采集服务器硬件数据(CPU 和主板的温度、电压、风扇转速以及电源、功耗等),甚至在电源关闭的情况下进行开机、重启等维护操作,但并不能监控带内的应用情况。带内管理可以实现对带内应用情况的监控,也可以通过I PMI (I ntelli - gent Platform Management Interface ,智能平台管理接口)获取带外硬件信息,但是在网络中断时业务和管理都无法正常进行。 有些品牌的服务器厂商提供基于带外管理的服务器管理软件(属增值服务,需另外购买),但不同厂商之间存在一定的兼容性问题。目前大多数的服务器监控软件还是基于带内管理的。 除了I PMI 以外,常用的监控技术手段还有:JMX (Java Management Extensions ,Java 管理扩展)、S SH (Secure Shell)、S NMP (S imple Network Management Pro -tocol ,简单网络管理协议)、WMI (Win dows Manage -ment Instrumentation ,Win dows 管理规范)和WBEM (Web -Based Enterprise Management ,基于Web 的企业管理)。其中JMX 适用于监控Java 应用;S SH 适用于 Lin ux 系统,用于Win dows 时需结合WMI 使用;S NMP 有明显的安全隐患[3],对网络性能有不小影响;WMI 只能用于Win dows 系统,也存在明显的安全问题[4]; WBEM 则限于Web 应用。 作者简介:徐波(1971-),男,高级工程师,硕士,研究方向:医疗信息化、算法理论、机房运维;王建英(1985-),女,工程师,硕士,研究方向:医疗信息化、 I T 项目管理。 收稿日期:2018-12-11 服务器监控系统实现方案 徐波,王建英 ( 广州市中西医结合医院信息科,广州510800)摘 要:服务器监控是机房运维管理的一项重要内容,同时也是一种行之有效的管理方法,但目前市 面上很难找到符合实际需要的服务器监控软件。解决办法之一是找软件公司按需定制,但定制开发的成本很高,很多单位选择了自主开发。这里给出一个服务器监控系统的自主开发实现方案,主要包括监控对象的选择、软件架构设计和技术方案的选择3个方面。关键词:服务器; 监控;方案;运维 43 DOI:10.16184/https://www.doczj.com/doc/a612553978.html,prg.2019.03.011

SNMP协议详解

SNMP协议详解 简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering T ask Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。 1. SNMP基本原理 SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP 代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。下图10是NMS公司网络产品中SNMP协议的实现模型。 SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP (用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。数据报结构如下图 版本识别符(version identifier):确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。 团体名(Community Name):用于SNMP从代理对SNMP管理站进行认证;如果网络配置成要求验证时,SNMP 从代理将对团体名和管理站的IP地址进行认证,如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息协议数据单元(PDU):其中PDU指明了SNMP的消息类型及其相关参数。 2. 管理信息库MIB IETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。 下图给出了NMS系统中SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构。

Redhat安装配置SNMP 服务

Linux系统安装、配置SNMP 服务 1)检查是否存在SNMP服务 用rpm –qa|grep snmp 来检查linux 系统中是否有SNMP服务 net-snmp-perl-5.3.2.2-7.el5 net-snmp-libs-5.3.2.2-7.el5 net-snmp-libs-5.3.2.2-7.el5 net-snmp-utils-5.3.2.2-7.el5 net-snmp-5.3.2.2-7.el5 如果没有,可以拿来系统安装盘,打开进入Servers 目录,在里面很容易找到安装SNMP所需要的各个组件。 安装的时候可以用rpm –ivh *.rpm 如果安装过程中提示缺少libsensors.so.3 ,则在安装盘里找到并安装 lm_sensors-2.10.7-4.el5.x86_64.rpm 和 lm_sensors-devel-2.10.7-4.el5.x86_64.rpm 之后再执行一次 rpm –ivh net-snmp-5.3.2.2-7.el5 rpm –ivh net-snmp-perl-5.3.2.2-7.el5 rpm –ivh net-snmp-libs-5.3.2.2-7.el5 rpm –ivh net-snmp-libs-5.3.2.2-7.el5 rpm –ivh net-snmp-utils-5.3.2.2-7.el5 2)启动snmp 服务 [root@mail doc]# /etc/rc.d/init.d/snmpd start Starting snmpd: [ OK ] 如果命令输出如上所示,就表示snmp服务器启动正常。 3)修改snmpd.conf 为了配合cacti使用,还要修改snmpd的配置,以使其允许cacti读取其interface(网络接口) 流量数据。 # vi /etc/snmp/snmpd.conf 确保snmpd.conf文件中包含以下内容: com2sec notConfigUser default public group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser

什么是SNMP

什么是SNMP 文档版本01 发布日期2019-05-31

版权所有 ? 华为技术有限公司 2019。保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明 和其他华为商标均为华为技术有限公司的商标。 本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意 您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。 由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。 华为技术有限公司 地址:深圳市龙岗区坂田华为总部办公楼邮编:518129 网址:https://www.doczj.com/doc/a612553978.html,

什么是SNMP目录 目录 1 简介 (1) 2 SNMP系统组成 (2) 3 SNMP查询 (5) 4 SNMP设置 (10) 5 SNMP Traps (12) 6 SNMP端口号 (16) 7 使用SNMP的相关信息 (17)

什么是SNMP 1 简介 1简介简单网络管理协议SNMP(Simple Network Management Protocol)用于网络设备的管 理。网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相 同,这使得网络管理变得愈发复杂。为解决这一问题,SNMP应运而生。SNMP作为广 泛应用于TCP/IP网络的网络管理标准协议,提供了统一的接口,从而实现了不同种类 和厂商的网络设备之间的统一管理。 SNMP协议分为三个版本:SNMPv1、SNMPv2c和SNMPv3。 l SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。SNMPv1基于团体名认证,安全性较差,且返回报文的错误码也较少。 l SNMPv2c也采用团体名认证。在SNMPv1版本的基础上引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型(Counter64、 Counter32)。 l SNMPv3主要在安全性方面进行了增强,提供了基于USM(User Security Module)的认证加密和基于V ACM(View-based Access Control Model)的访问控制。 SNMPv3版本支持的操作和SNMPv2c版本支持的操作一样。

相关主题
文本预览
相关文档 最新文档