SNMP监控方式简介与实战

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

更多文章请移步:www.yanjun.pro

 --------------- 最后编辑时间:2022年7月19日 ---------------

1、SNMP协议概述

SNMP(简单网络管理协议)一般在对网络设备的监控中使用相对较多。简单网络管理包含两部分:管理进程和被管理设备,管理进程和被管理端得通信方式有以下三种:

  • 被管理端向管理端发送数据
  • 管理端向被管理端请求获取数据
  • 管理端向被管理端请求改变数据

基于 TCP/IP 的网络管理由以下三部分组成:

  • 管理信息库(MIB),包含所有代理进程的可被查询和修改的参数
  • 管理信息结构(SMI):关于 MIB 的一套公用结构和标识符号
  • 简单网络管理协议(SNMP):管理进程和代理进程之间的通信协议

2、SNMP协议的工作方式

SNMP工作在 OSI 模型的应用层(第七层),主要支持以下几种基本操作:

  • Get:NMS 使用该操作从 Agent 获取一个或多个参数值
  • GetNext:NMS 使用该操作从 Agent 获取一个或多个参数的下一个参数值
  • Set:NMS 使用该操设置 Agent 的一个或多个参数值
  • Response:Agent 返回一个或多个参数值,该操作是前面三种操作的响应
  • Trap:Agent 主动发出的操作,通知 NMS 有某些事情发生

其中 Trap 使用 UDP 协议的 162 号端口发送报文,其余操作使用 UDP 协议的 161 号端口发送报文,因此同一台设备,既可以做 Agent 也可以做 NMS

3、SNMP协议工作原理

3.1、SNMP V1 和 SNMP V2 实现机制

SNMP V1 和 SNMP V2 的实现机制基本相同,只是 SNMP V2 丰富了错误代码,以及新增了 GetBulk操作,因此,此处使用 SNMP V1 做介绍

3.1.1、Get 操作

NMS 从被管理设备 MIB 中获取 sysName 的值,community(团体名称,可以理解为密码) 为 public 进行 read 操作,流程如下:

  • NMS 给 Agent 发送 Get 请求,请求报文会对以下主要字段进行设置: version 字段的值为 1,community 字段的值为 public,PDU (协议数据单元,也就是 SNMP 报文)的 variable bindings 中的 Name1 字段的值为 sysName.0
  • Agent 给 NMS 发送 Get 响应,说明是否获取成功,如果获取成功,则返回 Response PDU 的 variable bindings 中 Value1 字段的值就是设备的名字;如果获取失败,则在 Error status 字段中填上出错的原因,在 Error index 字段上填上出错的位置信息
3.1.2、GetNext 操作

NMS 从被管理设备 MIB 中获取 sysName 的下一个节点 sysLocation 的值,community 为 public 进行 read 操作,流程如下:

  • NMS 给 Agent 发送 GetNext 请求,请求报文会对以下主要字段进行设置: version 字段的值为 1,community 字段的值为 public,PDU 的 variable bindings 中的 Name1 字段的值为 sysName.0
  • Agent 给 NMS 发送 GetNext 响应,说明是否获取成功,如果获取成功,则返回 Response PDU 的 variable bindings 中 Value1 字段的值为 sysName.0 的下一个节点 sysLocation.0 中 Value1 字段中的值;如果获取失败,则在 Error status 字段中填上出错的原因,在 Error index 字段上填上出错的位置信息
3.1.3、Set 操作

NMS 需要将被管理设备 MIB 节点中 sysName 的值修改为 newName,则使用 community 为 private 进行 write操作

  • NMS 给 Agent 发送 Set 请求,请求报文会对以下主要字段进行设置: version 字段的值为 1,community 字段的值为 private,PDU 的 variable bindings 中的 Name1 字段的值为 sysName.0,Value1 字段的值为 newName
  • Agent 给 NMS 发送 Set 响应,说明设置成功,如果设置成功,则 Response PDU 的 variable bindings 中 Value1 字段的值为 newName;如果设置失败,则在 Error status 字段中填上出错的原因,在 Error index 字段上填上出错的位置信息
3.1.4、Trap

当设备发生某些异常或者变化时,Agent 会主动发送 Trap 报文给 NMS

3.2、SNMP V3 实现机制

SNMP V3 的实现机制和 SNMP V1、SNMP V2c 基本相同,主要区别在于 SNMP V3 增加了认证、加密和解密的处理,这里以 SNMP V3 的 Get 操作进行介绍文章来源地址https://www.toymoban.com/news/detail-443042.html

  • NMS(网络管理系统) 首先发送不带任何认证和加密参数的 Get 请求,将 Flags 字段设置为 0x4,以获取 contextEngineID、contextame、AuthoritativeEngineID、AuthoritativeEngineBoots、AuthoritativeEngineTime等参数相关参数的值
  • agent 解析消息,发送 report 报文,并携带上述相关参数的值
  • NMS 再次给 agent 发送 Get 请求,请求报文的 version 字段的值被置为 3,将在上一步获取到的值填入到相应的字段中,PDU 的 variable bindings 中的 Name1 字段的值为 sysName.0,并根据配置的认证算法计算出 authenticationParameters,根据配置的加密算法计算出 privacyParameters,并使用配置的加密算法对 PDU 数据进行加密
  • agent 对消息进行认证,认证通过后对 PDU 报文进行解密,

到了这里,关于SNMP监控方式简介与实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Prometheus监控之SNMP Exporter介绍和数据展现

    由于技术能力有限,文章仅能进行简要分析和说明,如有不对的地方,请指正,谢谢🙂。 SNMP协议全称是:Simple Network Management Protocol,译为简单网络管理协议,是作为TCP/IP网络管理标准协议,为不同的设备提供统一接口,实现了网络设备之间的统一管理。 SNMP协议分为三个版

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

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

    2024年02月16日
    浏览(27)
  • 【Linux】部署Prometheus + Grafana简介、监控及设置告警详细操作(多种方式安装,亲测无问题)

    🍁 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 服务器类型 IP地址 组件 Prometheus 服务器、agent 服务器、grafana 服务器 172.16.11.209 Prometheus、node_exporter、Grafana

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

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

    2024年01月24日
    浏览(25)
  • zabbix proxy的配置及zabbix实现高可用(监控 windows,java应用,SNMP等)

    zabbix 分布式代理服务器,可以代替zabbix server 采集性能和可用性数据。zabbix proxy 在zabbix 的部署是可选部分。 zabbix proxy 的部署可以很好的分担单个zabbix server 的负载 通常监控大于500台主机时使用,需要进行分布式监控架构部署 分布式监控的作用: ●分担 server 的集中式压力

    2024年02月15日
    浏览(27)
  • 爆炸性!接口鉴权方式及实战案例,这篇文章让你的接口安全像坦克防护!

    接口鉴权是指在访问API接口时对用户进行身份验证和权限检查,以确保API接口的安全性和可靠性。常见的接口鉴权方式包括API Key、Basic Authentication、OAuth、Token 等。本文将详细解析这些常见的接口鉴权方式,并使用Python代码进行演示。 一、API Key API Key 是一种基于密钥的验证方

    2024年02月16日
    浏览(33)
  • 如何制作招生简介,吸引更多的报名学生

    ​在当今竞争激烈的招生市场中,制作一份引人注目的招生简介对于吸引更多的报名学生至关重要。但是你知道如何制作招生简介,吸引更多的报名学生? 以下是小小建议和教程,如果有益,可以参考参考 首先我们需要一款制作招生简介的工具,比如 FLBOOK在线制作电子杂志

    2024年01月23日
    浏览(34)
  • Web3 智能合约通过数组方式存储更多学生数据

    之前的文章 Web3 在Truffle项目中编写出自己的第一个solidity智能合约带大家写了一个相对捡漏的智能合约 这样 每次 我们set 后 都会将原来的数据覆盖掉了 那么 有些人可能会想 那我们弄个数组 将新的数据全部加到数组里不就行了吗? 这个想法其实就很不错 我们可以基于这个

    2024年02月15日
    浏览(40)
  • AI 与自动化:更多的自动化,全新的自动化方式?

    每一次 ChatGPT 的更新,都会给我们带来大量新的能力,这些能力往往会逐步应用在改变我们现有工作流程上,因此我是比较看好这一波 AI 在自动化(RPA)领域的价值的,不过要将一个新技术真正应用直至取代复杂的工作流程,我觉得还需要不少的时间,但应该是接下来很大的

    2024年02月16日
    浏览(29)
  • flutter开发实战-下拉刷新与上拉加载更多实现

    flutter开发实战-下拉刷新与上拉加载更多实现 在开发中经常遇到列表需要下拉刷新与上拉加载更多,这里使用EasyRefresh,版本是3.3.2+1 EasyRefresh可以在Flutter应用程序上轻松实现下拉刷新和上拉加载。它几乎支持所有Flutter Scrollable小部件。它的功能与安卓的SmartRefreshLayout非常相似

    2024年02月07日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包