本文转载自:http://blog.csdn.net/zhulinfeiba/article/details/6184075感谢原作者的奉献!
1.点击菜单File->New...,在弹出的对话框中选择"version 1"或"version 2",此处选择"version 2"。
2.在Module name:编辑框中输入模块名称,注意所有字母必须大写,此处输入"LIUZY-TEST-MIB"。
3.导入父OID结点所在的mib模块,此处我需要创建一个位于"enterprises"下的一个私有结点39988,因此需要导入"enterprises"所在的模块SNMPv2-SMI:
点击菜单File->Import...,在弹出的模块选择框中选择"SNMPv2-SMI.my",此时左边的MIB树中即可展开看到enterprises结点。
4.将"enterprises"结点插入到我们自己的模块中:
方法一:
1).在导入的SNMPv2-SMI模块的enterprises结点上右键单击,在弹出的菜单中执行"Copy"命令;
2).点击菜单Window->LIUZY-TEST-MIB,切换到我们正在编辑的MIB模块;
3).在根结点"MIB Tree"上右键单击,在弹出的菜单中执行"Paste"命令;此时系统将提示"结点不能被链接到树中,因为无该结点的父结点,是否导入所有丢失的父结点?",选择"是",即可将enterprises结点导入我们的文件中;
方法二:
1).点击菜单条最右边的"向下还原"按钮,使导入的SNMPv2-SMI模块和LIUZY-TET-MIB模块同时可见;
2).鼠标左键按住SNMPv2-SMI模块的enterprises结点,然后拖到LIUZY-TEST-MIB的"MIB Tree"结点下,此时系统将提示"结点不能被链接到树中,因为无该结点的父结点,是否导入所有丢失的父结点?",选择"是",即可将enterprises结点导入我们的文件中;
5.新建一模块:
5.新建一非叶子结点:
将右边"SMIv1 Components"下的"OBJECT IDENTIFIER"拖到希望的结点如"enterprises"结点下,Name编辑框输入希望的名字如"liuzytest",Child编辑框输入我们希望的OID值如39988。
6.新建一叶子结点:
将右边"SMIv1 Components"下的"OBJECT-TYPE(Scalar)"拖到希望的结点如"liuzytest"结点下,Name编辑框输入希望的名字如"liuzyleaf",Child编辑框输入我们希望的OID值如1,再根据需要设置其它的属性。
7.新建一个表:
1).将右边"SMIv1 Components"下的"OBJECT-TYPE(Table)"拖到希望的结点如"liuzytest"结点下,Name编辑框输入希望的名字如"liuzyTable",Child编辑框输入我们希望的OID值如2,再根据需要设置其它的属性。需要注意的是结点名称必须以"Table"结尾。
2).将右边"SMIv1 Components"下的"OBJECT-TYPE(Row)"拖到上一步新建的"liuzyTable"结点下,Name和Child编辑框不允许输入,由系统默认设置,根据需要可设置其它的属性。
3).将右边"SMIv1 Components"下的"OBJECT-TYPE(Columnar)"拖到上一步新建的"liuzyEntry"结点下,Name编辑框输入希望的名字如"liuzyColumn1",Child编辑框输入我们希望的OID值如1,再根据需要设置其它的属性。
4).重复第3)步加入其它列结点。
8.新建一Notification:
将右边"SMIv2 Components"下的"NOTIFICATION-TYPE"拖到希望的结点如"liuzytest"结点下,Name编辑框输入希望的名字如"liuzyNotification",Child编辑框输入我们希望的OID值如3,再根据需要设置其它的属性。
至此,我们生成了一个mib文件。
9.进行正确性检查:
点击工具栏上的"Check MIB Tree"按钮,即可在"Log"窗口中看到检查结果:
ERROR: No indexes defined for Row "liuzyEntry".
WARNING: OBJECT-TYPE "liuzyleaf" is not contained in any group defined in the current module.
WARNING: OBJECT-TYPE "liuzyCol1" is not contained in any group defined in the current module.
WARNING: OBJECT-TYPE "liuzyCol2" is not contained in any group defined in the current module.
WARNING: NOTIFICATION-TYPE "liuzyNotification" is not contained in any group defined in the current module.
WARNING: This MIB module doesn't contain any MODULE-IDENTIY construct.
对上面建立的mib文件,可看到1条错误信息和5条警告,下面依次来排除这些问题:
>>改正ERROR:
1).选择"liuzyEntry"结点;
2).在右边的属性设置窗口中左下角的下拉框中选择"Index",点击右边的浏览按钮,在弹出的对话框中将希望做索引的结点选择到"Selected indexes"列表框中,确定;
>>改正第5个WARNING:
1).将右边"SMIv2 Components"下的"MODULE-IDENTITY"拖到希望的结点如"enterprises"结点下,Name编辑框输入希望的名字如"liuzyModule",Child编辑框输入我们希望的OID值如39988,再根据需要设置其它的属性。
2).将已建好的"liuzytest"结点拖到"liuzyModule"下,其Child值会变为1,可改成其它值,现在我们保持1不变。
>>改正第2个WARNING:
1).将右边"SMIv2 Components"下的"OBJECT-GROUP"拖到"liuzytest"结点下,Name编辑框输入希望的名字如"liuzyleafGroup",Child编辑框输入我们希望的OID值如4,点击"Objects"浏览按钮,在弹出的对话框中,删除右边列表框中的"object1",将左边列表框中的"liuzyleaf"加入右边列表框中,再根据需要设置其它的属性,确定。
>>改正第2、3个WARNING:
1).将右边"SMIv2 Components"下的"OBJECT-GROUP"拖到"liuzytest"结点下,Name编辑框输入希望的名字如"liuzyTableGroup",Child编辑框输入我们希望的OID值如5,点击"Objects"浏览按钮,在弹出的对话框中,删除右边列表框中的"object1",将左边列表框中的"liuzyCol1"和"liuzyCol2"加入右边列表框中,再根据需要设置其它的属性,确定。
>>改正第4个WARNING:
1).将右边"SMIv2 Components"下的"NOTIFICATION-GROUP"拖到"liuzytest"结点下,Name编辑框输入希望的名字如"liuzyNotificationGroup",Child编辑框输入我们希望的OID值如6,点击"Objects"浏览按钮,在弹出的对话框中,删除右边列表框中的"notification1",将左边列表框中的"liuzyNotification"加入右边列表框中,再根据需要设置其它的属性,确定。
10.再次进行正确性检查:全部OK!
11.预览mib文件:点击菜单File->Export Preview
12.生成mib文件:点击菜单File->Export