snmp的使用

freebsd7.1安装snmp 

cd /usr/ports/net-mgmt/net-snmp 

make 

make install 

net-snmp相关资料 

http://www.net-snmp.cn/ 

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

它对外提供了三种用于控制MIB对象的基本操作命令。它们是:Get、Set 和 Trap。 

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

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

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



http://blog.csdn.net/clearwater21cn/archive/2007/06/26/1667614.aspx 


一:通信字符串主要包含两类命令:GET命令,SET命令。GET命令从设备读取数据,这些数据通常是操作参数,例如连接状态、接口名称等。SET命令允许设置设备的某些参数,这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。但很显然,GET、SET命令都可能被用于拒绝服务攻击(DoS)和恶意修改网络参数。  

二:,最常见的默认通信字符串是public(只读)和private(读/写),除此之外还有许多厂商私有的默认通信字符串。几乎所有运行SNMP的网络设备上,都可以找到某种形式的默认通信字符串。 

1.      设置团体名和访问权限

[SwitchA]snmp-agent community read public

[SwitchA]snmp-agent community write private

2.      设置管理员标识、联系方法以及物理位置

[SwitchA]snmp-agent sys-info contact Mr.Wang-Tel:3306

[SwitchA]snmp-agent sys-info location telephone-closet,3rd-floor

3.      允许交换机发送Trap信息

[SwitchA]snmp-agent trap enable

4.      允许向网管工作站192.168.0.2发送Trap报文,使用的团体名为public

[SwitchA] snmp-agent target-host trap address udp-domain 192.168.0.2 udp-port 5000 params securitynam

三:net-snmp安装配置手册 

http://wenku.baidu.com/view/cf0efc335a8102d276a22f6d.html 


http://net-snmp.cn/snmp/SNMP-protocol.html 

snmp学习笔记 

http://blog.csdn.net/clearwater21cn/archive/2007/06/26/1667614.aspx 


一:常用命令 

1,查错 

/usr/local/sbin/snmpd -f -Le -Dread_config 

/usr/local/sbin/snmpd -f -L 

2,查看本地信息 

/usr/local/bin/snmpwalk -v 2c -c public localhost 

(1)查询ip地址 

/usr/local/bin/snmpwalk -c public -v 1 192.168.0.79 1.3.6.1.2.1.4.20.1.1 

(2)查看icmp包的个数 

/usr/local/bin/snmpwalk -c public -v 1 192.168.0.79 1.3.6.1.2.1.5.1 

(3)查看mac地址 

/usr/local/bin/snmpwalk -c public -v 1 192.168.0.79 1.3.6.1.2.1.2.2.1.6 

(4)查看接口状态。 

 /usr/local/bin/snmpwalk -c public -v 1 192.168.0.79 1.3.6.1.2.1.2.2.1.8 

(5)查看机器安装的所有程序 

snmpwalk -c mrtg -v 1 192.168.0.205 1.3.6.1.2.1.25.6.3.1.2 


       //建立一个SNMPv2c PDU,它会从system(1.3.6.1.2.1.1)OID开始游走
//        SnmpWalk walk = new SnmpWalk("192.168.100.10","1.3.6.1.2.1.1.5.0");//物理位置
//        SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.2.1.25.2.2");//RAM
//        SnmpWalk walk = new SnmpWalk("127.0.0.1","1.3.6.1.2.1.25.2.3.1.6");//Hard Disk
//        SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.2.1.25.5.1.1.1");//CPU Utilization
       
//        SnmpWalk walk = new SnmpWalk("127.0.0.1","1.3.6.1.2.1.25.1");//也含本机物理总内存
        //cpu:1.3.6.1.2.1.25.5.1.1.1
        //memory:1.3.6.1.2.1.25.5.1.1.2 //得到的是每个进程的的内存使用值
       
        //1.3.6.1.2.1.25.3.3.1.2.1 //一个比较通用的看设备CPU利用率的OID值。取最后一分钟的平均值。
       
       
        // Linux下可以.1.3.6.1.2.1.25.2和.1.3.6.1.2.1.25.5这两个值试试
        //====================================================
       
        //.1.3.6.1.4.1.311.1.1.3.1.1.1.2.0
       
//        SnmpWalk walk = new SnmpWalk("127.0.0.1","1.3.6.1.2.1.1.1");//系统描述
//        SnmpWalk walk = new SnmpWalk("127.0.0.1","1.3.6.1.2.1.25.1.7.0");//本机物理总内存
//        SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.2.1.25.4.2.1.2");//列出系统进程
//        SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.4.1.77.1.2.25.1.1");//列出系统用户列表
//        SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.4.1.77.1.4.1");//列出域名(工作组)
//        SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.2.1.25.6.3.1.2");//列出安装的软件
       
       
//        SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.2.1.25.3.3.1.2");
       
        //SnmpWalk walk = new SnmpWalk("127.0.0.1",".1.3.6.1.2.1.25.4.2.1.2");//当前进程列表
   
        //可用的内存数量: .1.3.6.1.4.1.311.1.1.3.1.1.1.2.0
        //磁盘利用率的OID: .1.3.6.1.4.1.311.1.1.3.1.1.5.1.3.0
        //CPU的利用率: .1.3.6.1.4.1.311.1.1.3.1.1.2.1.3.1.48.0
        //发送的字节数(包括组帧字符): 1.3.6.1.2.1.2.2.1.16.1
        //收到的字节数(包括组帧字符): 1.3.6.1.2.1.2.2.1.10.1
       

3,指定配置文件 

/usr/local/sbin/snmpd -c /etc/snmpd.config
4,配置文件/var/net-snmp/snmpd.conf 


# STOP STOP STOP STOP STOP STOP STOP STOP STOP 

############################################################################ 

# DO NOT STORE CONFIGURATION ENTRIES HERE. 

# Please save normal configuration tokens for snmpd in SNMPCONFPATH/snmpd.conf. 

# Only "createUser" tokens should be placed here by snmpd administrators. 

# (Did I mention: do not edit this file?) 

#                                                      

setserialno 444400136 

############################################################## 

# snmpNotifyFilterTable persistent data 

############################################################## 

engineBoots 3 

oldEngineID 0x80001f88803879621e7bd7594b 

1,老机器默认的5.3.1 

location := "Room 200" 

contact := "sysmeister@example.com" 

system := 1     # FreeBSD 

traphost := localhost 

trapport := 162 

read := "public" 

write := "geheim" 

trap := "mytrap" 

%snmpd 

begemotSnmpdDebugDumpPdus       = 2 

begemotSnmpdDebugSyslogPri      = 7 

begemotSnmpdCommunityString.0.1 = $(read) 

begemotSnmpdCommunityDisable    = 1 

begemotSnmpdPortStatus.0.0.0.0.161 = 1 

begemotSnmpdLocalPortStatus."/var/run/snmpd.sock" = 1 

begemotSnmpdLocalPortType."/var/run/snmpd.sock" = 4 

begemotTrapSinkStatus.[$(traphost)].$(trapport) = 4 

begemotTrapSinkVersion.[$(traphost)].$(trapport) = 2 

begemotTrapSinkComm.[$(traphost)].$(trapport) = $(trap) 

sysContact      = $(contact) 

sysLocation     = $(location) 

sysObjectId     = 1.3.6.1.4.1.12325.1.1.2.1.$(system) 

snmpEnableAuthenTraps = 2 

begemotSnmpdModulePath."mibII"  = "/usr/lib/snmp_mibII.so" 

2,ee /usr/local/share/snmp/snmpd.conf 

/usr/local/sbin/snmpd -f -Le -Dread_config 

yslocation YourDefineName 

syscontact YourEmailAddress 

sysservices 77 

rocommunity public 

load 12 12 12 


snmp名词解释 

1,管理模型的三个组成要素,是由被管理设备管理设备、与管理信息库组成。 

(引用来源:http://wenku.baidu.com/view/8e4c651aff00bed5b9f31d92.html) 

2简单网络管理协议(SNMP)在体系结构分为被管理的设备(Managed Device)、 SNMP管理器(SNMP Manager)和SNMP代理(SNMP Agent)三个部分 

(引用来源:http://www.ixpub.net/thread-748229-1-1.html) 

1:管理站(management station)基本等于“SNMP管理器(SNMP Manager)” 

整个系统必须至少有一个管理站(management station),它实际上是网控中心。 

SNMP管理器通过网络管理软件来进行管理工作。网络管理软件的主要功能之一,就是协助网络管理员完成管理整个网络的工作。网络管理软件要求SNMP代理定期收集重要的设备信息,收集到的信息将用于确定独立的网络设备、部分网络或整个网络运行的状态是否正常。SNMP管理器定期查询SNMP代理收集到的有关设备运转状态、配置及性能等的信息。
2,被管理设备可以是路由器、网管服务器、交换机、网桥、集线器等。每一个支持SNMP的网络设备中都运行着一个SNMP代理进程Agent,它负责随时收集和存储管理信息,记录网络设备的各种情况,网络管理软件再通过SNMP通信协议查询或修改代理所记录的信息 

3,被管理对象(managed object) 

被管理对象指可使用管理协议进行管理和控制的网络资源的抽象表示。例如,一个层的实体或一个连接。 

4,NMS管理进程:(网络管理站) 

管理进程可以向代理进程询问某些参数值以外,它还可以按要求改变代理进程的参数值。负责发送请求和接收代理进程发过来的trap(代理主动通报)信息。 

5,Agent代理进程 

在每个被管理对象中一定要有代理进程,它负责随时收集和存储管理信息,记录网络设备的各种情况,网络管理软件再通过SNMP通信协议查询代理所记录的信息或修改代理所记录的信息,管理进程和代理进程利用SNMP报文进行通信,而SNMP报文又使用UDP来传送,理进程和代理进程之间的通信可以有两种方式。一种是管理进程向代理进程发出请求,询问或设置一个具体的参数值,称为Polling;而另一种则是代理进程主动向管理进程报告某些重要事件发生,成为TrapSNMP中默认的agent接听端口161,而接收trap的端口162 

6委托代理(proxy agent) 

为没有SNMP服务的设备提供资源信息,委托代理能提供如协议转换和过滤操作的汇集功能。然后委托代理来对管理对象进行管理。有时网络管理协议无法控制某些网络元素,例如该网络元素使用的是另一种网络管理协议。这时可使用委托代理(proxy agent)。 

nms和agent可以在一台机子上共存。 

1,网络元素 

网络中具体的通信设备逻辑实体,又称网元 

2,对象(object)
通信和信息处理范畴里可标识的切拥有一定信息特性的资源。但应注意,这里所用的“对象”与面向对象系统中所定义的对象并不完全一样。 

3,community (共同体) 

共同体实际上就是用来实现管理应用实体之间身份鉴别的,可以把它理解为一个带有权限的登陆账户,这是访问网络设备的重要凭据。假如communitypublic,其权限是只读的,那你一 以此用户登陆就可以查看有关记录的数据。如果其权限是读写的,你就有权修改其中的一些设置,如封锁某一个交换机的端口。大部分默认情况下,以public作为只读community,以private作为读写community
SMI “管理信息结构”是一套描述SNMP如何访问信息的标准,它用ASN.1定义了MIB。 
SMI要求每个数据项有name、syntax和encoding三部分。名字就是OID。语法 
给出了数据类型,比如"integer"、"string of octets"等等。编码则指明为 
了进行平台无关网络转输如何进行数据的序列化(RPC/XDR中存在类似概念)。
OID “对象标识符”是唯一的点分数字串,比如".1.3.6.1.2.1.4.3.0" 
PDU “协议数据单元”是SNMP消息中的数据区
ASN.1:一个SNMP消息通过抽象语法记法1(Abstract Syntax Notation, version 1)
构造。ASN.1是一种形式语言。 

BER :将ASN.1描述表示成octet strings的基本编码规则 

mib ”管理信息库“
MIB是网络管理系统中的重要构件,它有一个系统内的许多被管对象及其属性组成。MIB这个概念实际上就是一个“虚拟数据库”。这个数据库提供有关被管理网络元素的信息,而这些信息由管理进程和各个代理进程共享。MIB由管理进程和各个代理进程共同使用。 

 


http://www.alvestrand.no/objectid/1.3.6.1.2.1.1.1.html 

· 1.3.6.1.2.1.1.1 - sysDescr 

· 1.3.6.1.2.1.1.2 - sysObjectID 

· 1.3.6.1.2.1.1.3 - sysUpTime 

· 1.3.6.1.2.1.1.4 - sysContact 

· 1.3.6.1.2.1.1.5 - sysName 

· 1.3.6.1.2.1.1.6 - sysLocation 

· 1.3.6.1.2.1.1.7 - sysServices  

· 1.3.6.1.2.1.4.1 - ipForwarding 

· 1.3.6.1.2.1.4.2 - ipDefaultTTL 

· 1.3.6.1.2.1.4.3 - ipInReceives 

· 1.3.6.1.2.1.4.4 - ipInHdrErrors 

· 1.3.6.1.2.1.4.5 - ipInAddrErrors 

· 1.3.6.1.2.1.4.6 - ipForwDatagrams 

· 1.3.6.1.2.1.4.7 - ipInUnknownProtos 

· 1.3.6.1.2.1.4.8 - ipInDiscards 

· 1.3.6.1.2.1.4.9 - ipInDelivers 

· 1.3.6.1.2.1.4.10 - ipOutRequests 

· 1.3.6.1.2.1.4.11 - ipOutDiscards 

· 1.3.6.1.2.1.4.12 - ipOutNoRoutes 

· 1.3.6.1.2.1.4.13 - ipReasmTimeout 

· 1.3.6.1.2.1.4.14 - ipReasmReqds 

· 1.3.6.1.2.1.4.15 - ipReasmOKs 

· 1.3.6.1.2.1.4.16 - ipReasmFails 

· 1.3.6.1.2.1.4.17 - ipFragOKs 

· 1.3.6.1.2.1.4.18 - ipFragFails 

· 1.3.6.1.2.1.4.19 - ipFragCreates 

· 1.3.6.1.2.1.4.20 - ipAddrTable 

· 1.3.6.1.2.1.4.21 - ipRouteTable 

· 1.3.6.1.2.1.4.22 - ipNetToMediaTable 

· 1.3.6.1.2.1.4.23 - ipRoutingDiscards  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1个ieee1394端口_请问IEEE1394端口有什么作用?

匿名用户1级2007-07-31 回答IEEE1394标准是一种非专用的、高速的串行总线输入输出标准。它提供了一种连接数字设备的方法,包括个人计算机和用户电子硬件。它独立于平台,可以升级(可扩展),并在支持对等连接方面很灵活。IEEE1394标准无需将数字…

jsoup 获取html中body内容_Java 进阶 利用Jsoup获取HTML页面的各分页中的标题信息...

简单介绍一下JsoupJsoup是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于Xpath,jQuery的操作方法来取出和操作元素和数据。使用Jsoup,需要导入Jsoup所需Jar包&a…

在Windows下如何安装Tomcat服务器搭建

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选服务器。 在Windows下安装Tomcat服务器的方式有两种,一种是直接安…

剑指offer-3(替换空格)

题目: 实现一个方法,把一个字符数组里面的空格全部替换为“20%”。 思路: 首先呢,要先获取字符数组中有多少个空格以及字符数组中字符的长度,计算出替换后的长度;然后,让一个虚拟指针indexOfNew…

5.模块

时间:2018-12-9 13:40:04 ---------------------------------------------------------- 1、方法 可以创建一个包含函数与变量的py文件 可以用C语言等编写python模块,编译后,在python中使用 import sys#通过import导入sys模块print(The co…

javaee 设计模式_JavaEE重新审视设计模式:装饰器

javaee 设计模式去年的这个时候,我写了一系列有关JavaEE设计模式实现的博客文章。 大约一年后,我意识到我错过了我最喜欢的图案装饰器。 装饰器模式基本上是通过装饰其他对象来扩展对象功能的方法,其他对象可以包装目标对象并为其添加行为。…

echarts label加边框_echarts 添加自定义label标签

1.echarts 自定义标签注:当设置visualMap的后,给覆盖regions单独定义的值(如果data 中没有regions的地区 则无妨,我这个是从data中删除青岛,但是lable 无法正常显示了,如有哪位大神有好的方法,请赐教)initC…

【15】docker

docker 一种容器技术,相当于 java 一侧编译多个场所运行的技术 ,简单理解为一个盒子,盒子里面包裹着一个操作系统及其配置 docker 语法 #查看容器 docker ps -a #查看镜像docker images # 创建 dockerdocker run image #启动docker并且…

解析URI与URL之间的区别与联系

URI就是一种资源定位机制,它是比较笼统地定位了资源,并不局限于客户端和服务器,而URL就定位了网上的一切资源,只要是网上的资源,都有唯一的URL 今天在看STRUTS配置的时候,发现一个问题,就是在看…

6.数据结构

时间:2018年12月9日20:08:43 --------------------------------------------------------------------------------------- 0.四种:列表,元组,字典,集合 1.列表 可变数据类型(可以添加,移除&…

为什么要关心均值和哈希码

等于和哈希码是每个Java对象的基本元素。 它们的正确性和性能对于您的应用程序至关重要。 但是,我们经常看到甚至有经验的程序员也忽略了类开发的这一部分。 在本文中,我将介绍一些与这两种非常基本的方法有关的常见错误和问题。 合同 提到的方法至关重…

python把英语句子成分字母_句子成分的表达字母

1.一【1】1、一般现在时(do); 2、一般过去时(did); 3、一般将来时( will do)(be going to do); 4、一般过去将来时( would do); 5、现在进行时( be doing); 6、过去进行时(was/were doing); 7、将来进行时( will be doing); 8、过去将来进行时( would be doing)(was/were going…

AntDesign Form表单字段校验的三种方式

1.使用getFieldDecorator的rules规则 最简单的方法就是使用getFieldDecorator中的rules验证。rules中定义校验规则&#xff0c;message为校验不通过时的提示文字。 {getFieldDecorator(inputContent, {rules: [{required: true, message: 请输入内容!,}],})(<Input /> )}…

matlab的max与min函数

max作用于矩阵有比较并保留较大数字的功能。如下所示&#xff1a; 矩阵a中每个元素与2相比较取较大值&#xff0c;1比2小&#xff0c;所以替换为2. 矩阵a中每个元素与3相比取较小值&#xff0c;4比3小&#xff0c;所以替换为3. a 1 2 3 4 K>> max(a,2)…

JAVA Servlet API简介及接口与类的用法

本章介绍了Java Servlet API中的主要的接口与类的用法&#xff0c;并且介绍了它们的生命周期。表4-1 对接口与类的作用与生命周期作了归纳。这些接口与类的生命周期都由Servlet容器来控制&#xff0c;容器会在特定的时刻创建或销毁它们的实例。 表4-1 Servlet API中的主要的接口…

Spring框架的事务管理的基本概念

1. 事务&#xff1a;指的是逻辑上一组操作&#xff0c;组成这个事务的各个执行单元&#xff0c;要么一起成功,要么一起失败&#xff01; 2. 事务的特性* 原子性* 一致性* 隔离性* 持久性3. 如果不考虑隔离性,引发安全性问题* 读问题:* 脏读:* 不可重复读:* 虚读:* 写问题:* 丢失…

python rest 框架_python-更新用户REST框架Django

我需要在REST框架中更新我的用户views.pyclass UserUpdate(APIView):permission_classes (permissions.IsAuthenticated,)def post(self,request):userUser.objects.get(idrequest.user.id)try:user_serializerUserSerializer(request.user,datarequest.data, partialTrue)if …

matlab将满足某一条件的矩阵元素置零

想把矩阵中小于100的元素置零&#xff0c;有两种方法&#xff1a; 方法一&#xff1a;S(S<100)0; 方法二&#xff1a;S(find(S<100))0; 原理&#xff1a; A [ 1 2; 3 4]; B (A>2) %找到大于2 的位置索引 B 0 0 1 1 %形成布尔矩阵 A(B)0 %将对…

linux nona怎么用_nano命令_Linux nano 命令用法详解:字符终端文本编辑器

nano是一个字符终端的文本编辑器&#xff0c;有点像DOS下的editor程序。它比vi/vim要简单得多&#xff0c;比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。nano命令可以打开指定文件进行编辑&#xff0c;默认情况下它会自动断行&#xff0c;即在一行中输入过长…

4g内存 堆内存分配多少_我需要多少内存

4g内存 堆内存分配多少什么是保留堆&#xff1f; 我需要多少内存&#xff1f; 在构建解决方案&#xff0c;创建数据结构或选择算法时&#xff0c;您可能会问自己&#xff08;或其他人&#xff09;这个问题。 如果此图包含1,000,000条边并且我使用HashMap进行存储&#xff0c;此…