1. 程式人生 > >zabbix-3.2.6之snmp監控(無需安裝agent也能監控)

zabbix-3.2.6之snmp監控(無需安裝agent也能監控)

6.0 send 是否 available 安全 scroll sna object 2.2.0

一、snmp監控介紹

概述

如果我們需要監控打印機、路由器、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的支持

1 # snmpwalk -v 2c -c public .

2c表示SNMP標準版本,snmp推出了v1,v2,v3版本,你也可以 寫成1,表示使用1版本.上面的命令會獲取到一個SNMP的列表,包含鍵值,默認情況下我們snmp不加密,使用public作為共同體即可,這些列表中 有你需要的一些監控數據.但是線上環境我們不可能獲取所有的鍵值,如果需要獲取特定的數據,例如像獲取交換機第三個端口的入口流量,需要使用IF-MIB::ifInOctets.3字符串,如下:

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

然後使用snmpget命令來獲取IF-MIB::ifInOctets.3的OID。命令如下

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

最後一個數字3表示端口3,如果你想監控端口23那就寫上23. 請參考: Dynamic indexes.
會輸出如下值:

1 .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來獲取,如下命令:

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

其他

    • 如果想使用snmp來監控,從源碼編譯安裝zabbix,一定要加上編譯參數--with-net-snmp
    • 從zabbix 2.2.3開始server和proxy都支持使用單個請求獲取多個值

二、snmp安裝配置 zabbix snmp監控準備

yum安裝snmp

1 # yum install net-snmp* -y

snmp配置

1 2 3 4 5 6 7 8 # vim /etc/snmp/snmpd.conf view systemview included .1.3.6.1.2.1.25.1.1 //找到這行,增加下面配置 view systemview included .1 // 這個是新增加的 proc mountd // 找到這些配置,把註釋去掉 proc ntalkd 4 proc sendmail 10 1 disk / 10000 load 12 14 14

啟動snmpd

1 # service snmpd start

通過snmp獲取數據

需要通過snmp獲取到數據,首先我們需要對應的OID,請參考《SNMP OID列表 監控需要用到的OID》

獲取主機名

1 2 3 4 # snmpwalk -c public -v 2c 173.219.255.122 sysName // 使用名稱 SNMPv2-MIB::sysName.0 = STRING: li519-232 # snmpwalk -c public -v 2c 173.219.255.122 .1.3.6.1.2.1.1.5.0 // 使用OID SNMPv2-MIB::sysName.0 = STRING: li519-232

通過如上兩種方式均可獲取到數據,如上獲取到得數據都是li519-232

獲取服務器剩余內存

1 2 3 4 # snmpwalk -c public -v 2c 173.219.255.122 .1.3.6.1.4.1.2021.4.11.0 UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 560872 kB # snmpwalk -c public -v 2c 173.219.255.122 memTotalFree UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 559176 kB

通過兩種方式獲取到服務器剩余內存,因為服務器資源使用量都實時變動的,所以兩次獲取的數值不同.

三、snmp v3的安全配置 snmp認證與加密配置

增加snmp v3用戶

1 2 3 4 5 6 # service snmpd stop # net-snmp-config --create-snmpv3-user -ro -a ttlsapwd -x DES -X ttlsades ttlsa adding the following line to /var/lib/net-snmp/snmpd.conf: createUser ttlsa MD5 "ttlsapwd" DES ttlsades adding the following line to /etc/snmp/snmpd.conf: rouser ttlsa

參數說明

ttlsa:用戶名

ttlsapwd:密碼,密碼必須大於8個字符

DES:加密方式,這邊支持AES、DES兩種

ttlsades:DES口令,必須大於8位

備註:增加用戶的時候,snmp必須關閉,否則有如下報錯

1 2 Apparently at least one snmpd demon is already running. You must stop them in order to use this command.

啟動snmpd v3

1 # service snmpd start

使用snmp v3獲取信息

snmp v3安全級別有三種,分別為noAuthNoPriv(不認證也不加密)、authNoPriv(認證但是不加密)、authPriv(既認證又加密)

務器剩余內存

noAuthNoPriv安全級別

1 2 # snmpwalk -v 3 -l authPriv 173.219.255.122 .1.3.6.1.4.1.2021.4.11.0 UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 560872 kB

authNoPriv安全級別

1 2 # snmpwalk -v 3 -u ttlsa -a MD5 -A ttlsapwd -l authNoPriv freevpn.ttlsa.com sysName SNMPv2-MIB::sysName.0 = STRING: li519-232

authPriv安全級別

1 2 # snmpwalk -v 3 -u ttlsa -a MD5 -A ttlsapwd -x DES -X ttlsades -l authPriv 173.219.255.122 .1.3.6.1.4.1.2021.4.11.0 UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 560872 kB

SNMP V3小結

既然打算用snmp v3了,那麽v1、v2別忘記關閉了,下一節我們分別會演示v2與v3的監控項創建方法,關註下一節zabbix使用SNMP監控服務器.

四、SNMP OID列表 監控需要用到的OID

zabbix的snmp監控還沒開始講,不過先給大家列一些snmp常用的一些OID,比如cpu、內存、硬盤什麽的。先了解這些,在使用snmp監控服務器。

系統參數(1.3.6.1.2.1.1)

OID

描述

備註

請求方式

.1.3.6.1.2.1.1.1.0

獲取系統基本信息

SysDesc

GET

.1.3.6.1.2.1.1.3.0

監控時間

sysUptime

GET

.1.3.6.1.2.1.1.4.0

系統聯系人

sysContact

GET

.1.3.6.1.2.1.1.5.0

獲取機器名

SysName

GET

.1.3.6.1.2.1.1.6.0

機器坐在位置

SysLocation

GET

.1.3.6.1.2.1.1.7.0

機器提供的服務

SysService

GET

.1.3.6.1.2.1.25.4.2.1.2

系統運行的進程列表

hrSWRunName

WALK

.1.3.6.1.2.1.25.6.3.1.2

系統安裝的軟件列表

hrSWInstalledName

WALK

網絡接口(1.3.6.1.2.1.2)

OID

描述

備註

請求方式

.1.3.6.1.2.1.2.1.0

網絡接口的數目

IfNumber

GET

.1.3.6.1.2.1.2.2.1.2

網絡接口信息描述

IfDescr

WALK

.1.3.6.1.2.1.2.2.1.3

網絡接口類型

IfType

WALK

.1.3.6.1.2.1.2.2.1.4

接口發送和接收的最大IP數據報[BYTE]

IfMTU

WALK

.1.3.6.1.2.1.2.2.1.5

接口當前帶寬[bps]

IfSpeed

WALK

.1.3.6.1.2.1.2.2.1.6

接口的物理地址

IfPhysAddress

WALK

.1.3.6.1.2.1.2.2.1.8

接口當前操作狀態[up|down]

IfOperStatus

WALK

.1.3.6.1.2.1.2.2.1.10

接口收到的字節數

IfInOctet

WALK

.1.3.6.1.2.1.2.2.1.16

接口發送的字節數

IfOutOctet

WALK

.1.3.6.1.2.1.2.2.1.11

接口收到的數據包個數

IfInUcastPkts

WALK

.1.3.6.1.2.1.2.2.1.17

接口發送的數據包個數

IfOutUcastPkts

WALK

CPU及負載

OID

描述

備註

請求方式

. 1.3.6.1.4.1.2021.11.9.0

用戶CPU百分比

ssCpuUser

GET

. 1.3.6.1.4.1.2021.11.10.0

系統CPU百分比

ssCpuSystem

GET

. 1.3.6.1.4.1.2021.11.11.0

空閑CPU百分比

ssCpuIdle

GET

. 1.3.6.1.4.1.2021.11.50.0

原始用戶CPU使用時間

ssCpuRawUser

GET

.1.3.6.1.4.1.2021.11.51.0

原始nice占用時間

ssCpuRawNice

GET

. 1.3.6.1.4.1.2021.11.52.0

原始系統CPU使用時間

ssCpuRawSystem.

GET

. 1.3.6.1.4.1.2021.11.53.0

原始CPU空閑時間

ssCpuRawIdle

GET

. 1.3.6.1.2.1.25.3.3.1.2

CPU的當前負載,N個核就有N個負載

hrProcessorLoad

WALK

. 1.3.6.1.4.1.2021.11.3.0

ssSwapIn

GET

. 1.3.6.1.4.1.2021.11.4.0

SsSwapOut

GET

. 1.3.6.1.4.1.2021.11.5.0

ssIOSent

GET

. 1.3.6.1.4.1.2021.11.6.0

ssIOReceive

GET

. 1.3.6.1.4.1.2021.11.7.0

ssSysInterrupts

GET

. 1.3.6.1.4.1.2021.11.8.0

ssSysContext

GET

. 1.3.6.1.4.1.2021.11.54.0

ssCpuRawWait

GET

. 1.3.6.1.4.1.2021.11.56.0

ssCpuRawInterrupt

GET

. 1.3.6.1.4.1.2021.11.57.0

ssIORawSent

GET

. 1.3.6.1.4.1.2021.11.58.0

ssIORawReceived

GET

. 1.3.6.1.4.1.2021.11.59.0

ssRawInterrupts

GET

. 1.3.6.1.4.1.2021.11.60.0

ssRawContexts

GET

. 1.3.6.1.4.1.2021.11.61.0

ssCpuRawSoftIRQ

GET

. 1.3.6.1.4.1.2021.11.62.0

ssRawSwapIn.

GET

. 1.3.6.1.4.1.2021.11.63.0

ssRawSwapOut

GET

.1.3.6.1.4.1.2021.10.1.3.1

Load5

GET

.1.3.6.1.4.1.2021.10.1.3.2

Load10

GET

.1.3.6.1.4.1.2021.10.1.3.3

Load15

GET

內存及磁盤(1.3.6.1.2.1.25)

OID

描述

備註

請求方式

.1.3.6.1.2.1.25.2.2.0

獲取內存大小

hrMemorySize

GET

.1.3.6.1.2.1.25.2.3.1.1

存儲設備編號

hrStorageIndex

WALK

.1.3.6.1.2.1.25.2.3.1.2

存儲設備類型

hrStorageType[OID]

WALK

.1.3.6.1.2.1.25.2.3.1.3

存儲設備描述

hrStorageDescr

WALK

.1.3.6.1.2.1.25.2.3.1.4

簇的大小

hrStorageAllocationUnits

WALK

.1.3.6.1.2.1.25.2.3.1.5

簇的的數目

hrStorageSize

WALK

.1.3.6.1.2.1.25.2.3.1.6

使用多少,跟總容量相除就是占用率

hrStorageUsed

WALK

.1.3.6.1.4.1.2021.4.3.0

Total Swap Size(虛擬內存)

memTotalSwap

GET

.1.3.6.1.4.1.2021.4.4.0

Available Swap Space

memAvailSwap

GET

.1.3.6.1.4.1.2021.4.5.0

Total RAM in machine

memTotalReal

GET

.1.3.6.1.4.1.2021.4.6.0

Total RAM used

memAvailReal

GET

.1.3.6.1.4.1.2021.4.11.0

Total RAM Free

memTotalFree

GET

.1.3.6.1.4.1.2021.4.13.0

Total RAM Shared

memShared

GET

.1.3.6.1.4.1.2021.4.14.0

Total RAM Buffered

memBuffer

GET

.1.3.6.1.4.1.2021.4.15.0

Total Cached Memory

memCached

GET

.1.3.6.1.4.1.2021.9.1.2

Path where the disk is mounted

dskPath

WALK

.1.3.6.1.4.1.2021.9.1.3

Path of the device for the partition

dskDevice

WALK

.1.3.6.1.4.1.2021.9.1.6

Total size of the disk/partion (kBytes)

dskTotal

WALK

.1.3.6.1.4.1.2021.9.1.7

Available space on the disk

dskAvail

WALK

.1.3.6.1.4.1.2021.9.1.8

Used space on the disk

dskUsed

WALK

.1.3.6.1.4.1.2021.9.1.9

Percentage of space used on disk

dskPercent

WALK

.1.3.6.1.4.1.2021.9.1.10

Percentage of inodes used on disk

dskPercentNode

WALK

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

zabbix-3.2.6之snmp監控(無需安裝agent也能監控)