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 := "[email protected]"
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;而另一种则是代理进程主动向管理进程报告某些重要事件发生,成为Trap。SNMP中默认的agent接听端口是161,而接收trap的端口为162。
6委托代理(proxy agent)
为没有SNMP服务的设备提供资源信息,委托代理能提供如协议转换和过滤操作的汇集功能。然后委托代理来对管理对象进行管理。有时网络管理协议无法控制某些网络元素,例如该网络元素使用的是另一种网络管理协议。这时可使用委托代理(proxy agent)。
nms和agent可以在一台机子上共存。
1,网络元素
网络中具体的通信设备或逻辑实体,又称网元
2,对象(object)
通信和信息处理范畴里可标识的切拥有一定信息特性的资源。但应注意,这里所用的“对象”与面向对象系统中所定义的对象并不完全一样。
3,community (共同体)
共同体实际上就是用来实现管理应用实体之间身份鉴别的,可以把它理解为一个带有权限的登陆账户,这是访问网络设备的重要凭据。假如community是public,其权限是只读的,那你一 以此用户登陆就可以查看有关记录的数据。如果其权限是读写的,你就有权修改其中的一些设置,如封锁某一个交换机的端口。大部分默认情况下,以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