Можда ћете желети да користите 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] .Ова опција користи изворни SNMP масовни захтеви (GetBulkRequest-PDUs) асинхроно. Подешавања временског ограничења за ову ставку могу да се подесе у конфигурација ставке. Можете да користите ово као главну ставку, са зависним ставкама које извлаче податке из главне ставке користећи претходну обраду. Могуће је навести више 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 интерфејсе; максимални број понављања за групне захтеве је конфигурисан на нивоу интерфејса. Ова ставка враћа излаз услужног програма снмпвалк са параметрима -Oe -Ot -On. Ову ставку можете користити као главну ставку у SNMP откривање.<бр><бр>get[OID] - преузми сингле вредност асинхроно. На пример: get[1.3.6.1 .2.1.31.1.1.1.6.3] Подешавања временског ограничења за ову ставку могу се подесити у конфигурација ставке. ** OID** - (застарели) унесите један текстуални или нумерички OID да бисте синхроно преузели једну вредност, опционо у комбинацији са друге вредности.<бр>На пример: 1.3.6.1.2.1.31.1.1.1.6.3 .За ову опцију, временско ограничење за проверу ставке биће једнака вредности подешеној у [конфигурационој датотеци] (/manual/appendix/config/zabbix_server#timeout). Препоручује се** да користите walk[OID] и get[OID] ставке за боље перформансе. Све walk[OID] и get[OID] ставке се извршавају асинхроно - није потребно да се добије одговор на један захтев пре него што се започну друге провере. DNS решавање је такође асинхроно.Максимална истовременост асинхроних провера је 1000 (дефинисано од стране 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
је подешено за целу сесију. Ако се истекне временско ограничење онда ће се поновити покушај једном, временско ограничење ће бити ресетовано и последњи захтев ће бити поново послат омогућавајући наставак сесије од последњег захтева ако се један пакет изгуби или стигне прекасно.
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 шетње.