歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Net-SNMP的mib2c配置

Net-SNMP的mib2c配置

日期:2017/2/28 15:34:28   编辑:Linux教程

Net-SNMP的mib2c
今天在搞net-snmp所提供的mib2c tool,
用起來說實在的實在有點難用。
大概是我對它還不太熟的關系吧。
以下是今天弄的一些心得:
(因為開發需求,所以設定prefix為/opt/net-snmp。)

1.
首先,在安裝net-snmp時,需在configure時加入以下參數

$ ./configure --prefix=/opt/net-snmp/ --enable-embedded-perl --enable-shared --with-perl-modules
$ make
$ make test
# make install (should be root)

2.
在確定PATH設定好後,執行mib2c時,
通常會遇到訊息說沒有安裝Perl SNMP Module,
這是因為我們在configure時有設了prefix的關系,
導致perl找不到share library。
解決的方法是將net-snmp的lib目錄設定給ldconfig知道即可。

# echo /opt/net-snmp/lib > /etc/ld.so.conf.d/net-snmp.conf
# ldconfig -v

3.
最後就是mib2c操作方法,
據mib2c的manpage裡說明,
mib2c的功用是產生template code給agent來擴充功能使用。

Usage為

mib2c [-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][q][-S VAR=VAL] MIBNODE
而mib2c的使用方法是以mib node為parameter來開始生成template code。
所以必須先將mib file放置在$HOME/.mibs/或/opt/net-snmp/share/snmp/mibs,
然後在環境變數中設定MIBS,

export MIBS=+NET-SNMP-TUTORIAL-MIB
接著麻煩的在這裡,
你必須依著你的的mib node來選定所產生的template code的CONFIGFILE。
下面是CONFIGFILE所支援的類型:
如果你要寫些scalars所需的code,請用:

mib2c -c mib2c.scalar.conf MIBNODE
如果你要用int scalars,請用:

mib2c -c mib2c.int_watch.conf MIBNODE

一般來講Table是建議採用MDF:

mib2c -c mib2c.mfd.conf MIBNODE
如果Table Data是在外部時:

mib2c -c mib2c.iterate.conf MIBNODE
如果Table Data是在agent裡:

mib2c -c mib2c.create-dataset.conf MIBNODE
承上,如果還需排序時:

mib2c -c mib2c.array-user.conf MIBNODE

如果是要產生Table上任一Column的header時:

mib2c -c mib2c.column_defines.conf MIBNODE
如果是要產生Column上任一Enum的header時:

mib2c -c mib2c.column_enums.conf MIBNODE

4.
結論,大概就是麻煩吧。
Net-SNMP不像其他商用的SNMP套件一樣提供簡易的開發擴充功能的環境,
像在EMANATE中打一個make就ok了,連型態都自動判斷。
不過也許是我對mib2c還不太熟的關系吧,Orz。

Copyright © Linux教程網 All Rights Reserved