SNMP

您所在的位置:网站首页 win10snmp安装 SNMP

SNMP

2023-11-16 10:25| 来源: 网络整理| 查看: 265

snmptrap

snmptrap和snmpinfo一样,都是发消息给管理者,区别在snmptrap默认使用SNMP TRAP发送消息给管理者,而snmpinform默认使用INFORM-PDU发送消息给管理者,INFORM-PDU需要接收者在收到trap消息时给出应答响应,表明已接收到消息。 snmptrap命令使用-Ci参数时,也可以发送INFORM-PDU消息。

命令格式 snmptrap -v [2c|3] [COMMON OPTIONS] [-Ci] AGENT uptime trap-oid [OID TYPE VALUE]...

TYPE是一个单字符,表示变量类型,支持的类型如下:

i INTEGERu UNSIGNEDc COUNTER32s STRINGx HEX STRINGd DECIMAL STRINGn NULLOBJo OBJIDt TIMETICKSa IPADDRESSb BITS 使用举例

SNMPv2使用举例

snmptrap -v 2c -c public 192.168.100.101:162 0 1.3.6.1.4.1.2345 1.3.6.1.4.1.2345.1 s "hello!" 参数含义-v 2csnmp协议版本-c public共同体192.168.100.101:162发往的IP和端口,端口也可以不指定,默认为1620uptime1.3.6.1.4.1.2345Trap OID1.3.6.1.4.1.2345.1数据OIDs数据类型hello!数据值

SNMPv3使用举例

snmptrap -v 3 -a MD5 -A mypassword -x AES -X mypassword -l authPriv -u myuser -e 800000020109840301 192.168.100.101:162 0 1.3.6.1.4.1.2345 1.3.6.1.4.1.2345.1 s "hello!"

服务端可以使用下面的命令检查是否收到了消息

snmptrapd -C -c /etc/snmp/snmptrapd.conf -df -Lo snmpinfo snmpinform -v [2c|3] [COMMON OPTIONS] AGENT uptime trap-oid [OID TYPE VALUE]...

可以模拟snmp agent发送一个inform请求到snmp管理端(Trap是发送给SNMP管理者的通知网络状况等警告消息,而Inform是需要SNMP管理者确认接收的Trap消息。与Inform 相比较,Trap通知方式为不可靠传输,因为snmp管理端在收到一条Trap通知后无需回复任何确认信息,所以snmp agent无法知道Trap消息是否已经被管理端正确接收)。

snmpinfo的使用方法和snmptrap一样。

snmptrapd

snmptrapd:一个模拟snmp管理端接收trap和inform消息的程序;

ubuntu上安装命令:

apt install snmptrapd

snmptrapd的配置及其使用

snmptrapd.conf文件

跟snmp agent一样,snmptrapd也需要一个配置文件才能运行,否则会提示不能接收trap的信息。snmptrapd所需的配置文件名称为:snmptrapd.conf,安装net-snmp后,默认是没有这个配置文件的,因此需要新建此文件。snmptrapd.conf文件可放在net-snmp的安装路径下,也可放在其它路径中,但需要在启动运行时指定该文件。建立后,添加如下文件内容:

authCommunity log,execute,net public

上面语句指明以“public”为“community”请求的snmp “notification”允许的操作[见参考资料2]。上面添加的是比较简单的配置,但可使snmptrapd程序运行起来并正确接收trap包。

snmptrapd -C -c /etc/snmp/snmptrapd.conf -df -Lo

上面命令中的选项表示:

-C : 表示不使用net-snmp默认路径下的配置文件snmptrapd.conf-c : 指定snmptrapd.conf文件-d : 显示收到和发送的数据报,通过这个选项可以看到数据报文-f : 默认情况下,snmptrapd是在后台中运行的,加上这个选项,表示在前台运行-L : 指定日志记录在哪里,后面的o表示直接输出到屏幕上,如果是跟着f表示日志记录到指定的文件中

可通过snmptrapd -h查看命令帮助了解该命令的使用。

snmptranslate

在数字和文本之间转换MIB的OID的名字

$ snmptranslate -On IP-MIB::ipAdEntAddr .1.3.6.1.2.1.4.20.1.1 $ snmptranslate -Of IP-MIB::ipAdEntAddr .iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable.ipAddrEntry.ipAdEntAddr $ snmptranslate -Td IP-MIB::ipAdEntAddr IP-MIB::ipAdEntAddr ipAdEntAddr OBJECT-TYPE -- FROM IP-MIB SYNTAX IpAddress MAX-ACCESS read-only STATUS deprecated DESCRIPTION "The IPv4 address to which this entry's addressing information pertains." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) ip(4) ipAddrTable(20) ipAddrEntry(1) 1 } $ snmptranslate -Ts | head .iso.org .iso.org.dod .iso.org.dod.internet .iso.org.dod.internet.directory .iso.org.dod.internet.mgmt .iso.org.dod.internet.mgmt.mib-2 .iso.org.dod.internet.mgmt.mib-2.system .iso.org.dod.internet.mgmt.mib-2.system.sysDescr .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime $ snmptranslate -Tl | head .iso(1).org(3) .iso(1).org(3).dod(6) .iso(1).org(3).dod(6).internet(1) .iso(1).org(3).dod(6).internet(1).directory(1) .iso(1).org(3).dod(6).internet(1).mgmt(2) .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1) .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1) .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysDescr(1) .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysObjectID(2) .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysUpTime(3) snmpwalk和snmpbulkwalk

相同点:

都是对一个子树值的遍历用法基本相同

不同点:

snmpwalk用的是SNMP GETNEXT请求,查询到的值是一个一个返回给agent;snmpbulkwalk用的是SNMP GETBULK请求,查询的结果会一次性返回给agent,这在查询的结果很多时效率会比snmpwalk高。

使用举例:

snmpbulkwalk -v2c -Os -c public localhost hrStorageSize

输出

hrStorageSize.1 = INTEGER: 2017124 hrStorageSize.3 = INTEGER: 4114272 hrStorageSize.6 = INTEGER: 2017124 hrStorageSize.7 = INTEGER: 769436 hrStorageSize.8 = INTEGER: 1616 hrStorageSize.10 = INTEGER: 2097148 hrStorageSize.31 = INTEGER: 12835448 hrStorageSize.37 = INTEGER: 50429 hrStorageSize.39 = INTEGER: 252140 hrStorageSize.40 = INTEGER: 1280 hrStorageSize.41 = INTEGER: 252140 hrStorageSize.85 = INTEGER: 50428 hrStorageSize.88 = INTEGER: 50428 snmpwalk -v 2c -c public localhost IP-MIB::ipAdEntAddr

输出

IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1 IP-MIB::ipAdEntAddr.192.168.100.181 = IpAddress: 192.168.100.181 snmpget和snmpbulkget

snmpget只适用于OID值是叶子节点的情况,可以一次查询多个OID

snmpget -v2c -c public localhost sysDescr.0 ifIndex.1

输出

sysDescr.0 = STRING: Linux ubuntu 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 ifIndex.1 = INTEGER: 1

snmpbulkget查询的OID可以是非叶子节点,也可以一次查询多个OID

snmpbulkget -v2c -c public localhost hrStorageSize ipAdEntAddr

输出

HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 2017124 IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1 HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: 4114272 IP-MIB::ipAdEntAddr.192.168.100.181 = IpAddress: 192.168.100.181 HOST-RESOURCES-MIB::hrStorageSize.6 = INTEGER: 2017124 IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1 HOST-RESOURCES-MIB::hrStorageSize.7 = INTEGER: 769484 IP-MIB::ipAdEntIfIndex.192.168.100.181 = INTEGER: 2 HOST-RESOURCES-MIB::hrStorageSize.8 = INTEGER: 1616 IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0 HOST-RESOURCES-MIB::hrStorageSize.10 = INTEGER: 2097148 IP-MIB::ipAdEntNetMask.192.168.100.181 = IpAddress: 255.255.255.0 HOST-RESOURCES-MIB::hrStorageSize.31 = INTEGER: 12835448 IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageSize.37 = INTEGER: 50429 IP-MIB::ipAdEntBcastAddr.192.168.100.181 = INTEGER: 1 HOST-RESOURCES-MIB::hrStorageSize.39 = INTEGER: 252140 IP-MIB::ip.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0 HOST-RESOURCES-MIB::hrStorageSize.40 = INTEGER: 1280 IP-MIB::ip.21.1.1.169.254.0.0 = IpAddress: 169.254.0.0


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3