SNMP的监控

SNMP的监控

  • 一、SNMP 介绍
    • 1.1 什么是SNMP
    • 1.2 SNMP的组件
      • 1.2.1 网络管理系统 NMS(Network Management System)
      • 1.2.2 代理进程(Agent)
      • 1.2.3 被管对象(Managed Object)
      • 1.2.4 管理信息库MIB(Management Information Base)
  • 二、SNMP类型
    • 2.1 SNMP版本
    • 2.2 SNMP端口
  • 三、SNMP工作方式
    • 3.1 SNMP操作方式
    • 3.2 SNMP Traps
    • 3.3 SNMP的应用
  • 四、SNMP对Linux系统的监控
    • 4.1 安装软件包
    • 4.2 修改配置文件
    • 4.3 服务启动
    • 4.4 测试
  • 五、SNMP对windows系统的监控

一、SNMP 介绍

1.1 什么是SNMP

  • SNMP(Simple Network Management Protocol) 设计在TCP/IP协议簇上的,为网络节点提供了一个通用的管理方法。
  • SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制,提供最基本的功能集,适合小型、快速、低价格的环境使用,而且SNMP以用户数据报协议(UDP)报文为承载,因而受到绝大多数设备的支持,同时保证管理信息在任意两点传送,便于管理员在网络上的任何节点检索信息,进行故障排查

1.2 SNMP的组件

  • SNMP基本组件包括网络管理系统NMS(Network Management System)、代理进程(Agent)、被管对象(Managed Object)和管理信息库MIB(Management Information Base)。

在这里插入图片描述

1.2.1 网络管理系统 NMS(Network Management System)

  • NMS在网络中扮演管理者角色,是一个采用SNMP协议对网络设备进行管理/监视的系统,运行在NMS服务器上。
    1、NMS在网络中扮演管理者角色,是一个采用SNMP协议对网络设备进行管理/监视的系统,运行在NMS服务器上。
    2、NMS可以接收设备上的Agent主动发送的Trap信息,以获知被管理设备当前的状态。

1.2.2 代理进程(Agent)

  • Agent是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。
    1、Agent是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。
    2、当设备发生故障或者其它事件时,设备会通过Agent主动发送信息给NMS,向NMS报告设备当前的状态变化。

1.2.3 被管对象(Managed Object)

  • Managed Object指被管理对象。每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件,也可以是在硬件、软件(如路由选择协议)上配置的参数集合。

1.2.4 管理信息库MIB(Management Information Base)

  • MIB是一个数据库,指明了被管理设备所维护的变量,是能够被Agent查询和设置的信息。MIB在数据库中定义了被管理设备的一系列属性:对象的名称、对象的状态、对象的访问权限和对象的数据类型等。
  • MIB功能
    1、Agent通过查询MIB,可以获知设备当前的状态信息。
    2、Agent通过修改MIB,可以设置设备的状态参数。
  • SNMP的MIB采用树型结构,它的根在最上面,根没有名字。如下图所示的是MIB的一部分,它又称为对象命名树。每个对象标识符OID(object identifier)对应于树中的一个管理对象,该树的每个分支都有一个数字和一个名称,并且每个点都以从该树的顶部到该点的完整路径命名,如system的OID为1.3.6.1.2.1.1,interface的OID为1.3.6.1.2.1.2。
    在这里插入图片描述

二、SNMP类型

2.1 SNMP版本

  • SNMP有三种版本:SNMPv1,SNMPv2c和SNMPv3。
    1、SNMPv1:SNMP的第一个版本,它提供了一种监控和管理计算机网络的系统方法,它基于团体名认证,安全性较差,且返回报文的错误码也较少。它在RFC 1155和RFC 1157中定义。
    2、SNMPv2c:第二个版本SNMPv2c引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型。它在RFC 1901,RFC 1905和RFC 1906中定义。
    3、SNMPv3:鉴于SNMPv2c在安全性方面没有得到改善,IETF颁布了SNMPv3版本,提供了基于USM(User Security Module)的认证加密和基于VACM(View-based Access Control Model)的访问控制,是迄今为止最安全的版本。SNMPv3在RFC 1905,RFC 1906,RFC 2571,RFC 2572,RFC 2574和RFC 2575中定义。

2.2 SNMP端口

  • SNMP端口是SNMP通信端点,SNMP消息传输通过UDP进行,通常使用UDP端口号161/162。有时也使用传输层安全性(TLS)或数据报传输层安全性(DTLS)协议,端口使用情况如下表所示。
过程协议端口号
代理进程接收请求信息UDP协议161
NMS与代理进程之间的通信UDP协议161
NMS接收通知信息UDP协议162
代理进程生成通知信息-任何可用的端口
接收请求信息TLS/DTLS10161
接收通知信息TLS/DTLS10162

三、SNMP工作方式

  • 一旦网络中启动SNMP协议,NMS作为整个网络的网管中心,会对设备进行管理。每个被管理设备都包含驻留在设备上的Agent、多个被管对象和MIB,NMS通过与运行在被管理设备上的Agent交互,由Agent通过对设备端的MIB的操作,完成NMS的指令。SNMP的工作原理是将协议数据单元(也称为SNMP GET请求)发送到响应SNMP的网络设备。用户通过网络监控工具可以跟踪所有通信过程,并从SNMP获取数据。

3.1 SNMP操作方式

操作类型描述备注
GetGet操作可以从Agent中提取一个或多个参数值。-
GetNextGetNext操作可以从Agent中按照字典序提取下一个参数值。-
SetSet操作可以设置Agent的一个或多个参数值。-
ResponseResponse操作可以返回一个或多个参数值。这个操作是由Agent发出的,它是GetRequest、GetNextRequest、SetRequest和GetBulkRequest四种操作的响应操作。Agent接收到来自NMS的Get/Set指令后,通过MIB完成相应的查询/修改操作,然后利用Response操作将信息回应给NMS。-
TrapTrap信息是Agent主动向NMS发出的信息,告知管理进程设备端出现的情况。-
GetBulkGetBulk操作实现了NMS对被管理设备的信息群查询。SNMPv1版本不支持GetBulk操作
InformInformRequest也是被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS回复InformResponse来进行确认。SNMPv1版本不支持Inform操作

3.2 SNMP Traps

  • SNMP Traps是指SNMP Agent主动将设备产生的告警或事件上报给NMS,以便网络管理员及时了解设备当前运行的状态。

  • SNMP Agent上报SNMP Traps有两种方式:Trap和Inform。Trap和Inform的区别在于,SNMP Agent通过Inform向NMS发送告警或事件后,NMS需要回复InformResponse进行确认。

  • Trap操作工作原理
    Trap不属于NMS对被管理设备的基本操作,它是被管理设备的自发行为。当被管理设备达到告警的触发条件时,会通过SNMP Agent向NMS发送Trap消息,告知设备侧出现的异常情况,便于网络管理人员及时处理。例如被管理设备热启动后,SNMP Agent会向NMS发送warmStart的Trap。
    这种Trap信息是受限制的。只有在设备端的模块达到模块预定义的告警触发条件时,SNMP Agent才会向管理进程报告。这种方法的好处是仅在严重事件发生时才发送Trap信息,减少报文交互产生的流量。

  • Inform操作工作原理
    Inform操作也是被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS进行接收确认。如果被管理设备没有收到确认信息则:
    1、将告警或事件暂时保存在Inform缓存中。
    2、重复发送该告警或事件,直到NMS确认收到该告警或者发送次数达到最大重传次数。
    3、被管设备上会生成相应的告警或事件日志。

3.3 SNMP的应用

  • 网管可以通过SNMP协议管理设备,如下图所示,管理员要对整个网络的设备进行配置和管理,这些设备分布较为分散,管理员到现场进行设备配置是不现实的。当这些网络设备来自不同的厂商,而每个厂商都提供一套独立的管理接口(比如使用不同的命令行),将使得批量配置网络设备的工作量巨大。因此,在这种情况下,如果采用传统的人工方式,将会带来成本高、效率低的弊端,此时网络管理员可以利用SNMP远程管理和配置其下属设备,并对这些设备进行实时监控。
    在这里插入图片描述

在组网中配置SNMP协议,首先需要在管理端配置SNMP管理程序NMS,同时在被管理设备端配置SNMP的Agent。

通过SNMP协议:

1、NMS可以通过Agent在任何时候及时地获得设备的状态信息,实现远端控制被管理设备。
2、Agent可以及时地向NMS报告设备的当前状态信息。

四、SNMP对Linux系统的监控

4.1 安装软件包

系统需要开启SNMP协议,不同发行版本的snmp安装及配置都有所不同。这里提供主流操作系统的snmp安装及配置。
Redhat/Centos SNMPv1/v2c
使用yum安装 net-snmp、net-snmp-utils 两个软件包
yum install -y net-snmp net-snmp-utils

在这里插入图片描述

4.2 修改配置文件

默认配置文件位置/etc/snmp/
ls /etc/snmp/
snmpd.conf  snmptrapd.conf
vim /etc/snmp/snmpd.conf
41行
com2sec notConfigUser  default    public 
com2sec notConfigUser  default    argus  #团体字符串(Community String)是SNMP的一种安全机制,可以理解为认证密码。资源管理添加资源时SNMP社区名必须和该行的团体字符串相同
55行上面插入
view    systemview    included   .1      #允许server获取更多的节点信息

在这里插入图片描述

4.3 服务启动

防火墙放行,snmp服务监听UDP 161端口,防火墙放行该端口
firewall-cmd --add-port=161/udp --permanent && firewall-cmd --reload
启动服务
systemctl enable --now snmpd

在这里插入图片描述

4.4 测试

测试是否连通
snmpget -v 2c argus localhost SNMPv2-MIB::sysName.0
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain #

在这里插入图片描述

五、SNMP对windows系统的监控

  • windows server版本的不同导致打开SNMP的方式也不尽相同,这边展示的是windows10的方法。
  • 打开开始系统设置->更新和安全->开发者选项->打开开发人员模式->应用->可选功能->添加功能->安装Microsoft WebDriver->安装简单网络管理协议(SNMP)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 在开始搜索服务->进入找到SNMP协议->选择安全->编辑->添加社区名称public->选择接受来自任何主机的SNMP数据包->确定退出
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 测试连通性
snmpget -v 2c -c public 172.16.3.232  SNMPv2-MIB::sysName.0 #这边名称选择刚刚设置的public,其次是windows主机的IPv4地址
SNMPv2-MIB::sysName.0 = STRING: DESKTOP-PN9S6Q3

在这里插入图片描述

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

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

相关文章

linux c++ 开发 - 05- 使用CMake创建一个动态库

外层CMakeList.txt中的内容: cmake_minimum_required(VERSION 3.16) PROJECT(HELLO) ADD_SUBDIRECTORY(lib bin)lib中CMakeLists.txt中的内容: SET(LIBHELLO_SRC hello.cpp) ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})hello.h: hello.cpp: ADD_LIBR…

多元共进|科技促进艺术发展,助力文化传承

科技发展助力文化和艺术的传播 融合传统与创新,碰撞独特魅力 一起来了解 2023 Google 开发者大会上 谷歌如何依托科技创新 推动艺术与文化连接 传承和弘扬传统文化 自 2011 年成立以来,谷歌艺术与文化致力于提供体验艺术和文化的新方式,从生成…

mysql基于AES_ENCRYPTAES_DECRYPT实现密码的加密与解密

1.直接使用AES_ENCRYPT&&AES_DECRYPT函数导致的问题。 执行语句 select AES_ENCRYPT(cd123,key) 结果 加密过后的字符串是一串很奇怪的字符。 尝试使用上面加密过后的字符解密。 select AES_DECRYPT(u5£d|#,key) 结果 并未成功的解密 2.解决办法 使用 hex(…

【漏洞复现】网互联路由器存在密码泄露

漏洞描述 蜂网互联-让链接无限可能,灵活的多线分流,强大的策略分流,灵活调度各种软件应用,深度识别系统,各种应用一网打尽,灵活调整优先级,最简单的路由器,简洁易学的配置&#xff…

MyBatisPlus 基础Mapperr接口:增删改查

MyBatisPlus 基础Mapper接口:增删改查 插入一条数据 代码 Testpublic void insert() {User user new User();user.setId(6L);user.setName("张三");user.setAge(25);user.setEmail("zhangsanexample.com");userMapper.insert(user);}日志 数…

单元测试与自测

单元测试在百度百科的定义: 自测在百度百科的定义: 单元测试是测一个类或一个函数,自立门第main函数,不依赖于项目,预期的是这个类或函数是没有问题的。程序编码完成之后至各种测试再到用户使用一二十年出现的任何bug都…

IDEA中的“Deployment“ 将项目直接部署到服务器上

ntelliJ IDEA中的"Deployment"工具栏是一个方便的工具,用于将你的项目直接部署到服务器上。这个工具栏提供了三种部署的方式: 1.Web Server在本地电脑上,并且服务器运行目录也在项目目录下。 2.Web Server在本地电脑上,…

nuxt3项目使用pdfjs-dist预览pdf

使用的包的源代码是 pdfjs - npm 但是我们实际上项目中使用的是pdfjs打包后的dist文件,也就是pdfjs-dist - npm 所以我们需要使用这个命令 npm i pdfjs-dist 我们可以克隆pdfjs这个包来看源代码,里面有使用的例子,也可以根据源代码自己打…

Vue中数据可视化关系图展示与关系图分析

Vue中数据可视化关系图展示与关系图分析 数据可视化是现代Web应用程序的重要组成部分之一,它可以帮助我们以图形的方式呈现和分析复杂的数据关系。Vue.js是一个流行的JavaScript框架,它提供了强大的工具来构建数据可视化应用。本文将介绍如何使用Vue.js…

JavaWeb知识梳理(后端部分)

JavaWeb 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。 静态web资源开发技术&#xff1…

Spring Data JPA:简化数据库交互的艺术

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

代码随想录第45天|70. 爬楼梯,322. 零钱兑换,279.完全平方数

70. 爬楼梯 开始按感觉做 class Solution {public int climbStairs(int n) {//第一版按感觉做//dp[i]爬到第i个台阶的方法数int[] dpnew int[n1];//初始化dp[0]1;dp[1]1;for(int i2;i<n;i){dp[i]dp[i-1]dp[i-2];}return dp[n];} } 改进-用完全背包做 这是背包里求排列问…

ubuntu server 更改时区:上海

1. 打开终端&#xff0c;在命令行中以超级用户或具有sudo权限的用户身份运行以下命令&#xff1a; sudo dpkg-reconfigure tzdata 这会打开一个对话框&#xff0c;用于选择系统的时区设置。 2. 在对话框中&#xff0c;使用上下箭头键在地区列表中选择"Asia"&#x…

vue表格不显示列号123456

我在网上找了半天&#xff0c;都是如何添加列号123456的&#xff0c;没有找到不显示列号的参考&#xff0c;现在把这个解决了&#xff0c;特此记录一下。 没有加右边的就会显示&#xff0c;加上右边的就隐藏了

npm/yarn link 测试包时报错 Warning: Invalid hook call. Hooks can only be called ...

使用 dumi 开发 React 组件库时&#xff0c;为避免每次修改都发布到 npm&#xff0c;需要在本地的测试项目中使用 npm link 为组件库建立软连接&#xff0c;方便本地调试。 结果在本地测试项目使用 $ npm link 组件库 后&#xff0c;使用内部组件确报错&#xff1a; react.dev…

Redis十大数据类型

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

腾讯音乐基于 Apache Doris + 大模型构建全新智能数据服务平台

当前&#xff0c;大语言模型的应用正在全球范围内引发新一轮的技术革命与商业浪潮。腾讯音乐作为中国领先在线音乐娱乐平台&#xff0c;利用庞大用户群与多元场景的优势&#xff0c;持续探索大模型赛道的多元应用。本文将详细介绍腾讯音乐如何基于 Apache Doris 构建查询高效、…

基于Python+DenseNet121算法模型实现一个图像分类识别系统案例

目录 介绍在TensorFlow中的应用实战案例最后 一、介绍 DenseNet&#xff08;Densely Connected Convolutional Networks&#xff09;是一种卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;2017年由Gao Huang等人提出。该网络的核心思想是密集连接&#xff0c;即每…

Python实现猎人猎物优化算法(HPO)优化循环神经网络回归模型(LSTM回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

【基础计算机网络1】认识计算机网络体系结构,了解计算机网络的大致模型(上)

前言 今天&#xff0c;小编我也要进入计算机网络的整个内容&#xff0c;虽然这个计算机网络的内容在考研部分中占比比较小&#xff0c;有些人不把这一部分当成重点&#xff0c;这种想法是错误的。我觉得考研的这四个内容都是非常重要的&#xff0c;我们需要进行全力以赴的对待每…