./configure --prefix=/usr/local --with-perl-modules --enable-embedded-perl --enable-shared
Make
Make test
Make install
mib2c TEST-MIB:test 用MIB2C生成代码
./configure --prefix=/usr/local --with-perl-modules --enable-embedded-perl --enable-shared
Make
Make test
Make install
mib2c TEST-MIB:test 用MIB2C生成代码
snmpwalk 出�"Timeout: No Response
十月 22nd, 2008 at 17:38
bash: snmpwalk: command not found 是因为snmpwalk需要安装额外的软件包 net-snmp-utils
排除net-snmp安装的问题.......
如果还出现Timeout: No Respons
Timeout: No Response 是因为以下4种原因:
1、安全映射名(还有别的叫法,反正默认的就是public)。
2、防火墙。
3、系统没有启动服务。
4、您自己写的搜集状态的脚本运行时间较长。第四种原因还没有证实,目前我碰到的情况应该就是第四种。
使用snmpwalk若跑了一些讯息后停下来Timeout: No Respons
可能是网路环境不好,可以适度调整一下
请加参数(-t),例如:snmpwalk -c public -v 1 -t 120 192.168.1.55
源文档 <http://www.ai77.org/archives/77>
�教snmpd的��~�是出�~~Timeout: No Response from localhost
(1/1)
owenchen:
小弟的系��FC6
安�的SNMP版本�
net-snmp-utils-5.3.1-14.fc6
net-snmp-devel-5.3.1-14.fc6
net-snmp-5.3.1-14.fc6
snmpd.conf�定��:
com2sec notConfigUser default public
com2sec local localhost mymrtg
com2sec mynetwork 192.168.1.0/24 mymrtg
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
group MyRWGroup v1 local
group MyROGroup v1 mynetwork
group MyRWGroup v2c local
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2
view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80
access notConfigGroup "" any noauth exact systemview none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
�器Listsen的��如下:
[root@test snmp]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:20000 0.0.0.0:* LISTEN 2351/perl
tcp 0 0 0.0.0.0:832 0.0.0.0:* LISTEN 1923/ypserv
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1953/slapd
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 7399/snmpd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2071/mysqld
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 2106/dovecot
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1902/portmap
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 2357/perl
tcp 0 0 192.168.1.12:53 0.0.0.0:* LISTEN 1876/named
tcp 0 0 192.168.1.11:53 0.0.0.0:* LISTEN 1876/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1876/named
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 5328/master
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1876/named
tcp 0 0 :::389 :::* LISTEN 1953/slapd
tcp 0 0 :::80 :::* LISTEN 2229/httpd
tcp 0 0 :::22 :::* LISTEN 2002/sshd
tcp 0 0 :::443 :::* LISTEN 2229/httpd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 1876/named
udp 0 0 0.0.0.0:10000 0.0.0.0:* 2357/perl
udp 0 0 0.0.0.0:20000 0.0.0.0:* 2351/perl
udp 0 0 0.0.0.0:161 0.0.0.0:* 7399/snmpd
udp 0 0 192.168.1.12:53 0.0.0.0:* 1876/named
udp 0 0 192.168.1.11:53 0.0.0.0:* 1876/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1876/named
udp 0 0 0.0.0.0:829 0.0.0.0:* 1923/ypserv
udp 0 0 0.0.0.0:602 0.0.0.0:* 2121/rpc.yppasswdd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1902/portmap
udp 0 0 :::32769 :::* 1876/named
本���防火��置~~~~@@
�什�每次我下snmpwalk指令~~~都�有回�呢@@
[root@test snmp]# snmpwalk localhost -c mymrtg -v 1
Timeout: No Response from localhost
�教各位前�~~~真的不懂阿@@
��
[0] 文章列表
源文档 <http://phorum.study-area.org/index.php?topic=45287.0;wap2>
Management Information Base(管理信息库,MIB)是一组对象,定义可对某个设备提出的查询。
我们所用的snmp监控主机如果要轮询一个支持snmp的设备的某项数据,它必须发出被查询设备所能理解的查询命令,这个就需要监控主机载入被查询设备对应的MIB,这个MIB将通知snmp监控主机有关由 MIB 模块化的数据的布局和组成。
Linux中所使用的net-snmp自带了一些标准的MIB,但是世界上支持snmp的设备有无数种,各厂家都有自己的定义,这些定义不可能都包含在net-snmp自带的MIB中,因此,想要正确轮询一个这样的设备,必须载入厂家自己的MIB文件。
一般我们下载回来的MIB文件可能后缀名为.mib,为了清晰起见,一般改成 MIB_NAME.txt 这样的形式,当然不改也可以,这个MIB文件叫什么名字无关紧要。
系统要载入一个MIB文件,net-snmp必须知道从哪里载入。默认情况下是下边两个目录:
1. $HOME/.snmp/mibs
2. /usr/local/share/snmp/mibs
不过也有些发行版会改变这个默认路径,那么可以用下边两种方法之一获取它所使用的路径。
1.如果系统安装了net-snmp-config: net-snmp-config --default-mibdirs
2.如果未安装net-snmp-config: snmptranslate -Dinit_mib .1.3 2>&1 |grep MIBDIR
一般来说MIB文件是一个纯文本文件,我们打开这个文件查看,找到第一个包含 DEFINITIONS 的行
例如/usr/share/snmp/mibs/IP-MIB.txt 中包含如下一行
IP-MIB DEFINITIONS ::= BEGIN
这个DEFINITIONS关键字前边的 "IP-MIB" 就是系统在调用这个MIB文件时所使用的Module名称,这个很重要。
网上有一些文档说增加一个新的mib文件就是把mib文件复制到'/usr/share/snmp/mibs/'中就可以了,其实这是不对的!
首先,我们要将下载到的MIB文件复制到前边所说的两个默认路径中的一个里
但是光复制过去还不能生效,net-snmp是不会自动加载所有在/usr/share/snmp/mibs/目录中的mib文件的!
如果不能正确加载mib文件的话,就会出现 "Unknown Object Identifier" 这样的错误。
如果要net-snmp自动加载我们下载的新MIB文件,有两种方法:
方法一: 放到snmp.conf中。
用 net-snmp-config --snmpconfpath可以确定snmp.conf文件的位置
[root@Kickstart-O ~]# net-snmp-config --snmpconfpath
/etc/snmp:/usr/share/snmp:/usr/lib/snmp:/root/.snmp:/var/net-snmp
将所要加载的MIB的Module名称加到snmp.conf中,如下例:
mibs +CISCO-RHINO-MIB
mibs +SOME-OTHER-SPIFFY-MIB
如果图省事也可以这样,当然我们不建议这样。
mibs +ALL
因为这样有可能会提示如下错误
% snmpwalk -v2c public 192.168.1.100
Warning: Module MAU-MIB was in /usr/share/snmp/mibs//DOT3-MAU-MIB.txt now is /usr/share/snmp/mibs//RFC2668-MIB.txt
Warning: Module DISMAN-EVENT-MIB was in /usr/share/snmp/mibs//EVENT-MIB.txt now is /usr/share/snmp/mibs//DISMAN-EVENT-MIB.txt
Warning: Module P-BRIDGE-MIB was in /usr/share/snmp/mibs//P-BRIDGE-MIB.txt now is /usr/share/snmp/mibs//P-BRIDGE.txt
可以将标准错误文件转向来屏蔽这些警告信息
% snmpwalk -v2c public 192.168.1.100 2>/dev/null
SNMPv2-MIB::sysDescr.0 = STRING: Linux server1 2.4.34-pre2 #170 Fri Sep 15 20:10:21 CEST 2006 mips
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::linux
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (706980) 1:57:49.80
方法二: 使用系统变量
MIBS=+CISCO-RHINO-MIB:SOME-OTHER-SPIFFY-MIB
export MIBS
通过上述两种方法之一,net-snmp就可以正确加载我们的新MIB文件,使用snmpget也就可以轮询到新MIB文件中所定义的OID了。
# snmpget -v1 -c public 192.168.49.253 BREEZECOM-DOT11EXT-MIB::roamQuality.1
BREEZECOM-DOT11EXT-MIB::roamQuality.1 = INTEGER: 3
或者这样也可以
# snmpget -v1 -c public 192.168.49.253 roamQuality.1
BREEZECOM-DOT11EXT-MIB::roamQuality.1 = INTEGER: 3
一个不太常用,但是非常有用的命令是snmptranslate,使用'snmptranslate' 命令可以获得一个文本项对应的OID值
# snmptranslate -On BREEZECOM-DOT11EXT-MIB::roamQuality
.1.3.6.1.4.1.710.7.1.5.1.23.1.7
也可以使用'snmptranslate' 命令查询一个指定的对象
# snmptranslate -IR roamQuality
BREEZECOM-DOT11EXT-MIB::roamQuality
还可以用snmptranslate命令把OID转化成文字描述
# snmptranslate .1.2.840.10036.2.2.1.12
IEEE802dot11-MIB::dot11FCSErrorCount
# snmptranslate -Of .1.2.840.10036.2.2.1.12
.iso.member-body.us.ieee802dot11.dot11mac.dot11CountersTable.dot11CountersEntry.dot11FCSErrorCount
也可用snmptranslate命令从mib文件获得某个对象的全部细节
# snmptranslate -Td BREEZECOM-DOT11EXT-MIB:roamQuality
BREEZECOM-DOT11EXT-MIB::roamQuality
roamQuality OBJECT-TYPE
-- FROM BREEZECOM-DOT11EXT-MIB
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "An indicator for the quality of the BSS. The quality is
calculated over the received Beacons of the BSS and depends
on the selected quality indicator. The semantics of the
indicator is 'low is good quality' and 'high is bad quality'."
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) breezeCOM(710) ds11Products(7) dot11ExtMIB(1) dot11ExtWBUObjs(5) roam(1) roamTable
(23) roamEntry(1) 7 }
另一个有用的命令是snmpwalk
# snmpwalk -v1 -c public 192.168.49.253 dot11CountersTable
IEEE802dot11-MIB::dot11TransmittedFragmentCount.1 = INTEGER: 122172497
IEEE802dot11-MIB::dot11MulticastTransmittedFrameCount.1 = INTEGER: 45242
IEEE802dot11-MIB::dot11FailedCount.1 = INTEGER: 4009
IEEE802dot11-MIB::dot11RetryCount.1 = INTEGER: 1601483
IEEE802dot11-MIB::dot11MultipleRetryCount.1 = INTEGER: 885859
IEEE802dot11-MIB::dot11FrameDuplicateCount.1 = INTEGER: 543281
IEEE802dot11-MIB::dot11RTSSuccessCount.1 = INTEGER: 0
IEEE802dot11-MIB::dot11RTSFailureCount.1 = INTEGER: 0
IEEE802dot11-MIB::dot11ACKFailureCount.1 = INTEGER: 3971754
IEEE802dot11-MIB::dot11ReceivedFragmentCount.1 = INTEGER: 108826417
IEEE802dot11-MIB::dot11MulticastReceivedFrameCount.1 = INTEGER: 31359
IEEE802dot11-MIB::dot11FCSErrorCount.1 = INTEGER: 831325
IEEE802dot11-MIB::dot11TransmittedFrameCount.1 = INTEGER: 122156588
IEEE802dot11-MIB::dot11WEPUndecryptableCount.1 = INTEGER: 0
需要注意的是,在使用snmpget命令的时候,需要在查询的OID尾部增加.0 或者 .1,不然会报错。
# snmpget -v1 -c public 192.168.49.253 dot11ACKfailureCount
Error in packet
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: IEEE802dot11-MIB::dot11ACKFailureCount
# snmpget -v1 -c public 192.168.49.253 dot11ACKFailureCount.1
IEEE802dot11-MIB::dot11ACKFailureCount.1 = INTEGER: 3971912
还有在unix系统中,系统是大小写敏感的,因此写OID的时候注意大小写不要写错。
参考文档:
http://www.nwsmith.net/HintsTips/net-snmp-tutorial.htm
http://www.net-snmp.org/wiki/index.php/TUT:Using_and_loading_MIBS
注: 因为有几个网友加我msn询问本文中的一些问题,让我觉得原来一些地方写的不够清晰明了,因此在2010年02月05日对这篇博文作了一些修改,希望大家能看得更明白一些,^^。
源文档 <http://polygun2000.spaces.live.com/blog/cns!182B490BAC7D9686!389.entry>
http://polygun2000.spaces.live.com/default.aspx
本说明仅针对于下面的开发环境:
UCD-SNMP 4.2.7.1
RedHat Ent AS 4
-----------------------------------------------------------------------------------------------------------------
UCD-SNMP是个开源的SNMP实现项目。支持SNMPv1、SNMPv2、SNMPv3,支持基于IPv4和IPv6的SNMP应用程序开发。
UCD-SNMP包括以下内容:
完整的API用于SNMP应用程序开发(包括c和perl的API);
一个可扩展的SNMP代理程序(snmpd);开发者可开发动态模块扩展snmpd,UCD-SNMP内置扩展子代理与主代理的通信协议;
提供众多命令行工具检查和使用SNMP协议;
一个trap接收进程,用于接收和显示trap。并可以将trap记录到日志文件里;一个图形化的MIB浏览工具(tkmib:基于Tk/Perl的);
UCD-SNMP被很多商业化linux包含,绝大部分公司使用UCD-SNMP的主代理实现Linux的SNMP支持。
安装ucd-snmp4.2.7之前需要注意的问题:
/bin/sed: can’t read /usr/lib/libbeecrypt.la: No such file or directory
libtool: link: `/usr/lib/libbeecrypt.la’ is not a valid libtool archive
make[1]: *** [libnetsnmpmibs.la] Error 1
解决:以为缺少libbeecrypt.la ,libbeecrypt.so等共享库,如:rpm –ivh beecrypt-4.2.1
/usr/bin/ld: cannot find -lelf
解决:ln -s /usr/lib/libelf.so.1 /usr/lib/libelf.so 与linux系统有关
/usr/bin/ld:can’t not find -lselinux
解决:缺少libselinux 和 libselinux-devel包,如:rpm –ivh selinux
安装ucd-snmp之前一定要注意,先配置好linux的运行环境,安装相应的包,凡是在敲入make命令编译的过程中,出现的错误提示,或是用make test命令编译出现的错误提示,均要首先考虑是否安装了软件包的devel版本。
如:libselinux-devel版本,beecrypt-devel版本,elf-devel版本等等。
----------------------------------------------------------------------------------------------------------------
当UCD-SNMP安装完成以后:
UCD-SNMP命令说明:
FAQ:
1.如何验证snmpd已经启动了?
ps –aef | grep snmpd
2. 是否可以从.1开始采集服务器数据?
snmpwalk -v 1 -c public localhost .1
加入如下参数使snmpd使用指定配置文件启动:
snmpd -C -c /etc/snmp/snmpd.conf
//该方式,我们可以配置很多不同的配置文件,设置不同的运行环境,便于学习和开发。
libselinux-1.19.1-7.4
libselinux-devel-1.19.1-7.4
beecrypt-3.1.0-6
beecrypt-devel-3.1.0-6
[root@SAG ~]# rpm -ivh net-snmp-5.1.2-11.EL4.11.i386.rpm
warning: net-snmp-5.1.2-11.EL4.11.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
libbeecrypt.so.6 is needed by net-snmp-5.1.2-11.EL4.11.i386
libbz2.so.1 is needed by net-snmp-5.1.2-11.EL4.11.i386
libcrypto.so.4 is needed by net-snmp-5.1.2-11.EL4.11.i386
libelf.so.1 is needed by net-snmp-5.1.2-11.EL4.11.i386
libnetsnmp.so.5 is needed by net-snmp-5.1.2-11.EL4.11.i386
libnetsnmpagent.so.5 is needed by net-snmp-5.1.2-11.EL4.11.i386
libnetsnmphelpers.so.5 is needed by net-snmp-5.1.2-11.EL4.11.i386
libnetsnmpmibs.so.5 is needed by net-snmp-5.1.2-11.EL4.11.i386
libnetsnmptrapd.so.5 is needed by net-snmp-5.1.2-11.EL4.11.i386
libpopt.so.0 is needed by net-snmp-5.1.2-11.EL4.11.i386
librpm-4.3.so is needed by net-snmp-5.1.2-11.EL4.11.i386
librpmdb-4.3.so is needed by net-snmp-5.1.2-11.EL4.11.i386
librpmio-4.3.so is needed by net-snmp-5.1.2-11.EL4.11.i386
libselinux.so.1 is needed by net-snmp-5.1.2-11.EL4.11.i386
libsensors.so.3 is needed by net-snmp-5.1.2-11.EL4.11.i386
libwrap.so.0 is needed by net-snmp-5.1.2-11.EL4.11.i386
libz.so.1 is needed by net-snmp-5.1.2-11.EL4.11.i386
rpm -ivh beecrypt-devel-3.1.0-6.x86_64.rpm
rpm -ivh elfutils-libelf-devel-0.97.1-5.x86_64.rpm
rpm -ivh libselinux-devel-1.19.1-7.4.x86_64.rpm
rpm -ivh lm_sensors-2.8.7-2.40.5.x86_64.rpm
| |
| 表-1 |
| |
| |
| 图1 用xload图形显示系统负载 |
| |
| 图2 phpsysinfo的中文工作界面 |
./configure --prefix=/usr/local --with-perl-modules --enable-embedded-perl --enable-shared
Make
Make test
Make install
mib2c lnvSecurity 用MIB2C生成代码