Zabbix 2.2.5+RHEL4U5+SNMP

Pošto (zbog stare verzije zabbix agenta) nemam direktno kroz Template OS Linux podatke o zauzetosti particija, to ću da dobavim korišćenjem SNMP protokola.

Malo definicija :
OID – Object Identifier, brojna definicija veličine npr .1.3.6.1.2.1.2.2.1.16.2
ASN – Apstract Syntax Notation, umesto brojeva su reči npr .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.2
MIB – Management Information Base, kratak opis date veličine npr IF-MIB::ifInOctets.2, postoji samo ako je MIB za datu veličinu instaliran

Kod Zabbix-a se mogu koristiti sve tri notacije.
Takođe je dobra ideja imati MIB Browser na mašini (CentOS 6 ima RPM paket mbrowse, posle instalacije on se poziva iz CL-a komandom # mbrowse).

1. Podesiti SNMP na RHEL4U5 host mašini
Konfiguracija je u /etc/snmp/snmpd.conf fajlu :
############################
com2sec local localhost tajna
com2sec zabbix 10.10.10.142 tajna
#############################
## Access.group.name sec.model sec.name
## ================= ========= ========
group grupa1 v1 local
group zabbix v1 zabbix
group zabbix v2c zabbix
#############################
## MIB.view.name incl/excl MIB.subtree mask
## ============== ========= =========== ====
view all-mibs included .1 80
view hdd included .1.3.6.1.2.1.25.2.3 ff
############################
## MIB
## group.name context sec.model sec.level prefix read write notif
## ========== ======= ========= ========= ====== ==== ===== =====
access grupa1 “” v1 noauth exact all-mibs none none
access zabbix “” v1 noauth exact hdd none none
access zabbix “” v2c noauth exact hdd none none
Ovime smo SNMP upite ograničili na samo jedan server (Zabbix server 10.10.10.142), i na samo podatke vezane za HDD. v1 i v2c su verzije SNMP protokola.
Testiranje u lokalu :
# snmpwalk -v 1 -c tajna 127.0.0.1|more
SNMPv2-MIB::sysDescr.0 = STRING: Linux deponija.moj.domen 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (221506) 0:36:55.06
…..
Testiranje za pojedinačnu stavku :
# snmpget -v 1 -c tajna -mALL 127.0.0.1 hrStorageUsed.16
HOST-RESOURCES-MIB::hrStorageUsed.16 = INTEGER: 122817266

2. Podesiti SNMP na Zabbix serveru
Dovoljno je samo podici SNMP servis, to je sve.
Testiranje sa Zabbix servera (10.10.10.105 je host mašina koju proveravamo) :
# snmpwalk -v 1 -c tajna 10.10.10.105|more
Ili
# snmpwalk -v 2c -c tajna 10.10.10.105|more
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 2074908 KBytes
HOST-RESOURCES-MIB::hrStorageIndex.1 = INTEGER: 1
HOST-RESOURCES-MIB::hrStorageIndex.2 = INTEGER: 2
…..

3. Podesiti pod Zabbix-om
Pod Configure/Hosts/ima-hosta dodati SNMP interfejs i naravno SNMP lozinku.
Postoji nekoliko Template-ova vezanih za SNMP i Linux :
“Template SNMP Linux” – javlja gomilu grešaka
“Template SNMP discs” – dodaje se bez problema, ja sam ovaj iskoristila
“Template SNMP Generic” – kosi se sa nekim već postojećim stavkama, pa se ne može dodati.
“Template SNMP Interfaces” – odnosi se na interfejse hosta, sudara se sa “Template SNMP Generic”, dakle ne mogu oba istovremeno.

Kada se MIB-ovi vezane za diskove izlistaju (hrStorage), vrednosti u hrStorageSize/Used/Free su dati u “allocation units” čija se vrednost vidi pod stavkama hrStorageAllocationUnits (nije isto za svaku particiju). Pod stavkom hrStorageDescr se može videti tačno koja je koja particija.
Da bi posmatrali koliko je iskorišćeno prostora u /home particiji kreira se novi “Item”, sa karakteristikama :
Name – Iskoriscenje HOME particije
Type – SNMPv2 agent
Key – hrStorageUsed.7
Host interface – 10.10.10.105:161
SNMP OID – hrStorageUsed.7
SNMP community – tajna
Port – ostaviti prazno
Type of information – Numeric (unsigned) ili (float)
Data type – Decimal
Units – MB
Use custom multiplier – 0.0039

4.Podesiti procenat zauzetosti za neku particiju
Pošto po SNMP protokolu za neku particiju dobijamo sledeće veličine :
HOST-RESOURCES-MIB::hrStorageDescr.9 = STRING: /novidis
HOST-RESOURCES-MIB::hrStorageAllocationUnits.9 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageSize.9 = INTEGER: 240350499
HOST-RESOURCES-MIB::hrStorageUsed.9 = INTEGER: 23831233
Treba formirati dva nova “Item-a”, sa OID-ima hrStorageSize.9 i hrStorageUsed.9, pa napraviti treći “Item” koji bi delio ova dva i množio rezultat sa 100 da bi se dobili procenti. Taj treći “Item” treba da bude ovakav :
Name – novidisk.velicina
Type – SNMPv1 agent (obavezno, ako je sa druge strane RHEL4U5!!!!)
Key – hrStorageSize.9
Host interface
SNMP OID – hrStorageSize.9
SNMP community – tajna.sifra
Port – ništa ne popuniti
Type of information – Numeric (unsigned)
Units – AU
Use custom multiplier – ništa ne popuniti
Update interval (in sec) – 90
…..
Evo kako izgleda “Item” koji daje procentualno zauzeće particije :
Name – novidisk.procenat.zauzetosti
Type – calculated
Key – novidisk.procenat.zauzetosti
Formula – 100*last(hrStorageUsed.9)/last(hrStorageSize.9)
Type of information – Numeric (unsigned)
Units – %
Use custom multiplier – ništa ne popuniti
Update interval (in sec) – 90
(bitno je da sve stavke iz formule imaju isti update period)

Paziti!!!! Ako je novija verzija Zabbix servera, on može povući sve stavke vezane za vrednosti diskova, i onda se pravi samo stavka vezana za procenat iskorišćenja određene particije.
Evo koje stavke u vezi sa jednom od particija, u tom slučaju, Zabbix server može da povuče :
hrStorageUsed[/home2]
hrStorageUsedInBytes[/home2]
hrStorageSize[/home2]
hrStorageSizeInBytes[/home2]
hrStorageDescr[/home2]

Ako hoćemo procenat iskorišćenja za neku particiju, delimo hrStorageUsed item sa veličinom diska.
Ako vaša verzija Zabbix servera ne povlači sve OID iteme vezane za diskove, paziti jer “Custom multiplier” prihvata samo 4 decimale, dakle ako je veliki diks u pitanju, moraće se napraviti još jedan Item koji bi sadržao veličinu diska, i još jedan Item (koji je onda Type “Calculated”) koji bi ove dve vrednosti delio i onda množio sa 100, da bi se dobili % (videti link).

U stvari je najjednostavnije samo povući OID-ove koji nam trebaju (totalna veličina diska i parče diska koje je iskorišćeno) i onda od njih, izračunavanjem, dobiti procenat iskorišćenosti diska.
Evo kako izgleda izračunavanje za procenat zauzetosti diska :
100*last(“hrStorageUsed.7”)/last(“hrStorageSize.7”)
Gde su hrStorageUsed.7 i hrStorageSize.7 keys za Items (uvek se koristi ono što je navedeno u polju “Key”!!!!).

Najjednostavnije je da se NE dodaje nikakav Template za SNMP, nego da se samo dodaju Itmes za hrStorageUsed i hrStorageSize i napravi Calculated Item za procenat zauzetosti…..

Odličan link za MIB brojeve.