SNMP
1、登錄root帳戶
# mkdev snmp
2、編輯/etc/snmpd.conf
注意snmpd.conf中的descr和objid的內容都是固定的,不要修改
descr=SCO TCP/IP Runtime Release 2.0.0
objid=SCO.1.2.0.0
contact=Jeff Liebermann(改成你的名字)
location=Comix World Headquarters(改成你的位置)
3、編輯/etc/snmpd.comm
注釋或刪除所有帶WRITE權限的行,缺省的community名字是"public".
例如:
# test1 0.0.0.0 READ
# test2 127.0.0.1 WRITE
public 0.0.0.0 READ
public是個口令(passwd). 如果考慮安全因素,應選擇一個不同的community名字(password)
並將ip設置為本機127.0.0.1
例如:
secret 127.0.0.1 READ
這樣只有在本機運行MIB browser能夠讀到SNMP的參數.用本機ip地址也能工作
4、編輯/etc/snmpd.peers
其中SCO提供的hostmib OID那行配置是錯誤的,應該修改,如下所示:
(OID正確, 但MIB用的是錯誤的OID, 所以原來hostmib的配置必須被換掉)
# "unixd" 1.3.6.1.4.1.4.3.1.2 "aintNoThing"
# "triald" 1.3.6.1.4.1.4.3.23.1 "aintNoThing"
# "gated" 1.3.6.1.4.1.4.3.23.2 "aintNoThing"
# "foosmuxd" 1.3.6.1.4.1.4.3.23.3 "mypasswd"
"scoDoctorMIB" 1.3.6.1.4.1.32.100.1.1 "mypasswd"
####"hostmib" 1.3.6.1.4.1.32.99.1 "aintNoThing"
"hostmib" 1.3.6.1.2.1.25 "aintNoThing"
前4行沒有用,只需要最後一行hostmib. SCO配置的OID號碼"...32.99.1"是錯誤的
5、編輯/etc/snmpd.trap
這時候應當沒有任何traps.
6、確認snmp是否工作
執行命令# getmany localhost public iso
將看到有很多行信息,如果配置了hostmib,那麼會列出來更多.
7、執行 # mkdev hostmib
選擇install.
# ps -ef | grep smux
確認能看到有"/etc/smuxtcl /etc/sysadm.d/hostmib.tcl"
8、創建一個mib編號目標名稱表:
# cd /etc/sysadm.d
# post_mosy -i hostmib.defs -o hostmib.dfn
SCO的SNMP包中缺少hostmib.dfn文件,但getone和getmany命令都需要利用這個文件來
輸出OID編號對應的描述名稱.
9、重起網絡
執行 # /etc/rc2.d/S89hostmib stop 停止smux hostmib
# ps -e | grep snmpd 記下snmpd的pid
比如結果是 1176 ? 00:11 snmpd
那麼snmpd的pid就是1176,
然後執行# kill -1 1176 讓snmpd守護進程重新讀入修改後的新配置
再執行 # /etc/rc2.d/S89hostmib start 重啟動smux hostmib
10、測試
下面的測試命令例子中sloth是需要測試的機器名字,你需要修改為自己的機器名字。
getone -f /etc/sysadm.d/hostmib.dfn sloth public mib-2.25.1.6.0
getone -f /etc/sysadm.d/hostmib.dfn sloth public 1.3.6.1.2.1.25.1.6.0
getmany -f /etc/sysadm.d/hostmib.dfn sloth public hrSystemProcesses
getone -f /etc/sysadm.d/hostmib.dfn sloth public hrSystemProcesses.0
上述命令都應當返回當前正在運行的進程個數
檢查SNMP狀態的命令:/usr/bin/snmpstat -s sloth
11、Bugs
SNMP的"getmany"程序有1處bug,它不能處理long OID.
SCO 3.2v4.2、OSR5的5.0.0/5.0.2/5.0.4都有此問題.