我没有完全理解您的用例(我没有完全理解“每个模块可能包含其对等模块的完整副本”部分,特别是因为您的模块本身实际上“有”
没有什么
桌子
. 这类似于C语言中的结构数组。
与版本、正常运行时间、ErrorA、errob和erroc重复一百万次(在MIB和实际逻辑树中)不同,您有一个
桌子
它包含五列,并根据需要填充任意多行。每列的语法/格式只需指定一次。
对于每一行的“索引”,您将有一个额外的列(放在第一位),即模块号。
我的SMI是生锈的,但是定义看起来像这样:
sysManagerGroup OBJECT IDENTIFIER
::= { systemInfoGroup 1 }
sysManagerModuleTable OBJECT-TYPE
SYNTAX SEQUENCE OF SysManagerModuleEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Table of modules being monitored"
::= { sysManagerGroup 1 }
sysManagerModuleEntry OBJECT-TYPE
SYNTAX SysManagerModuleEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A row in the table of modules being monitored"
INDEX { sysManagerModuleId }
::= { sysManagerModuleTable 1 }
SysManagerModuleEntry ::= { SEQUENCE
sysManagerModuleId Integer32,
sysManagerModuleVersion OCTET STRING,
sysManagerModuleUptime OCTET STRING,
sysManagerModuleErrorA ErrorStatus,
sysManagerModuleErrorB ErrorStatus,
sysManagerModuleErrorC ErrorStatus,
}
sysManagerModuleId OBJECT-TYPE
SYNTAX Integer32,
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "Numeric ID of the module"
::= { sysManagerModuleEntry 1 }
sysManagerModuleVersion OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (1..100))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Contains the version string of the software module."
::= { sysManagerModuleEntry 2 }
sysManagerModuleUptime OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (1..100))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Up time."
::= { sysManagerModuleEntry 3 }
sysManagerModuleErrorA OBJECT-TYPE
SYNTAX ErrorStatus
MAX-ACCESS read-only
STATUS current
::= { sysManagerModuleEntry 4 }
sysManagerModuleErrorB OBJECT-TYPE
SYNTAX ErrorStatus
MAX-ACCESS read-only
STATUS current
::= { sysManagerModuleEntry 5 }
sysManagerModuleErrorC OBJECT-TYPE
SYNTAX ErrorStatus
MAX-ACCESS read-only
STATUS current
::= { sysManagerModuleEntry 6 }
就这样-不需要重复定义。在运行时,根据需要/需要添加任意多行。
4.1.12345.40.2.1.1.1.<ID>.<FIELD>
e、 g.模块2的错误是
4.1.12345.40.2.1.1.1.2.5
模块48570的正常运行时间是
4.1.12345.40.2.1.1.1.48570.3
当然,您的远程管理器不会提前知道行数,但这很好:管理器将使用“walk”或变体-一些
获取下一个
获取批量
请求-发现表的内容。
将这些SMIv2定义插入MIB并将MIB提供给SNMP管理器,您应该了解它如何改进布局。如何实际填充表将取决于代理软件。
注意,“table”和“entry”对象实际上是一种伪对象,因此必须具有
not-accessible
访问级别;条目的索引是实际值,但应该是
无法访问
assigned
到
;除非你是他们,否则你必须
get your own