安装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文件
生成的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
--