当前位置: 首页 > news >正文

使用MIB builder自定义物联网网关的MIB结构

文章目录

  • 物联网网关初识(了解即可)
  • IoT的通用MIB库结构
  • MIB Builder开发流程指导
  • 问题总结
    • 子叶没所属分组
    • 值范围不为0

物联网网关初识(了解即可)

  • 网关又称网间连接器、协议转换器。简单说,物联网网关是一台智能计算机,作为管理所有连接物联网设备、传感器和执行器的中央集线器。
  • 它充当入口,聚合、处理和过滤各种物联网设备发送的所有数据和信息,然后再发送到云端。更先进的物联网网关能够执行复杂的边缘计算应用程序,例如人工智能。在这种情况下,物联网网关在边缘处理大部分数据,并且能够在边缘运行实时决策,而无需云的任何帮助。
    在这里插入图片描述
  • 物联网网关特点
    • 工业级设计,选用高清触摸屏
    • 物联网网关存储量大,数据不会丢失
    • 支持多种通讯协议,通讯效率高和方便
  • 物联网网关功能
    1. 协议转换能力:从不同的感知网络到接入网络的协议转换、将下层的标准格式的数据统一封装、保证不同的感知网络的协议能够变成统一的数据和信令;将上层下发的数据包解析成感知层协议可以识别的信令和控制指令。
    2. 可管理能力:首先要对网关进行管理,如注册管理、权限管理、状态监管等。网关实现子网内的节点的管理,如获取节点的标识、状态、属性、能量等,以及远程实现唤醒、控制、诊断、升级和维护等。由于子网的技术标准不同,协议的复杂性不同,所以网关具有的管理性能力不同。
    3. 广泛的接入能力:物联网网关进行标准化工作,如传感器工作组,实现各种通信技术标准的互联互通。

IoT的通用MIB库结构

通用物联网(IoT)网关设备管理的MIB库设计,应当涵盖设备的基本配置、状态信息、性能指标和安全管理等方面。以下是一个设计示例及其设计原因:

  1. 设备基本信息(deviceInfoGroup)

    • 设备型号(deviceModel)
    • 序列号(serialNumber)
    • 固件版本(firmwareVersion)
    • 启动时间(uptime)

    **设计原因:**这些信息为网络管理员提供了设备的基本身份信息,便于跟踪和管理设备。

  2. 网络配置信息(networkConfigGroup)

    • IP地址(ipAddress)
    • 子网掩码(subnetMask)
    • 默认网关(defaultGateway)
    • DNS服务器(dnsServers)

    **设计原因:**网络配置是设备通信的基础,这些信息是进行故障诊断和网络设置的关键信息。

  3. 设备状态信息(deviceStatusGroup)

    • CPU使用率(cpuUtilization)
    • 内存使用率(memoryUtilization)
    • 存储空间使用率(storageUtilization)
    • 网络接口状态(interfaceStatus)

    **设计原因:**这些状态信息可以帮助网络管理员监控设备性能,并及时发现和解决问题。

  4. 设备性能指标(devicePerformanceGroup)

    • 数据吞吐量(dataThroughput)
    • 数据包丢失率(packetLossRate)
    • 响应时间(responseTime)
    • 设备温度(deviceTemperature)

    **设计原因:**这些性能指标对于确保设备能够高效稳定运行至关重要,同时有助于规划网络资源和容量。

  5. 连接的设备信息(connectedDevicesGroup)

    • 连接设备的数量(connectedDevicesCount)
    • 每个设备的标识信息(deviceId)
    • 每个设备的状态信息(deviceStatus)
    • 每个设备的网络统计信息(deviceNetStats)

    **设计原因:**IoT网关通常连接多个设备,管理这些设备的信息对于整个网络的健康至关重要。

  6. 安全管理(securityManagementGroup)

    • 认证错误计数(authErrorCount)
    • 密码强度设置(passwordStrengthOption)
    • 加密标准使用情况(encryptionStandardsUsed)
    • 安全事件日志(securityEventLog)

    **设计原因:**安全性是物联网环境中的一个重要话题,这些指标可以帮助网络管理员维护网络的安全状态。

  7. 远程管理(remoteManagementGroup)

    • 支持的远程管理协议(supportedRemoteProtocols)
    • 远程管理状态(remoteManagementStatus)
    • 远程更新能力(remoteUpdateCapability)

    **设计原因:**远程管理能力对于分散布置的物联网设备而言非常重要,它允许管理员从远端配置和更新设备。

  8. 事件和告警(eventsAndAlarmsGroup)

    • 事件日志(eventLog)
    • 当前活动告警(currentActiveAlarms)
    • 历史告警记录(historicalAlarmsRecord)

    **设计原因:**事件和告警记录对于及时响应设备和网络问题是必需的,它们可以帮助快速定位问题并采取相应行动。

注意:每个组都应该定义为一个独立的MIB模块,使用Object Identifiers(OIDs)进行组织,确保与其他MIB库的唯一性和互操作性。这样设计的目的是为了提供一个全面的视图来管理和监控IoT网关设备的运行状况。

MIB Builder开发流程指导

  • 使用MIB Builder定义物联网网关设备的MIB数据结构,需要遵循结构化的定义语法(通常是SMIv2, Structure of Management Information Version 2)。
  • MIB定义是用asn.1(Abstract Syntax Notation One)语言书写的,它定义了如何管理网络对象及其层次结构。

设计一个MIB包括以下几个步骤:

  1. 确定OID树结构: 。通常,私有企业会从1.3.6.1.4.1iso.org.dod.internet.private.enterprise)后附加一个为企业分配的特定数字,作为他们私有分支的起点。使用文档参考MG-SOFT MIB builder and compile

    • 注意导入系统SNMPv2-SMI.my的enterprise进行开发
    yourCompany OBJECT IDENTIFIER ::= { enterprise 9999 }
    iotGatewayMIB OBJECT IDENTIFIER ::= { yourCompany 1 }
    
  2. 定义SMI结构: 使用结构化管理信息(SMI)标准定义数据类型、模块结构和命名规则。

  3. 定义MIB模块: 包括MIB的版本、导入的依赖项、命名空间等。

    IoT-GATEWAY-MIB DEFINITIONS ::= BEGIN
    IMPORTSMODULE-IDENTITY, OBJECT-TYPE, ... FROM SNMPv2-SMI...;
    
  4. 定义模块身份(Module Identity)和更新修订记录: 这为整个MIB模块提供了身份和版本历史。

    iotGateway MODULE-IDENTITYLAST-UPDATED "202303150000Z"ORGANIZATION "Your Company Name"CONTACT-INFO "Your Contact Information"DESCRIPTION "MIB for managing IoT Gateway devices."REVISION "202303150000Z" DESCRIPTION "Initial version."::= { iotGatewayMIB 1 }
    
  5. 定义主要对象组: 按照功能对对象进行分组,如之前所述的各个分组。

  6. 定义具体的管理对象: 这些是具体的OIDs,代表了网关设备的各种属性和可管理的数据点。

    deviceModel OBJECT-TYPESYNTAX OCTET STRINGMAX-ACCESS read-onlySTATUS currentDESCRIPTION"A textual description of the device model."::= { deviceInfoGroup 1 }
    
  7. 定义主要功能描述:

    • 设备管理(如配置、状态)
    • 性能监控(如CPU、内存使用)
    • 网络管理(如连接状态、IP配置)
    • 安全特性(如访问控制、加密)
    • 告警和事件处理
  8. 定义Trap事件: Trap是SNMP中用于异步通知管理工具的机制。您需要定义特定情况下将触发的Trap事件。

    iotGatewayHighCpuUsage NOTIFICATION-TYPEOBJECTS { cpuUtilization }STATUS currentDESCRIPTION"This trap is sent when the CPU usage exceeds a predefined threshold."::= { iotGatewayTraps 1 }-- Define 'iotGatewayTraps' as a separate identifier within the iotGateway MIB
    
  9. 结束MIB定义:

    END
    

下面是各个组的一些定义示例和指导:

  1. 设备基本信息 (deviceInfoGroup)
deviceInfoGroup OBJECT IDENTIFIER ::= { yourMIBroot 1 }deviceModel OBJECT-TYPESYNTAX      OCTET STRINGMAX-ACCESS  read-onlySTATUS      currentDESCRIPTION "The model identifier for the IoT Gateway."::= { deviceInfoGroup 1 }serialNumber OBJECT-TYPESYNTAX      OCTET STRINGMAX-ACCESS  read-onlySTATUS      currentDESCRIPTION "The serial number of the IoT Gateway."::= { deviceInfoGroup 2 }firmwareVersion OBJECT-TYPESYNTAX      OCTET STRINGMAX-ACCESS  read-onlySTATUS      currentDESCRIPTION "The firmware version running on the IoT Gateway."::= { deviceInfoGroup 3 }uptime OBJECT-TYPESYNTAX      TimeticksMAX-ACCESS  read-onlySTATUS      currentDESCRIPTION "The time since the IoT Gateway last restarted."::= { deviceInfoGroup 4 }
  1. 网络配置信息 (networkConfigGroup)
networkConfigGroup OBJECT IDENTIFIER ::= { yourMIBroot 2 }
-- Define objects such as ipAddress, subnetMask, etc., in a similar manner.
  1. 设备状态信息 (deviceStatusGroup)
deviceStatusGroup OBJECT IDENTIFIER ::= { yourMIBroot 3 }
-- Define objects such as cpuUtilization, memoryUtilization, etc., in a similar manner.
  1. 设备性能指标 (devicePerformanceGroup)
devicePerformanceGroup OBJECT IDENTIFIER ::= { yourMIBroot 4 }
-- Define objects such as dataThroughput, packetLossRate, etc., in a similar manner.
  1. 连接的设备信息 (connectedDevicesGroup)
connectedDevicesGroup OBJECT IDENTIFIER ::= { yourMIBroot 5 }
-- Define objects such as connectedDevicesCount, deviceId, etc., in a similar manner.
  1. 安全管理 (securityManagementGroup)
securityManagementGroup OBJECT IDENTIFIER ::= { yourMIBroot 6 }
-- Define objects such as authErrorCount, passwordStrengthOption, etc., in a similar manner.
  1. 远程管理 (remoteManagementGroup)
remoteManagementGroup OBJECT IDENTIFIER ::= { yourMIBroot 7 }
-- Define objects such as supportedRemoteProtocols, remoteManagementStatus, etc., in a similar manner.
  1. 事件和告警 (eventsAndAlarmsGroup)
eventsAndAlarmsGroup OBJECT IDENTIFIER ::= { yourMIBroot 8 }
-- Define objects such as eventLog, currentActiveAlarms, etc., in a similar manner.

问题总结

子叶没所属分组

  • 警告信息

    WARNING:	OBJECT-TYPE "historicalAlarmsRecord" is not included in any group defined in the current module.
    
  • 在分组下引入相符的gruop组件,然后将该分组下的子叶加入分组即可解决!
    在这里插入图片描述

值范围不为0

  • 注意自定义范围时,将起始值设置为非0即可!

相关文章:

使用MIB builder自定义物联网网关的MIB结构

文章目录 物联网网关初识(了解即可)IoT的通用MIB库结构MIB Builder开发流程指导问题总结子叶没所属分组值范围不为0 物联网网关初识(了解即可) 网关又称网间连接器、协议转换器。简单说,物联网网关是一台智能计算机&a…...

特权FPGA学习笔记

C/C/system C-----vivado HLS------------->RTL门电路,省去了HDL语言的中间转换,可以看作是C向C#的演进,基于zynq面向以前使用C的开发人员,但是个人觉得,HDL存在且未被C取代,工具的着眼点就是面向底层调…...

利用阿里云 DDoS、WAF、CDN 和云防火墙为在线业务赋能

在这篇博客中,我们将详细讨论使用阿里云 CDN 和安全产品保护您的在线业务所需的步骤。 方案描述 创新技术的快速发展为世界各地的在线业务带来了新的机遇。今天的人们不仅习惯了,而且依靠互联网来开展他们的日常生活,包括购物、玩游戏、看电…...

Mysql的事务日志

Mysql的事务具有四个特性:原子性、一致性、隔离性、持久性。那么事务的四种特性分别是靠什么机制实现的呢? 事务的隔离性由锁机制来保证 事务的原子性、一致性、持久性则由redo log和Undo log来保证。 - redo log是重做日志,提供再写入操作&…...

三、Shell 环境

一、Linux 系统分类 在 Linux 中,常见的 Shell 有以下几种: Bourne Shell(sh):最早的 Shell,由 Stephen Bourne 开发。它是大多数其他 Shell 的基础。Bourne Again Shell(bash)&am…...

2023年第三届产业数字化【金铲奖】重磅来袭!

做具备产业数字化价值的企业、案例标杆、资本机构的见证者、发现者、陪伴者。 出品|产业家 一年一度的金铲奖来了! 在过去的一年时间里,我们清晰地看到,产业数字化的潮水更加汹涌澎湃且势不可挡,越来越多的企业开始寻求数字化…...

node.js安装和配置

软件介绍 Node.js是一个免费的、开源的、跨平台的JavaScript运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Googl…...

【周报2023.12.09】

周报2023.12.09 本周开展工作下周工作计划 本周开展工作 本周开展的工作的话一共是一下几点: 这三点的话是紧密相连的 逻辑这边需要考虑的东西很多 点击生成照片,然后获取生成照片的状态点击生成照片,然后获取生成照片的时间,并…...

基于ssm大学生创新创业平台项目管理子系统设计与实现论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对大学生创新创业项目信息管理混乱,出错率高,信…...

JS基础之原型原型链

JS基础之原型&原型链 原型&原型链构造函数创建对象prototypeprotoconstructor实例与原型原型的原型原型链其他constructorproto继承 原型&原型链 构造函数创建对象 我们先使用构造函数创建一个对象: function Person(){ } var person new Person();…...

【力扣100】54.螺旋矩阵

添加链接描述 class Solution:def spiralOrder(self, matrix: List[List[int]]) -> List[int]:if not matrix or not matrix[0]:return list()rows, columns len(matrix), len(matrix[0])order list()left, right, top, bottom 0, columns - 1, 0, rows - 1while left &…...

UI 优先的统一身份认证系统 Casdoor

Casdoor 是一个基于 OAuth 2.0 / OIDC 的 UI 优先集中认证 / 单点登录 (SSO) 平台,简单点说,就是 Casdoor 可以帮你解决 用户管理 的难题,你无需开发用户登录注册等与用户鉴权相关的一系列功能,只需几个步骤,简单配置&…...

Realme X7 Pro Root 刷机教程

Realme X7 Pro 刷机教程 Just For Fun,最近倒腾了下Realme X7 Pro 刷root。此博客为个人记录刷机过程,如有机友跟随本教程操作,请谨慎操作!!! 以下教程真针对Realme X7 Pro,其他版本方法未知&…...

postgresql自带指令命令系列三

目录 简介 bin目录 28.pg_verifybackup 29.pg_waldump 30.postgres 31.postmaster -> postgres 32.psql 33.reindexdb 34.vacuumdb 35.vacuumlo 总结: 简介 在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量 export PATH/…...

Java_mybatis-结果集映射-ResultTypeResultMap

Mybatis返回值接收 可以使用两种方式进行参数的接收 resultTyperesultMap 这两种分别都是需要在Mapper.xml文件中去设置的 当结果是一个简单的对象或者list或者map,对象中没有嵌套对象,或者集合时,就可以直接使用resultType 反之如果需要…...

【Java】MySQL存储 MD5 值应该用 VARCHAR 还是CHAR?

CHAR 非常适合存储 MD5 值。因为MD5 值是一个定长的值,对于固定长度的非常短的列,CHAR比VARCHAR的效率更高。 CHAR和VARCHAR的区别: 1)存储长度不同,CHAR 的长度是固定的,VARCHAR 的长度是可变的 假设,当我们定义 CHA…...

pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm

1 torch.rand:构造均匀分布张量 torch.rand是用于生成均匀随机分布张量的函数,从区间[0,1)的均匀分布中随机抽取一个随机数生成一个张量,其调用方法如下所示: torch.rand(sizes, outNone) ➡️ Tensor 参数: sizes&…...

2023第二届全国大学生数据分析大赛A完整原创论文(含摘要+问题分析+模型建立与求解+python代码)

大家好,从昨天肝到现在,终于完成了2023第二届全国大学生数据分析大赛A题某电商平台用户行为分析与挖掘的完整论文啦。 给大家看一下目录吧: 目录 摘 要: 10 一、问题重述 12 二.问题分析 13 2.1问题一 13 2.2问…...

Qt 面试指南

一、c基础知识 1、进程和线程的同步方式 进程:1)管道,是内核里的一串缓存 2)消息队列 3)共享内存 4)信号量机制 5)信号 6)socket 线程:1)等待通知机制 2&…...

开利网络的数字化技术加持下,加快扶贫和乡村振兴的效果和进程!

今日,来自山区省份的从事公益、区域民族文化传播、帮扶贫困地区脱贫、农业兴村贵州项目组一行来开利进行数字化脱贫、帮助乡村振兴解决方案探讨交流,交流中,开利网络总结出历经多年实践验证且行之有效的数字化经营、数字化建设经验得到与会成…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...