安装net-snmp见:【snmp】centos6.5安装和配置snmp5.7.1

net-snmp添加自定义MIB(标量):【snmp】net-snmp添加自定义MIB(标量) 

 

snmp 表格支持增删改查操作,比标量节点多了增删操作,那么为了实现增删操作,可以向表格增加一个RowStatus行状态类型的列,通过设置状态值对表格进行控制。

RowStatus状态值

状态 说明
active(1) 表明状态行是可用的
notInService(2) 表明行存在但不可用
notReady (3) 表明行存在,但因为缺少必要的信息而不能用
createAndGo (4) 由管理者设置,表明希望创建一个行并设置该行的状态列对象为active
createAndWait(5) 由管理者设置,表明希望创建一个行,但不可用,从上面的代码看到,是被设置为了notInService
destroy(6) 删除行



一、编写mib文件

使用MIB Builder生成MIB文件见:【snmp】使用MIB Builder生成MIB文件

注意

1、要有一个index索引节点,但是这个索引的名称不能为"index",为"index"会报错,我这里索引名称是为"userIdx"

2、一般会设置最后一列为RowStatus列,实际使用时除了RowStatus对应的节点需要设置read-create,其他节点可以随便设置,但是在MIB Builder工具中设置了一列为read-create,其他列(除索引列)也要设置为read-create,否则会报错,因此请将表的各个节点均设置为read-create类型,后面我们再修改生成的MIB文件

【snmp】net-snmp添加自定义MIB(表格)

 

生成的UserTable-MIB.my文件内容如下:

--
-- UserTable-MIB.my
-- MIB generated by MG-SOFT Visual MIB Builder Version 6.0  Build 88
-- Thursday, August 06, 2020 at 14:12:31
--

	UserTable-MIB DEFINITIONS ::= BEGIN
 
		IMPORTS
			OBJECT-GROUP			
				FROM SNMPv2-CONF			
			enterprises, Integer32, OBJECT-TYPE, MODULE-IDENTITY			
				FROM SNMPv2-SMI;
	
	
		-- 1.3.6.1.4.1.85
		myModule MODULE-IDENTITY 
			LAST-UPDATED "202008071136Z"		-- August 07, 2020 at 11:36 GMT
			ORGANIZATION 
				"Organization."
			CONTACT-INFO 
				"Contact-info."
			DESCRIPTION 
				"Description."
			::= { enterprises 85 }
			
--
-- Node definitions
--
	
		-- 1.3.6.1.4.1.85.1
		user OBJECT IDENTIFIER ::= { myModule 1 }

		
		-- 1.3.6.1.4.1.85.1.1
		userTable OBJECT-TYPE
			SYNTAX SEQUENCE OF UserEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Description."
			::= { user 1 }

		
		-- 1.3.6.1.4.1.85.1.1.1
		userEntry OBJECT-TYPE
			SYNTAX UserEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Description."
			INDEX { userIdx }
			::= { userTable 1 }

		
		UserEntry ::=
			SEQUENCE { 
				userIdx
					Integer32,
				userName
					Integer32,
				userAge
					Integer32,
				userRowStatus
					Integer32
			 }

		-- 1.3.6.1.4.1.85.1.1.1.1
		userIdx OBJECT-TYPE
			SYNTAX Integer32 (1..1000)
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Description."
			::= { userEntry 1 }

		
		-- 1.3.6.1.4.1.85.1.1.1.2
		userName OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"Description."
			::= { userEntry 2 }

		
		-- 1.3.6.1.4.1.85.1.1.1.3
		userAge OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"Description."
			::= { userEntry 3 }

		
		-- 1.3.6.1.4.1.85.1.1.1.4
		userRowStatus OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"Description."
			::= { userEntry 4 }

		
		-- 1.3.6.1.4.1.85.1.3
		userGroup OBJECT-GROUP
			OBJECTS { userIdx, userName, userAge, userRowStatus }
			STATUS current
			DESCRIPTION 
				"Description."
			::= { user 3 }

		
	
	END

--
-- UserTable-MIB.my
--
View Code

相关文章: