概述
如果我们需要监控打印机、路由器、UPS等设备,肯定不能使用zabbix agentd,因为他们不能安装软件的,还好他们一般都支持SNMP协议,这样我可以使用SNMP来监控他们.如果你希望使用SNMP agent来获取这些设备的信息,那么在安装zabbix server的时候你需要增加snmp的支持.

备注:SNMP检查基于UDP协议接下来

注意事项:

  • 如果监控基于SNMPv3协议的设备,确保msgAuthoritativeEngineID(通常叫做snmpEngineID
  • 或“Engine ID”)是唯一的. 以前SNMPv3协议只支持MD5和DES加密,从zabbix 2.2开始支持SHA与AES加密协议.

配置SNMP监控
使用SNMP来监视设备,需要完成以下步骤:

  1. 创建主机
    创建一个使用SNMP接口的主机(请参考zabbix创建主机),创建主机过程中你可以选择相应的模板,路由器、交换机这些设备的监控itme,zabbix已经默认自带了
  2. 找出你想监控的SNMP字符串(或者OID)
    如果你想获取SNMP字符串,你可以使用命令snmpwalk来实现,当然在安装zabbix的时候你需要增加snmp的支持
# snmpwalk -v 2c -c public

2c表示SNMP标准版本,snmp推出了v1,v2,v3版本,你也可以 写成1,表示使用1版本.上面的命令会获取到一个SNMP的列表,包含键值,默认情况下我们snmp不加密,使用public作为共同体即可,这些列表中 有你需要的一些监控数据.但是线上环境我们不可能获取所有的键值,如果需要获取特定的数据,例如像获取交换机第三个端口的入口流量,需要使用IF-MIB::ifInOctets.3字符串,如下:

IF-MIB::ifInOctets.3 = Counter32: 3409739121

然后使用snmpget命令来获取IF-MIB::ifInOctets.3的OID。命令如下

# snmpget -v 2c -c public -On 10.62.1.22 IF-MIB::ifInOctets.3

最后一个数字3表示端口3,如果你想监控端口23那就写上23. 请参考: Dynamic indexes.
会输出如下值:

.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 3472126941

同理,OID的最后一个数字3表示端口号,要特别注意的是3COM的端口号1是101,3是是103,但是cisco还是不变,1号还是数字1.
创建监控项item
回 到zabbix的主机列表中,在你需要配置的主机那行,点击监控项item,在右上角点击“create item”,和普通的监控项创建方法差不多,仅有几个地方不同,type选择SNMP v2或者v1,v3,一般选择v2,snmp community使用默认的public,port不填写默认为161. SNMP OID写上OID,例如”.1.3.6.1.2.1.2.2.1.10.3"。然后其他内容和其他item type一样,然后保存即可。最后去看看是否获取到了数据。

简单实例
参数
Community:public
OID:1.2.3.45.6.7.8.0 (or .1.2.3.45.6.7.8.0)
Key: 例如sysName等,比OID好记

OID可以写数字也可以使用字符串. 然而,一些项目中,字符串OID需要转为数字格式,我们可以使用命令snmpget来获取,如下命令:

# snmpget -On localhost public enterprises.ucdavis.memory.memTotalSwap.0

其他

  1. 如果想使用snmp来监控,从源码编译安装zabbix,一定要加上编译参数–with-net-snmp
  2. 从zabbix 2.2.3开始server和proxy都支持使用单个请求获取多个值

SNMP OID列表 监控需要用到的OID:

zabbix_proxy 开启snmp zabbix snmp oid_字符串


zabbix_proxy 开启snmp zabbix snmp oid_snmp_02


zabbix_proxy 开启snmp zabbix snmp oid_Group_03


zabbix_proxy 开启snmp zabbix snmp oid_snmp_04


zabbix_proxy 开启snmp zabbix snmp oid_zabbix_05


zabbix_proxy 开启snmp zabbix snmp oid_zabbix_06


System Group

sysDescr 1.3.6.1.2.1.1.1

sysObjectID 1.3.6.1.2.1.1.2

sysUpTime 1.3.6.1.2.1.1.3

sysContact 1.3.6.1.2.1.1.4

sysName 1.3.6.1.2.1.1.5

sysLocation 1.3.6.1.2.1.1.6

sysServices 1.3.6.1.2.1.1.7

Interfaces Group

ifNumber 1.3.6.1.2.1.2.1

ifTable 1.3.6.1.2.1.2.2

ifEntry 1.3.6.1.2.1.2.2.1

ifIndex 1.3.6.1.2.1.2.2.1.1

ifDescr 1.3.6.1.2.1.2.2.1.2

ifType 1.3.6.1.2.1.2.2.1.3

ifMtu 1.3.6.1.2.1.2.2.1.4

ifSpeed 1.3.6.1.2.1.2.2.1.5

ifPhysAddress 1.3.6.1.2.1.2.2.1.6

ifAdminStatus 1.3.6.1.2.1.2.2.1.7

ifOperStatus 1.3.6.1.2.1.2.2.1.8

ifLastChange 1.3.6.1.2.1.2.2.1.9

ifInOctets 1.3.6.1.2.1.2.2.1.10

ifInUcastPkts 1.3.6.1.2.1.2.2.1.11

ifInNUcastPkts 1.3.6.1.2.1.2.2.1.12

ifInDiscards 1.3.6.1.2.1.2.2.1.13

ifInErrors 1.3.6.1.2.1.2.2.1.14

ifInUnknownProtos 1.3.6.1.2.1.2.2.1.15

ifOutOctets 1.3.6.1.2.1.2.2.1.16

ifOutUcastPkts 1.3.6.1.2.1.2.2.1.17

ifOutNUcastPkts 1.3.6.1.2.1.2.2.1.18

ifOutDiscards 1.3.6.1.2.1.2.2.1.19

ifOutErrors 1.3.6.1.2.1.2.2.1.20

ifOutQLen 1.3.6.1.2.1.2.2.1.21

ifSpecific 1.3.6.1.2.1.2.2.1.22

IP Group

ipForwarding 1.3.6.1.2.1.4.1

ipDefaultTTL 1.3.6.1.2.1.4.2

ipInReceives 1.3.6.1.2.1.4.3

ipInHdrErrors 1.3.6.1.2.1.4.4

ipInAddrErrors 1.3.6.1.2.1.4.5

ipForwDatagrams 1.3.6.1.2.1.4.6

ipInUnknownProtos 1.3.6.1.2.1.4.7

ipInDiscards 1.3.6.1.2.1.4.8

ipInDelivers 1.3.6.1.2.1.4.9

ipOutRequests 1.3.6.1.2.1.4.10

ipOutDiscards 1.3.6.1.2.1.4.11

ipOutNoRoutes 1.3.6.1.2.1.4.12

ipReasmTimeout 1.3.6.1.2.1.4.13

ipReasmReqds 1.3.6.1.2.1.4.14

ipReasmOKs 1.3.6.1.2.1.4.15

ipReasmFails 1.3.6.1.2.1.4.16

ipFragsOKs 1.3.6.1.2.1.4.17

ipFragsFails 1.3.6.1.2.1.4.18

ipFragCreates 1.3.6.1.2.1.4.19

ipAddrTable 1.3.6.1.2.1.4.20

ipAddrEntry 1.3.6.1.2.1.4.20.1

ipAdEntAddr 1.3.6.1.2.1.4.20.1.1

ipAdEntIfIndex 1.3.6.1.2.1.4.20.1.2

ipAdEntNetMask 1.3.6.1.2.1.4.20.1.3

ipAdEntBcastAddr 1.3.6.1.2.1.4.20.1.4

ipAdEntReasmMaxSize 1.3.6.1.2.1.4.20.1.5

ICMP Group

icmpInMsgs 1.3.6.1.2.1.5.1

icmpInErrors 1.3.6.1.2.1.5.2

icmpInDestUnreachs 1.3.6.1.2.1.5.3

icmpInTimeExcds 1.3.6.1.2.1.5.4

icmpInParmProbs 1.3.6.1.2.1.5.5

icmpInSrcQuenchs 1.3.6.1.2.1.5.6

icmpInRedirects 1.3.6.1.2.1.5.7

icmpInEchos 1.3.6.1.2.1.5.8

icmpInEchoReps 1.3.6.1.2.1.5.9

icmpInTimestamps 1.3.6.1.2.1.5.10

icmpInTimestampReps 1.3.6.1.2.1.5.11

icmpInAddrMasks 1.3.6.1.2.1.5.12

icmpInAddrMaskReps 1.3.6.1.2.1.5.13

icmpOutMsgs 1.3.6.1.2.1.5.14

icmpOutErrors 1.3.6.1.2.1.5.15

icmpOutDestUnreachs 1.3.6.1.2.1.5.16

icmpOutTimeExcds 1.3.6.1.2.1.5.17

icmpOutParmProbs 1.3.6.1.2.1.5.18

icmpOutSrcQuenchs 1.3.6.1.2.1.5.19

icmpOutRedirects 1.3.6.1.2.1.5.20

icmpOutEchos 1.3.6.1.2.1.5.21

icmpOutEchoReps 1.3.6.1.2.1.5.22

icmpOutTimestamps 1.3.6.1.2.1.5.23

icmpOutTimestampReps 1.3.6.1.2.1.5.24

icmpOutAddrMasks 1.3.6.1.2.1.5.25

icmpOutAddrMaskReps 1.3.6.1.2.1.5.26

TCP Group

tcpRtoAlgorithm 1.3.6.1.2.1.6.1

tcpRtoMin 1.3.6.1.2.1.6.2

tcpRtoMax 1.3.6.1.2.1.6.3

tcpMaxConn 1.3.6.1.2.1.6.4

tcpActiveOpens 1.3.6.1.2.1.6.5

tcpPassiveOpens 1.3.6.1.2.1.6.6

tcpAttemptFails 1.3.6.1.2.1.6.7

tcpEstabResets 1.3.6.1.2.1.6.8

tcpCurrEstab 1.3.6.1.2.1.6.9

tcpInSegs 1.3.6.1.2.1.6.10

tcpOutSegs 1.3.6.1.2.1.6.11

tcpRetransSegs 1.3.6.1.2.1.6.12

tcpConnTable 1.3.6.1.2.1.6.13

tcpConnEntry 1.3.6.1.2.1.6.13.1

tcpConnState 1.3.6.1.2.1.6.13.1.1

tcpConnLocalAddress 1.3.6.1.2.1.6.13.1.2

tcpConnLocalPort 1.3.6.1.2.1.6.13.1.3

tcpConnRemAddress 1.3.6.1.2.1.6.13.1.4

tcpConnRemPort 1.3.6.1.2.1.6.13.1.5

tcpInErrs 1.3.6.1.2.1.6.14

tcpOutRsts 1.3.6.1.2.1.6.15

UDP Group

udpInDatagrams 1.3.6.1.2.1.7.1

udpNoPorts 1.3.6.1.2.1.7.2

udpInErrors 1.3.6.1.2.1.7.3

udpOutDatagrams 1.3.6.1.2.1.7.4

udpTable 1.3.6.1.2.1.7.5

udpEntry 1.3.6.1.2.1.7.5.1

udpLocalAddress 1.3.6.1.2.1.7.5.1.1

udpLocalPort 1.3.6.1.2.1.7.5.1.2

SNMP Group

snmpInPkts 1.3.6.1.2.1.11.1

snmpOutPkts 1.3.6.1.2.1.11.2

snmpInBadVersions 1.3.6.1.2.1.11.3

snmpInBadCommunityNames 1.3.6.1.2.1.11.4

snmpInBadCommunityUses 1.3.6.1.2.1.11.5

snmpInASNParseErrs 1.3.6.1.2.1.11.6

NOT USED 1.3.6.1.2.1.11.7

snmpInTooBigs 1.3.6.1.2.1.11.8

snmpInNoSuchNames 1.3.6.1.2.1.11.9

snmpInBadValues 1.3.6.1.2.1.11.10

snmpInReadOnlys 1.3.6.1.2.1.11.11

snmpInGenErrs 1.3.6.1.2.1.11.12

snmpInTotalReqVars 1.3.6.1.2.1.11.13

snmpInTotalSetVars 1.3.6.1.2.1.11.14

snmpInGetRequests 1.3.6.1.2.1.11.15

snmpInGetNexts 1.3.6.1.2.1.11.16

snmpInSetRequests 1.3.6.1.2.1.11.17

snmpInGetResponses 1.3.6.1.2.1.11.18

snmpInTraps 1.3.6.1.2.1.11.19

snmpOutTooBigs 1.3.6.1.2.1.11.20

snmpOutNoSuchNames 1.3.6.1.2.1.11.21

snmpOutBadValues 1.3.6.1.2.1.11.22

NOT USED 1.3.6.1.2.1.11.23

snmpOutGenErrs 1.3.6.1.2.1.11.24

snmpOutGetRequests 1.3.6.1.2.1.11.25

snmpOutGetNexts 1.3.6.1.2.1.11.26

snmpOutSetRequests 1.3.6.1.2.1.11.27

snmpOutGetResponses 1.3.6.1.2.1.11.28

snmpOutTraps 1.3.6.1.2.1.11.29

snmpEnableAuthenTraps 1.3.6.1.2.1.11.30