免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1421 | 回复: 0
打印 上一主题 下一主题

snmpwalkrfc1213介绍 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-06 20:07 |只看该作者 |倒序浏览

使用SNMPRFC1213-mib定义进行流量分析
 使用SNMPRFC1213-mib定义进行流量分析

  使用snmp管理网络设备,*unix下常用net-snmp的snmpwalk,snmpget等,要得到网络的相关信息,可通过提取RFC1213-mib的定义值得到,例如:要取得远程主机的团体字为"abcd",IP为172.30.1.8的网络端口流入(IN)的数据流量,可以使用如下命令:
           snmpwalk -v 2c -c abcd 172.30.1.8 RFC1213-MIB::ifInOctets

返回各端口信息如下:
  IF-MIB::ifInOctets.112 = counter32:165070862
    IF-MIB::ifInOctets是 rfc1213的定义端口流入数据量
    112是查询网络设备的1模块插槽12端口
    counter32后的数值就是该端口的流量,165070862 bits,在*unix下可以通过shell命令取得这两个值

# 首先取得 12 接口的 ifIndex
index=$(snmpwalk -v 2c -c abcd -IR 172.30.1.8 RFC1213-MIB::ifDescr |grep IF-MIB::ifInOctets.112 |cut -d '=' -f 1|cut -d '.' -f 2)

# 再通过 snmp 协议取得 ififInOctets 和 ifOutOctets 的值
# 也可在 /etc/snmp.conf 中配置了 defVersion 和 defCommunity ,这样 snmpget 命令不用指定这两个参数

eth12_in=$(snmpget -v 2c -c abcd -IR -Os 172.30.1.8 ifInOctets.${index}|cut -d ':' -f 2|tr -d '[:blank:]')
eth12_out=$(snmpget -v 2c -c abcd -IR -Os 172.30.1.8 ifOutOctets.${index}|cut -d ':' -f 2 |tr -d '[:blank:]')
echo $eth12_in
echo $eth12_out


[/url]
snmp--一般端口流量分析

针对普通网络设备的端口,MIB的相关定义是Interface组,主要管理如下信息:
ifIndex            端口索引号
ifDescr            端口描述
ifType            端口类型
ifMtu            最大传输包字节数
ifSpeed            端口速度
ifPhysAddress        物理地址
ifOperStatus        操作状态
ifLastChange        上次状态更新时间
*ifInOctets        输入字节数
*ifInUcastPkts      输入非广播包数
*ifInNUcastPkts      输入广播包数
*ifInDiscards        输入包丢弃数
*ifInErrors        输入包错误数
*ifInUnknownProtos    输入未知协议包数
*ifOutOctets        输出字节数
*ifOutUcastPkts      输出非广播包数
*ifOutNUcastPkts      输出广播包数
*ifOutDiscards      输出包丢弃数
*ifOutErrors        输出包错误数
ifOutQLen          输出队长
其中,*号标识的是与网络流量有关的信息。

例如看看网络接口:
输入:
#snmpwalk -v 1 222.90.47.169 -c public ifIndex
输出:
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
表示有三个网络接口
网络接口明成:
[root@localhost snmp]# snmpwalk -v 1 222.90.47.169 -c public ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: ppp0
表示;三个接口分别为
1 本地回路
2 以太网卡
3 ADSL连接

取本地网卡的数据流量也可以

#!/bin/bash

# 首先取得 eth0 接口的 ifIndex
index=$(snmpwalk -IR localhost RFC1213-MIB::ifDescr |grep eth0|cut -d '=' -f 1|cut -d '.' -f 2)

# 再通过 snmp 协议取得 ififInOctets 和 ifOutOctets 的值
# 由于在 /etc/snmp.conf 中配置了 defVersion 和 defCommunity ,所以 snmpget 命令不用指定这两个参数

eth0_in=$(snmpget -IR -Os localhost ifInOctets.${index}|cut -d ':' -f 2|tr -d '[:blank:]')
eth0_out=$(snmpget -IR -Os localhost ifOutOctets.${index}|cut -d ':' -f 2 |tr -d '[:blank:]')
echo $eth0_in
echo $eth0_out
  #!/bin/bash
# 首先取得 eth0 接口的 ifIndex

index=$(snmpwalk -IR localhost RFC1213-MIB::ifDescr |grep lo|cut -d '=' -f 1|cut -d '.' -f 2)
lo_in=$(snmpget -IR -Os localhost ifInOctets.${index}|cut -d ':' -f 2|tr -d '[:blank:]')
lo_out=$(snmpget -IR -Os localhost ifOutOctets.${index}|cut -d ':' -f 2 |tr -d '[:blank:]')
echo $lo_in

echo $lo_out




本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u1/50921/showart_519172.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP