SNMP协议详细介绍及SNMP监控LXD端口流量

这篇具有很好参考价值的文章主要介绍了SNMP协议详细介绍及SNMP监控LXD端口流量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SNMP概述

1.1 SNMP原理


网络设备越来越多,网络规模越来越大,管理这些设备也越来越重要。远程管理网络的需求日益迫切,SNMP 应运而生。SNMP即"简单网络管理协议",用于网络管理的协议,用于网络设备的管理。

SNMP被设计为工作在TCP/IP协议族上,SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理,但是SNMP本身工作在应用层。

SNMP协议主要由三大部分构成:SNMP管理实体、多个SNMP被管理实体以及网络管理协议

  • 管理实体:运行再在网络管理工作站上,网络管理员通过管理实体和网络设备打交道
  • 被管理设备:网络设备实体,每个设备中运行SNMP代理(Agent)
  • 网络管理协议:管理实体和被管理设备之间的通信规范,包括MIBSMISNMP本身
    snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

1.2 MIB


被管理对象值的集合称之为MIB,定义了数据格式、类型、顺序、意义等,使用SMI中定义的类型和ASN.1中的基本类型对对象进行描述,是一个使用SMI描述的管理信息库。

国际化标准组织提出ASN.1【解释:高级的数据描述语言,描述数据的类型、结构、组织、及编码方法,包括符号和语法两部分】来标识MIB模块和其对象。

MIB中的每个节点都具有唯一的OID(Object Identifier),按照从根节点开始的分支结构排列,OID是一个由数字组成的序列,用于唯一标识MIB中的每个节点,用来获取网络设备的信息
snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

1.3 SMI


SMI是一种数据定义语言,用于定义MIB及其对象,例如定义基本数据类型,对象模型,以及基本编码规则。

1.3.1 基本数据类型

为了保证简单,只定义了十一种基本数据类型
snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

1.3.2 对象模型

也称之为OBJECT-TYPE,定义被管对象的数据类型、状态和语义

就是封装一个对象来描述被管理对象的信息

被管理对象名称 OBJECT-TYPE{
	被管理对象的属性的基本数据类型
	被管理对象的读、写、创建权限
	被管理对象的当前状态(包括合法的、过时的、强制的)
	被管理对象的描述信息
	被管理对象的可被查询的OID位置
}

例如:封装对象sysUpTime

sysUpTime OBJECT-TYPE{
	# 数据类型:时间
	SYNTAX TiméTicks
	# 权限:只读
	ACCESS read-only
	# 状态:强制的
	STATUS mandatory
	# 描述信息
	DESCRIPTION
		"The time (in hundredths of a second) since the network management protio of the system was last re-initialized."
	# OID位置:system下第3个分支位置
	::= {system 3}
}
1.3.3 基本编码规则

采用TLV编码规则,TLVASN.1下的一种可变的格式,其中:

  • T 表示数据类型
  • L 定义数值的长度
  • V 表示实际的数值

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

下图所示为ASN.1的常见数据类型

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

例如实现编码:路由器router的接口数量为15,其中15的ASCIIf

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

1.4 SNMP


负责在管理实体和被管理实体之间传输MIB条信息的通信协议

常见的有以下三个操作,要注意PDU通常是使用UDP报文传输

PDU类型 方向 描述信息
GetRequest 管理者 -> 被管理者 读取网络设备的状态信息
SetRequest 管理者 -> 被管理者 远程配置网络设备参数
Trap 被管理者 -> 管理者 向管理者报告异常事件

1.5 常见OID


下面是获取系统信息的常见OID简写以及对应的数字串

简写 对应数字串 涵义
sysDescr 1.3.6.1.2.1.1.1 设备描述符
sysUpTime 1.3.6.1.2.1.1.3 设备运行时间
sysName 1.3.6.1.2.1.1.5 设备名称

下面是监控网络的常见OID简写以及对应的数字串

简写 对应数字串 涵义
ifDescr 1.3.6.1.2.1.2.2.1.2 接口描述符
ifType 1.3.6.1.2.1.2.2.1.3 接口类型
ifSpeed 1.3.6.1.2.1.2.2.1.5 接口速率
ifPhysAddress 1.3.6.1.2.1.2.2.1.6 接口物理地址
ifInOctets 1.3.6.1.2.1.2.2.1.10 接口输入字节数
ifOutOctets 1.3.6.1.2.1.2.2.1.16 接口输出字节数
ifInErrors 1.3.6.1.2.1.2.2.1.14 接口输入错误数
ifOutErrors 1.3.6.1.2.1.2.2.1.20 接口输出错误数

通过如下代码即可调用

# 获取网卡进出流量
snmpget -v 2c -c public 192.168.72.20 ifInOctets.950 ifOutOctets.950

# 获取网卡进出流量
snmpget -v 2c -c public 192.168.72.20 1.3.6.1.2.1.2.2.1.10.950 1.3.6.1.2.1.2.2.1.16.950

或者使用walk命令

# 获取系统名称
snmpwalk -v 2c -c public 192.168.72.20 sysName

# 获取所有端口名称和编号的映射关系
snmpwalk -v2c -c public 192.168.72.20 1.3.6.1.2.1.31.1.1.1.1

二、流量监控


2.1 实验要求

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

  1. 搭建如下网络拓扑图,容器之间配置OSPF协议,保证可以互相访问

  2. 设置YR3为服务器端,YR1为客户端

  3. YR1访问YR3,,YR3可监控本身流量

2.2 安装工具


在服务器端YR3下载相关软件,同时设置开机自启,[注意:这里是snmpd]

apt-get install snmpd
apt-get install snmp
systemctl enable snmpd
systemctl start snmpd

2.3 配置SNMP共同体


2.3.1 共同体意义

SNMP共同体(Community)是一个简单的密码系统,用于保护SNMP的管理访问。当SNMP管理者向SNMP代理发出请求时,必须指定正确的共同体名称才能成功访问SNMP代理。如果共同体名称不正确,则SNMP代理将拒绝该请求。

SNMP代理的配置中,通常会设置多个不同的共同体名称。这些共同体名称可以具有不同的访问级别和权限。例如,可以将某些共同体名称配置为只读,而将其他共同体名称配置为读写。这样可以根据具体的管理需求来分配不同的访问权限。

2.3.2 配置共同体

在服务器端YR3中配置共同体

vi /etc/snmp/snmpd.conf

在文件末尾添加如下内容

rocommunity public

2.4 配置允许远程访问


YR3vi /etc/snmp/snmpd.conf修改配置文件,否则只能本地访问

# 大概在15行,将下面一行注释掉:
agentAddress  udp:127.0.0.1:161

重启之后查看当前状态,服务对外开启

service snmpd restart
netstat -antup | grep 161 

2.5 映射SNMP中网卡编号


SNMP协议中,端口编号通常是由设备自动生成的,端口通常使用整数编号进行标识,而不是名称。

进入YR3,获取YR3上端口的编号

# 获取所有端口名称和编号的映射关系
snmpwalk -v2c -c public 192.168.72.20 1.3.6.1.2.1.31.1.1.1.1

其中-v表示指定版本,-c表示指定共同体名称,192.168.72.20YR3ip地址

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

可以看到

# 表示eth1网卡
1.3.6.1.2.1.31.1.1.1.948

# 表示eth2网卡
1.3.6.1.2.1.31.1.1.1.950

2.6 开启流量监控


YR3中设置需要监控的流量端口,打开配置文件

vi /etc/snmp/snmpd.conf

在文件末尾添加如下内容

# 指定需要获取流量信息的网络接口
interface eth2
   # 指定传输速度
   ifSpeed 100000000
	# 指定网络接口类型,这里是以太网接口类型。
   ifType ethernetCsmacd
   # 指定网络接口的描述信息
   ifDescr "Interface_Eth2"
   # 获取网络接口的输入字节数,oid是1.3.6.1.2.1.2.2.1.10,最后的950表示eth2接口
   ifInOctets Counter32 1.3.6.1.2.1.2.2.1.10.950
   # 获取网络接口的输出字节数,oid是1.3.6.1.2.1.2.2.1.16,最后的950表示eth2接口
   ifOutOctets Counter32 1.3.6.1.2.1.2.2.1.16.950

重启服务

systemctl restart snmpd

2.7 查看流量监控


YR1YR3发送数据包,在YR3中开启端口流量监控

其中192.168.72.20YR3ip地址,ifInOctets.950ifOutOctets.950分别指定了输入和输出流量的OID(即在2.6中的定义)

snmpwalk -v 2c -c public 192.168.72.20 ifInOctets.950 ifOutOctets.950

2.8 碰到的问题


2.8.1 问题一

问题描述

访问出错无法获得流量,无法识别有效的自定义标识符

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

解决办法

通过下载第三方的解析库来实现标识符的转换

进入服务器端YR3,下载第三方库

apt-get install snmp-mibs-downloader

在服务器端YR3修改配置文件vi /etc/snmp/snmp.conf

# 注释掉下面这一行
mibs :

重启服务

service snmpd restart

再次监控流量即可

snmpwalk -v 2c -c public 192.168.72.20 ifInOctets.950 ifOutOctets.950

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

2.8.2 问题二

问题描述

只能监控进或者出的流量,而不能同时监控两个

解决办法

snmpwalk只支持输出第一个参数的流量结果,将其替换为snmpget即可监控进出流量

snmpget -v 2c -c public 192.168.72.20 ifInOctets.950 ifOutOctets.950

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP

2.8.2 问题三

问题描述

每次输入的命令只能监控当前时刻流量,如何持续监控

解决办法

配合脚本文件实现

vi getFlow.sh

添加如下内容

#!/bin/bash

# 定义监控流量进出的命令
InFlow="snmpget -v 2c -c public 192.168.72.20 ifInOctets.950"
OutFlow="snmpget -v 2c -c public 192.168.72.20 ifOutOctets.950"

# 定义存放日志位置
logFile="/root/Flow.log"

# 循环获5次流量
for((i=1;i<=5;i++))
do
    # 获取进入流量和出去流量,$NF表示获取最后一列(即获取流量大小)
    in_bytes=$($InFlow | awk '{print $NF}')
    out_bytes=$($OutFlow | awk '{print $NF}')

        # 将流量信息写入日志文件
    echo "$(date +%Y-%m-%d\ %H:%M:%S) - In: $in_bytes bytes, Out: $out_bytes bytes" >> $logFile

    # 等待3秒再次获取流量信息
    sleep 3
done
echo "流量监控完毕,请查看日志文件,日志文件位置如下:$logFile"

运行截图如下

snmp对实时流量新的监控的oid,NFV,网络,服务器,SNMP文章来源地址https://www.toymoban.com/news/detail-804879.html

到了这里,关于SNMP协议详细介绍及SNMP监控LXD端口流量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SNMP 计算机网络管理 实验3(二)SNMP协议工作原理验证与分析

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月11日
    浏览(22)
  • SNMP 计算机网络管理 实验3(三) SNMP协议工作原理验证与分析

    一、实验目的     学习捕获SNMP报文,通过报文分析理解SNMP协议的工作过程。 二、实验内容与设计思想 实验内容:编写代码,测试   1)使用snmputilg发送SNMP数据包; 使用wireshark抓包;使用netstat -an查看代理站TCP/UDP连接表,分析并验证SNMP协议的工作过程;   2)自行挑选MIB-2功

    2024年02月11日
    浏览(28)
  • snmp协议详解

    目录 1、什么是snmp协议? 2、snmp协议的用途 3、snmp的基本组件 1、 NMS 2、Agent 3、Managed Object 4、MIB 4、SNMP端口 5、SNMP协议工作原理 6、SNMP的应用 snmp协议是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管

    2023年04月08日
    浏览(21)
  • zabbix 监控 windows 系统、java应用、SNMP

    目录 一、部署 zabbix 监控 windows系统 1.下载 Windows 客户端 Zabbix agent 2 2.安装客户端,在监控的windows主机上配置 3.在服务端 Web 页面添加主机,关联模板 二、部署 zabbix 监控 Java应用 1.客户端开启 java jmxremote 远程监控功能 1.1配置 java jmxremote 远程监控功能 1.2启动服务,查看端口

    2024年02月15日
    浏览(26)
  • SNMP(简单网络管理协议)详解

    SNMP(简单网络管理协议) : 专门用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理

    2024年02月02日
    浏览(26)
  • 关于snmp oid以及使用snmpwalk作为进程监控工具

    snmpwalk命令的帮助 oid定义和常见oid oid是对象标识符的缩写,它是一种用来在全球范围内唯一地标识某个对象、概念或事物的机制,它由一串数字组成,表示了一个树形的层次结构。oid在计算机科学中有很多应用,例如在计算机安全、网络管理、数据交换等领域中。 常见的o

    2024年02月16日
    浏览(26)
  • 统一观测丨使用 Prometheus 监控 SNMP,我们该关注哪些指标?

    简单网络管理协议SNMP(Simple Network Management Protocol)用于网络设备的管理。网络设备种类多种多样、不同厂商提供的管理接口(如命令行接口)又不相同,这使得网络管理变得愈发复杂。为解决这一问题,SNMP应运而生。SNMP作为广泛应用于TCP/IP网络的标准网络管理协议,提供了

    2024年01月24日
    浏览(24)
  • SNMP简单介绍

    SNMP(Simple Network Management Protocol)是一种用于管理网络设备的协议。它是一种标准化的协议,被用于监控和管理网络设备,包括路由器、交换机、服务器、打印机和其他设备。 SNMP协议的基本组成部分包括: 管理站(Management Station):通常是一个PC或服务器,用于监控和管理网

    2024年02月12日
    浏览(22)
  • snmp trap 与snmp相关介绍、安装、命令以及Trap的发送与接收java实现

    1.1、什么是Snmp SNMP是英文\\\"Simple Network Management Protocol\\\"的缩写,中文意思是\\\"简单网络管理协议\\\"。SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议。SNMP主要用于网络设备的管理。由于SNMP协议简单可靠 ,受到了众多厂商的欢迎,成为了目

    2024年02月02日
    浏览(35)
  • SNMP协议的了解与简单的抓包分析

    本人小白,由于一些学习上和项目上的实际需求,对SNMP协议进行了一些学习研究,主要应用于交通信号机和城市大脑。以下是本人的一些学习经验,如有错误,欢迎大家交流指正。 1.SNMP介绍 SNMP是简单网络管理协议,其全称为simple network management Protocol。SNMP是一种简单网络管

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包