Можда ћете желети да користите SNMP надгледање на уређајима као што су штампачи, мрежни прекидачи, рутери или UPS који обично имају SNMP омогућен и на којима би било непрактично покушавати да поставите комплетне оперативне системе и Zabbix агенте.
Да бисте могли да преузмете податке које пружају SNMP агенти на овим уређајима, Zabbix сервер мора бити почетно конфигурисан са подршком SNMP-а тако што ћете навести ознаку --with-net-snmp
. Препоручује се да инсталирате MIB датотеке да бисте осигурали да се вредности ставки приказују у исправним формат. Без MIB датотека може доћи до проблема са форматирањем, као што је приказивање вредности у HEX уместо UTF-8 или обрнуто.
SNMP провере се изводе само преко UDP протокола.
Zabbix сервер и прокси демонске линије дневника сличне су следећим ако добију нетачан SNMP одговор:
SNMP одговор од домаћина "gateway" не садржи сва тражена повезивања променљивих
Док не покривају све проблематичним случајевима, они су корисни за идентификацију појединачних SNMP уређаја за које би комбиновани захтеви требало да буду онемогућени.
Zabbix сервер/прокси ће увек поново покушајте бар једном након неуспешног покушаја упита: или преко механизма поновног покушаја SNMP библиотеке или преко интерног комбинована обрада механизма.
Ако надгледате SNMPv3 уређаје, уверите се да је msgAuthoritativeEngineID (познат и као snmpEngineID или "ID мотора") никада не деле два уређаја. Према RFC2571 (одељак 3.1.1.1) мора да буде јединствен за сваки уређај.
RFC3414 захтева да SNMPv3 уређаји истрају на њиховом покретању мотора . Неки уређаји то не раде, што доводи до тога да се њихове SNMP поруке одбацују као застареле након поновног покретања. У таквој ситуацији, SNMP кеш треба ручно да се обрише на серверу/проксију (користећи -R snmp_cache_reload) или сервер/прокси треба поново покренути.
Да бисте започели надгледање уређаја преко SNMP-а, потребно је извршити следеће кораке:
Сазнајте SNMP стринг (или OID) ставке коју желите да надгледате.
Да бисте добили листу SNMP стрингова, користите команду ** snmpwalk** (део net-snmp софтвер који је требало да инсталирате као део Zabbix инсталације) или еквивалентан алат:
snmpwalk -v 2c -c public <host IP> .
Као '2c' овде означава SNMP верзију, можете га заменити са '1', да бисте означили SNMP верзију 1 на уређају.
Ово би требало да вам пружи листу SNMP стрингова и њихову последњу вредност. Ако није, онда је могуће да се SNMP 'заједница' разликује од стандардне 'јавне' у ком случају ћете морати да сазнате шта је то.
Затим можете да прођете кроз листу док не пронађете стринг који желите да надгледате, нпр. ако желите да надгледате бајтове који долазе на ваш прекидач на порту 3, користили бисте стринг IF-MIB::ifHCInOctets.3
из овог реда:
IF-MIB::ifHCInOctets.3 = Counter64: 3409739121
Сада можете да користите ** snmpget** команда да бисте сазнали нумерички OID за 'IF-MIB::ifHCInOctets.3':
snmpget -v 2c -c public -On <host IP> IF-MIB::ifHCInOctets.3
Имајте на уму да је последњи број у низу број порта који желите да надгледате. Такође погледајте: Dynamicindexes.
Ово би требало да вам да нешто попут следећег:
.1.3.6.1.2.1.31.1.1.1.6.3 = Counter64: 3472126941
Поново, последњи број у OID-у је број порта.
Неки од најчешће коришћених SNMP OID-ови су аутоматски преведени у нумеричку презентацију од стране Zabbix-а.
У последњем примеру изнад тип вредности је "Counter64", што интерно одговара типу ASN_COUNTER64. Комплетна листа подржаних типова је ASN_COUNTER, ASN_COUNTER64, ASN_UINTEGER, ASN_UNSIGNED64,ASN_INTEGER, ASN_INTEGER64, ASN_FLOAT, ASN_DOUBLE, ASN_TIMETICKS,ASN_GAUGE, ASN_IPADDRESS, ASN_OCTET_STR and ASN_OBJECT_ID. Ови типови отприлике одговарају "Counter32","Counter64", "UInteger32", "INTEGER", "Float", "Double", "Timeticks","Gauge32", "IpAddress", "OCTET STRING", "OBJECT IDENTIFIER" у ** snmpget** излазу, али може бити приказан и као "STRING", "Hex-STRING","OID" и други, у зависности од присуства екрана наговештај.
Креирајте домаћина који одговара уређају.
Додајте SNMP интерфејс за домаћина:
discovery[]
и walk[]
у SNMPv2 и v3. Имајте на уму да постављање ове вредности на превисоку може да изазове временско ограничење за проверу SNMP агента.SNMPv3 parameter | Description |
---|---|
Context name | Унесите контекст име за идентификацију ставке на SNMP подмрежи. Кориснички макрои се решавају у овом пољу. |
Security name | Унесите безбедносно име. Кориснички макрои се решавају у овом пољу. |
Security level | Изаберите безбедност ниво: noAuthNoPriv - не користи се аутентификација нити протоколи приватности AuthNoPriv - користи се протокол за аутентификацију, протокол приватности није AuthPriv - користе се и протоколи за аутентификацију и приватност |
Authentication protocol | Изаберите протокол за потврду идентитета - * MD5, SHA1; са net-snmp 5.8 и новијим SHA224, SHA256, SHA384* или * SHA512*. |
Authentication passphrase | Унесите приступну фразу за аутентификацију. Кориснички макрои се решавају у овом пољу. |
Privacy protocol | Изаберите протокол приватности - DES, AES128, AES192, AES256, AES192C (Cisco) or AES256C (Cisco). Погледајте напомене о подршци протокола приватности |
* Privacy passphrase * | Унесите приступну фразу за приватност. Овим се решавају кориснички макрои поље. |
У случају погрешних SNMPv3 акредитива (безбедносно име, протокол за аутентификацију/лозинку, протокол приватности):
Промене у Протоколу за аутентификацију,Приступној фрази за аутентификацију, Протоколу приватности или Приступној фрази за приватност, направљене без промене Сигурносног имена, ступиће на снагу тек након што се кеш на серверу/проксију ручно обрише (користећи -Rsnmp_cache_reload) или сервер/прокси се поново покреће. У случајевима када се промени и Сигурносно име, сви параметри ће бити одмах ажурирани.
Можете користити један од понуђених SNMP шаблона који ће аутоматски додати скуп ставки. Пре употребе шаблона, проверите да ли је компатибилан са домаћином.
Кликните на Додај да бисте сачували домаћина.
У зависности од вашег оперативног система и net-snmp конфигурације, неки протоколи приватности можда неће бити доступни:
Да бисте проверили да ли нет-снмп библиотека подржава AES192 +, користите једну од следећих опција:
нет-снмп-цонфиг
:
net-snmp-config --configure-options
Ако излаз садржи `--enable-blumenthal-aes``, подржан је AES192 +.
Имајте на уму да је net-snmp-config део развојног пакета за SNMP (libsnmp-dev за Debian/Ubuntu, net-snmp-devel за CentOS/RHEL/OL/SUSE) и можда неће бити инсталиран подразумевано.
snmpget
:
snmpget -v 3 -x AES-256
Ако излаз садржи Неважећи протокол приватности наведен после ознаке -3x: AES-256
, AES192+ није подржан. Ако излаз садржи Није наведено име домаћина
, AES192 + није подржан.
Ако ваша net-snmp библиотека не подржава AES192 и више протоколе, поново компајлирајте net-snmp са опцијом --enable-blumenthal-aes
, а затим поново компајлирајте Zabbix сервер наводећи опцију --with-net-snmp=/home/user/yourcustomnetsnmp/bin/net-snmp-config
.
Креирајте ставку за надгледање.
Дакле, сада се вратите на Zabbix и кликните на Ставке за SNMP домаћина који сте креирали раније. У зависности од тога да ли сте користили шаблон или не приликом креирања свог домаћина, имаћете или листу SNMP ставки повезаних са вашим домаћином или само празну листу. Радићемо на претпоставци да ћете сами креирати ставку користећи информације које сте управо прикупили користећи snmpwalk и snmpget, па кликните на Креирај ставку.
Попуните тражене параметре у новом обрасцу ставке:
Parameter | Description |
---|---|
Name | Унесите назив ставке. |
Type | Изаберите SNMP агент овде. |
Key | Унесите кључ као нешто значајно. |
Host interface | Обавезно изаберите SNMP интерфејс, нпр. од вашег свича/рутера. |
SNMP OID | Користите један од подржаних формата да унесете OID вредност(и): walk[OID1,OID2,...] - преузимање подстабла вредности. На пример: walk[1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3] .Ова опција користи изворнe SNMP масовнe захтевe (GetBulkRequest-PDUs) асинхроно. Подешавања временског ограничења за ову ставку могу да се подесе у конфигурацији ставке. Размислите о подешавању ниске вредности временског ограничења како бисте избегли дуга кашњења ако је уређај недоступан, јер ће се извршити до 5 поновних покушаја (од Zabbix-а 7.0.14) ако претходни покушаји истекну или не успеју (нпр. временски ограничење од 3 секунде може резултирати временом чекања од 15 секунди). Можете ово користити као главну ставку, са зависним ставкама које извлаче податке из главне ставкe користећи предобраду. Могуће је навести више OID-ова у једној snmp шетњи, као што је walk[OID1,OID2,...] за асинхрону обраду једног OID-а истовремено.Ако групни захтев не врати резултате, онда се покушава преузимање једног записа без групног захтева. MIB имена су подржана као параметри; стога ће walk[1.3.6.1.2.1.2.2.1.2] и walk[ifDescr] вратити исти излаз.Ако је наведено неколико OID-ова/MIB-ова, тј. walk[ifDescr,ifType,ifPhysAddress] , онда је излаз спојена листа.GetBulk захтеви се користе са SNMPv2 и v3 интерфејсе и GetNext за SNMPv1 интерфејсе; максимални број понављања за групне захтеве је конфигурисан на нивоу интерфејса. Параметар max repetitions утиче на групне захтеве тако што одређује максималан број OID-ова враћених у једном групном одговору. Већа вредност резултира већим групним одговорима, смањујући број потребних преноса. Међутим, не могу сви уређаји да подржавају веома високе вредности, што може проузроковати проблеме. Ова ставка враћа излаз услужног програма snmpwalk са параметрима -Oe -Ot -On. Ову ставку можете користити као главну ставку у SNMP откривању. get[OID] - асинхроно преузима једну вредност. На пример: get[1.3.6.1.2.1.31.1.1.1.6.3] Подешавања временског ограничења за ову ставку могу се подесити у обрасцу конфигурација ставке. Размотрите подешавање мале вредности временског ограничења како бисте избегли дуга кашњења ако је уређај недоступан, јер ће се извршити до 5 поновних покушаја (од Zabbix-а 7.0.14) ако претходни покушаји истекну или не успеју (нпр. временски ограничење од 3 секунде може резултирати временом чекања од 15 секунди). OID - (застарело) унесите један текстуални или нумерички OID да бисте синхроно преузели једну вредност, опционо у комбинацији са другим вредностима. На пример: 1.3.6.1.2.1.31.1.1.1.6.3 .За ову опцију, временски ограничење провере ставке биће једнако вредности подешеној у датотеци сервера конфигурациона датотека. Препоручује се да користите walk[OID] и get[OID] ставке за боље перформансе. Све walk[OID] и get[OID] ставке се извршавају асинхроно - није потребно да се добије одговор на један захтев пре него што се започну друге провере. DNS решавање је такође асинхроно.Максимална истовременост асинхроних провера је 1000 (дефинисано од стране [MaxConcurrentChecksPerPoller] |
(/manual/appendix/config/zabbix_server#maxconcurrentchecksperpoller)). Број асинхроних SNMP полера је дефинисан параметром StartSNMPPollers. Имајте на уму да за статистику мрежног саобраћаја, коју враћа било који од метода, Промена у секунди корак мора бити додат на картици Предобрада; у супротном ћете добити кумулативну вредност са SNMP уређаја уместо последње промене. |
Сва обавезна поља за унос су означена црвеном звездицом.
Сада сачувајте ставку и идите на Надгледање → Најновији подаци за ваше SNMP податке.
Општи пример:
Parameter | Description |
---|---|
** OID** | 1.2.3.45.6.7.8.0 (или .1.2.3.45.6.7.8.0) |
** Key** | <Јединствени стринг који ће се користити као референца на покретаче><бр>На пример, "my_param". |
Имајте на уму да се OID може дати у нумеричком или у облику стринга. Међутим, у неким случајевима, OID низа мора бити конвертован у нумеричку репрезентацију. Услужни програм снмпгет се може користити за ову сврху:
snmpget -On localhost public enterprises.ucdavis.memory.memTotalSwap.0
Праћење радног времена:
Parameter | Description |
---|---|
OID | MIB::sysUpTime.0 |
Key | router.uptime |
Value type | Float |
Units | uptime |
Preprocessing step: Custom multiplier | 0.01 |
Ставка walk[OID1,OID2,...] омогућава коришћење изворне SNMP функционалности за групне захтеве (GetBulkRequest-PDUs), доступне у SNMP верзијама 2/3.
GetBulk захтев у SNMP-у извршава више GetNext захтева и враћа резултат у једном одговору. Ово се може користити за редовне SNMP ставке, као и за SNMP откривање како би се минимизовали мрежни прекиди.
SNMP walk[OID1,OID2,...] ставка се може користити као главна ставка која прикупља податке у једном захтеву са зависне ставке које рашчлањују одговор према потреби користећи предобраду.
Имајте на уму да коришћење изворних SNMP групних захтева није повезано са опцијом комбиновања SNMP захтева, што је Zabbix-ов сопствени начин комбиновања више SNMP захтева (погледајте следећи одељак).
Поновни покушај ће се десити за SNMP групне ставке како би се избегао неуспех ако се један од пакета изгуби. Временско ограничење за SNMP ставке са get
и walk
(подешено у обрасцу конфигурација ставке) је подешено за целу сесију. Ако се достигне временски ограничење, доћи ће до поновног покушаја, временски ограничење ће се ресетовати, а последњи захтев ће бити поново послат, омогућавајући наставак сесије од последњег захтева ако се један пакет изгуби или стигне прекасно. Размислите о подешавању ниске вредности временског ограничења како бисте избегли дуга кашњења ако уређај није доступан, јер ће се извршити до 5 поновних покушаја (од Zabbix-а 7.0.14) ако ранији истекну или не успеју (нпр. временски ограничење од 3 секунде може резултирати временом чекања од 15 секунди).
Zabbix сервер и прокси могу да питају SNMP уређаје за више вредности у једном захтеву. Ово утиче на неколико типова SNMP ставки:
Све SNMP ставке на једном интерфејсу са идентичним параметри су планирани да буду упитани у исто време. Прве две врсте ставки узимају анкетари у групама од највише 128 ставки, док се правила откривања ниског нивоа обрађују појединачно, као и раније.
На нижем нивоу, постоје две врсте операција које се изводе за тражење вредности: добијање више наведених објеката и ходање по ОИД стаблу.
За "добиjање", GetRequest-PDU се користи са највише 128 повезивања променљивих. За "шетање", GetNextRequest-PDU се користи за SNMPv1, а GetBulkRequest са пољем "max-repetitions" од највише 128 се користи за SNMPv2 и SNMPv3.
Дакле, предности комбиноване обраде за сваки тип SNMP ставке су наведене у наставку:
Међутим, постоји технички проблем који нису сви уређаји могу да врате 128 вредности по захтеву. Неки увек враћају исправан одговор, али други или одговарају грешком "tooBig(1)" или уопште не одговарају када потенцијални одговор пређе одређену границу.
Да би се пронашао оптималан број објеката за упит за дати уређај, Zabbix користи следећу стратегију. Почиње опрезно са упитом 1 вредности у захтеву. Ако је то успешно, поставља упит за 2 вредности у захтеву. Ако је то поново успешно, испитује 3 вредности у захтеву и наставља на сличан начин множењем броја упитаних објеката са 1,5, што резултира следећим низом величина захтева: 1,2, 3, 4, 6, 9, 13, 19, 28 , 42, 63, 94, 128.
Међутим, када уређај одбије да да одговарајући одговор (за на пример, за 42 променљиве), Zabbix ради две ствари.
Прво, за тренутну групу ставки преполови број објеката у једном захтеву и поставља упите за 21 променљиву. Ако је уређај жив, онда би упит требало да функционише у великој већини случајева, јер је познато да 28 променљивих ради, а 21 је знатно мање од тога. Међутим, ако то и даље не успе, Zabbix се враћа на упите вредности једну по једну. Ако и даље не успе у овом тренутку, уређај дефинитивно не реагује и величина захтева није проблем.
Друга ствар коју Zabbix ради за следеће групе ставки је да почиње са последњим успешним бројем променљивих (28 у нашем примеру) и наставља да повећава величину захтева за 1 док се не достигне граница. На пример, под претпоставком да је највећа величина одговора 32 варијабле, наредни захтеви ће бити величине 29, 30, 31, 32 и 33. Последњи захтев неће успети и Zabbix више никада неће издати захтев величине 33. Од тог тренутка, Zabbix ће испитивати највише 32 променљиве за овај уређај.
Ако велики упити не успеју са овим бројем варијабли, то може значити једну од две ствари. Не могу се знати тачни критеријуми које уређај користи за ограничавање величине одговора, али ми покушавамо да то приближимо помоћу броја варијабли. Дакле, прва могућност је да је овај број варијабли око стварне границе величине одговора уређаја у општем случају: понекад је одговор мањи од границе, понекад већи од тога. Друга могућност је да се UDP пакет у оба смера једноставно изгубио. Из ових разлога, ако Zabbix добије неуспешан упит, он смањује максималан број променљивих да би покушао да уђе дубље у удобан опсег уређаја, али само до два пута.
У горњем примеру, ако се деси да упит са 32 променљиве не успе, Zabbix ће смањити број на 31. Ако се и то деси, Zabbix ће смањити број на 30. Међутим, Zabbix неће смањити број испод 30, јер ће претпоставити да су даљи кварови последица губитка UDP пакета, а не ограничења уређаја.
Међутим, ако уређај не може да обради комбиноване захтеве исправно из других разлога и горе описана хеуристика не функционише, постоји поставка "Користи комбиноване захтеве" за сваки интерфејс која омогућава да се онемогуће комбиновани захтеви за тај уређај.
Поред тога, ако интерфејс често постане недоступан, можда ће бити потребно повећати Параметар UnavailableDelay
у Zabbix сервер или Zabbix прокси конфигурационе датотеке за смањење учесталости захтева. Ставке могу постати неподржане ако се примају делимични подаци током откривања или OID шетње.