snmp管理信息库MIB作为snmp中经典的对象管理机制,类似于一个树形结构将MIB中对应的每个对象关联起来 。每个对象相当于该mib树结构中的一个叶子节点,称为一个对象object,且拥有唯一的数字标识符。
MIB语法格式
GS-SNMP-MIB DEFINITIONS ::= BEGIN ——起始标识符
IMPORTS ——对象引用标识符
OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
Integer32, Opaque, enterprises, Counter32, Unsigned32
FROM SNMPv2-SMI ——说明此处所使用的对象都来自与SNMPv2-SMI(其他MIB中的对象都可通过这种方式进行引用)
TEXTUAL-CONVENTION, DisplayString, TruthValue
FROM SNMPv2-TC;
gsobject MODULE-IDENTITY ——对象标识符
LAST-UPDATED "201910100000Z"
ORGANIZATION "organization"
CONTACT-INFO
"postal: Wes Hardaker
P.O. Box 382
Davis CA 95617
email: net-snmp-coders@lists.sourceforge.net"
DESCRIPTION
"grandStream infrastructure of the Net-SNMP project enterprise MIB tree"
REVISION "201910100000Z"
DESCRIPTION
"First draft"
::= { enterprises 12581 } ——说明gsobject对象是enterprises对象的一个子节点
gsprocessobject OBJECT IDENTIFIER ::= { gsobject 50 } ——说明gsprocessobject对象是gsobject对象的一个子节点
GSErrorFlag ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Represents a possible error condition"
SYNTAX INTEGER { noError(0), error(1) } ——定义布尔变量
GSCrashFlag ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Determine whether a crash occurs in a process."
SYNTAX INTEGER { noCrash(0), Crash(1) } ——定义布尔变量
gsProcessName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The coredump file name."
::= { gsprocessobject 1 } ——gsProcessName是gsprocessobject的一个子节点
gsProcessCrash OBJECT-TYPE
SYNTAX GSCrashFlag
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Determine whether a crash occurs in a process."
::= { gsprocessobject 2 } ——gsProcessCrash是gsprocessobject的一个子节点
gsProcessCoreDumpName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The coredump file name."
::= { gsprocessobject 3 } ——gsProcessCoreDumpName是gsprocessobject的一个子节点
END ——结束标识符
修改Makefile以安装MIB
vim mibs/Makefile.mib找到BRIDGE-MIB.txt,在末尾添加自己的MIB即可。
设置MIB启动环境变量
vim agent/mibgroup/default_modules.h添加config_add_mib(SNMP-MIB),
再编写SNMP-MIB对应的handler(即C文件)并在configure时加上--with-mib-modules="gs_snmp"即可(gs_snmp为MIB对应的C文件);
最后configure编辑即可。