首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SNMP:创建自定义OID

SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络管理的标准协议。OID(Object Identifier,对象标识符)是SNMP中用于标识管理信息的唯一标识符。创建自定义OID通常涉及以下几个步骤:

  1. 获取企业编号(Enterprise Number):如果你需要创建自定义OID,你首先需要一个企业编号。这个编号由IANA(Internet Assigned Numbers Authority)分配,确保你的OID在全球范围内是唯一的。你可以在IANA的网站上申请一个企业编号。
  2. 定义MIB(Management Information Base,管理信息库)文件:MIB文件是一个文本文件,定义了OID的结构和含义。你需要编写一个MIB文件来描述你的自定义OID。
  3. 实现SNMP代理:SNMP代理是一个运行在设备上的软件,负责处理SNMP请求。你需要在SNMP代理中实现对自定义OID的支持。

以下是一个详细的示例,演示如何创建自定义OID。

步骤 1:获取企业编号

你可以在IANA的网站上申请一个企业编号。假设你已经获得了一个企业编号 12345

步骤 2:定义MIB文件

创建一个新的MIB文件,例如 MY-MIB.txt,并在其中定义你的自定义OID。以下是一个示例MIB文件:

代码语言:javascript
复制
MY-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, enterprises FROM SNMPv2-SMI;

myMib MODULE-IDENTITY
    LAST-UPDATED "202310010000Z"
    ORGANIZATION "My Organization"
    CONTACT-INFO "Contact Info"
    DESCRIPTION "My custom MIB"
    ::= { enterprises 12345 }

myCustomOID OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A custom OID for demonstration purposes"
    ::= { myMib 1 }

END

在这个示例中:

  • myMib 是你的MIB模块的根节点,位于 enterprises 节点下,企业编号为 12345
  • myCustomOID 是一个自定义OID,类型为 INTEGER,只读。

步骤 3:实现SNMP代理

你需要在SNMP代理中实现对自定义OID的支持。以下是一个使用 Net-SNMP 实现自定义OID的示例。

安装 Net-SNMP

首先,确保你已经安装了 Net-SNMP。在大多数Linux发行版上,你可以使用包管理器安装:

代码语言:javascript
复制
sudo apt-get install snmpd snmp

配置 SNMP 代理

编辑 snmpd.conf 文件,添加对自定义MIB的支持。通常,snmpd.conf 文件位于 /etc/snmp/ 目录下。

代码语言:javascript
复制
# Load the custom MIB
mibs +MY-MIB

# Define the custom OID
pass .1.3.6.1.4.1.12345.1 /bin/echo 42

在这个示例中:

  • mibs +MY-MIB 告诉SNMP代理加载自定义MIB文件。
  • pass .1.3.6.1.4.1.12345.1 /bin/echo 42 告诉SNMP代理,当请求自定义OID时,执行 /bin/echo 42 命令并返回结果。

重启 SNMP 代理

保存配置文件并重启SNMP代理:

代码语言:javascript
复制
sudo service snmpd restart

测试自定义OID

使用 snmpget 命令测试自定义OID:

代码语言:javascript
复制
snmpget -v2c -c public localhost .1.3.6.1.4.1.12345.1

你应该会看到类似以下的输出:

代码语言:javascript
复制
SNMPv2-SMI::enterprises.12345.1 = INTEGER: 42
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SNMP学习笔记之SNMP介绍,OID及MIB库

SNMP代理提供大量的对象标识符(OID-Object Identifiers)。一个OID是一个唯一的键值对。该代理存放这些值并让它们可用。...一个SNMP管理器(客户)可以向代理查询键值对中的特定信息。从程序员的角度看,这和导入大量的全局变量没有多少区别。SNMPOID是可读或可写的。...尽管向一个SNMP设备写入信息的情况非常少,但它是各种管理应用程序用来控制设备的方法(例如针对交换机的可管理GUI)。SNMP中有一个基本的认证框架,能够让管理员发送公共名来对OID读取或写入的认证。...MIB和OID OID(对象标识符),是SNMP代理提供的具有唯一标识的键值。MIB(管理信息基)提供数字化OID到可读文本的映射。 2.1....OID OID的编写规则和习惯 SNMP OID是用一种按照层次化格式组织的、树状结构中的唯一地址来表示的,它与DNS层次相似。

5.5K30
  • 教程|监控项类型—SNMP客户端

    步骤2 为设备创建一台主机 。...您可以使用zabbix提供的任意 SNMP 模板(SNMP 设备模板和其他模板),该模板将自动添加监控项。但是,那模板可能与主机不兼容。点击 Add 保存主机。 步骤3 创建一个监控项。...所以现在回到Zabbix并点击前面创建SNMP主机的 监控项 。如果你在创建主机时选择使用模板,你将拥有与主机相关联的SNMP监控项列表。...我们假设你要使用snmpwalk和snmpget采集的信息创建监控项,单击 创建监控项。在新的监控项表单中: 输入监控项"名称"。...“更新间隔”和“历史数据保留时长”与默认值不同,请选择一个自定义乘数(如果需要),并输入数值 在进程预处理选项卡中,添加 Change per second 步骤(重要!

    4.9K41

    难搞的深信服设备监控

    前言 公司买了一堆深信服的设备,最近打算纳入自己的监控,本来以为开启snmp检测几个oid就好,结果发现深信服很坑很坑,总结下。...通用指标的snmp OID不是统一的,虽然都是深信服的牌子,但是就连uptime这种通用标准的oid都没有统一!? 2....,并创建命令供icinga调用,以后使用命令snmp_wrapy即可 配置 #snmp warpper python object CheckCommand "snmp_wrapy" { command...$" "-o" = "$snmpoid$" } } 定义主机设备 注意为了识别和区分深信服的AC /V** /FW,自定义了一个主机变量vars.manufacturer并赋值为"sangfor...",同样方法可以识别区分Huawei(华为)H3C(华三)Cisco(思科等), 为了进步以区分,在命名的时候使用AC/V**/FW开头,后面创建服务的时候可以执行相应的匹配,如: 定义中的vars.client_endpoint

    1.2K30

    Zabbix SNMP配置

    创建主机 创建一个使用SNMP接口的主机,创建主机过程中你可以选择相应的模板,路由器、交换机这些设备的监控itme,zabbix已经默认自带了。 2.2....找出你想监控的SNMP字符串(或者OID)        如果你想获取SNMP字符串,你可以使用命令snmpwalk来实现,当然在安装zabbix的时候你需要增加snmp的支持 1# snmpwalk...和普通的监控项创建方法差不多,仅有几个地方不同,type选择SNMP v2或者v1,v3,一般选择v2,snmp community使用默认的public,port不填写默认为161....SNMP OID写上OID。然后其他内容和其他item type一样,然后保存即可。最后去看看是否获取到了数据。 3....简单实例 参数 Community:public OID:1.2.3.45.6.7.8.0 (or .1.2.3.45.6.7.8.0) Key: 例如sysName等 OID可以写数字也可以使用字符串

    1.5K20

    SNMP学习笔记之SNMP TRAP简介、流程以及使用Python实现接受Trap信息

    不管怎么说,现在所有的网络设备的都需要支持SNMP。而且现在还有很多的开源的网络管理系统,所以就有利于我们来学习和理解SNMP。...snmptrapd来自开源软件Net-SNMP. Net-SNMP会有很多的用途,当然使用trap也是一个很有用的用途。...当snmptrapd接收到trap以后,可以调用用户自定义的脚本或者命令行来处理trap。如果想使用这个功能就需要在snmptrapd的配置文件中设置traphandle。...和对应的属性名,并且是使用OID来进行索引的。...因为各厂商对trap信息定义的内容肯定是不同的,所以想要snmp有一定的扩展性,那么就必须要支持用户自定义MIBs文件。这也就是MIBs存在的原因。 2.

    10.2K20

    官方博文| 连老手也容易犯错的Zabbix SNMP该如何正确配置?

    目录 一 介绍 二 关于SNMP 1. SNMP版本 2. SNMP OID(对象标识符) 3. SNMP接口 4....你需要使用SNMP OID (对象标识符),一串用于识别被监控设备及其状态的数字。...OID 因此,需要在item上配置OID以便从SNMP item接收数据。问题是通常你并不知道OID。只知道需要监控某些设备,但不知道需监控指标的OID。...总结 在为网络监控创建新item或模板又不清楚被监控对象的OID或MIB文件时,比起搜索他人做好的模板,建议尝试自己完成所有工作。...在创建item并将其添加到会连接至数百或数千台Cisco (思科)设备的模板前,在CLI (计算机指令)中运行snmpget并在设备中查询需要的值。当能确保正确时,才添加新item和创建新模板。

    1.6K20

    夜莺随笔:监控网络设备(一)

    本文将对夜莺如何使用 telegraf 监控网络设备做一个初步探讨,第一篇是关于如果简单监控网络设备 正文 本文将围绕sysUpTime,sysName 展开 OID 详情 名称 OID 数据类型 备注...: SH_CE6855_Network_TOR01_SZZB 那么在制作 snmp 监控项里填入 1.3.6.1.2.1.1.5,就会出现下图二的报错,这里是由于探测 OID 时在调用 net-snmp...的时候会根据目标 OID 来判断工具的使用,如果认为该 OID 为该 MIB 树的最末端,会调用 snmpget ,而当一个 OID 并不是末梢,其下面有很多索引,那么就采用 snmpwalk,所以大家在创建监控项的时候会出现误区...]] oid = "1.3.6.1.2.1.1.3.0" name = "Uptime" [[inputs.snmp.field]] oid = "1.3.6.1.2.1.1.5.0" name...OID 的监控项,但实际常用的也没有太大必要,下一期将会带来 inputs.snmp.table 功能,类似 zabbix 的自动发现功能,敬请期待!

    4.7K10

    SNMP V3的配置指南

    H3C命令格式稍有区别,但总体的配置过程基本一致: 第一步:配置一个系统视图(即允许访问的MIB库的OID值范围); 第二步:创建一个组,并设置组的验证方式以及允许访问的视图; 第三步:创建一个用户,设置隶属的组以及密码和加密密钥...1、相关命令说明 操作 命令 说明 创建或更新视图的信息 Ruijie(config)# snmp-server view view-name oid-tree {include | exclude}...第一步,配置 MIB 视图 命令格式:(config)# snmp-server view view-name oid-tree {include | exclude} 例如,创建一个视图名为testview...oid-tree 可选,缺省情况下,视图名为ViewDefault,OID 为1 设置一个 SNMPsnmp-agent group v3 group-name [ authentication...为1.3.6.1: [h3c3600]snmp-agent mib-view included viewv3 1.3.6.1 注:OID1.3.6.1对应名称为internet,创建后通过display

    6.1K10
    领券