Selles artiklis rÀÀgime veidi IBM Storwize ladustussĂŒsteemide jĂ€lgimisest ja muudest ladustussĂŒsteemidest, mis toetavad CIM/WBEM protokolle. Sellise jĂ€lgimise vajadus on selge, peame seda aksioomiks. JĂ€lgimissĂŒsteemina kasutame Zabbixit.
Zabbixi viimaselt versioonilt on ettevĂ”te hakanud mallidele palju rohkem tĂ€helepanu pöörama - on tekkinud malli, mis vĂ”imaldab jĂ€lgida teenuseid, andmebaase, Servers hardware (IMM/iBMC) lĂ€bi IPMI. LadustussĂŒsteemide jĂ€lgimine jÀÀb siiski pakettidest vĂ€lja, seetĂ”ttu on vajalik kohandatud mallide kasutamine Zabbixis ladustussĂŒsteemi komponentide oleku ja jĂ”udluse jĂ€lgimiseks. Ăks selline mall on teile tutvumiseks.
Alustame mÔningate teooriatega.
IBM Storwize ladustussĂŒsteemi oleku ja statistika juurde pÀÀsemiseks vĂ”ib kasutada:
- CIM/WBEM protokolle;
- (IBM Storwize puhul toetatakse alates tarkvara versioonist 8.1.3);
- SNMP traps (piiratud trapide komplekt, puudub statistika);
- SSH kaudu ĂŒhendamine jĂ€rgmise kaugsalvestuse .
Huvi korral saavad huvilised tutvuda erinevate jÀlgimismeetoditega vastavate tootja dokumentatsioonide lÔikudes ning dokumendis .
Kasutame CIM/WBEM protokolle, mis vĂ”imaldavad saada ladustussĂŒsteemide tööparameetreid ilma oluliste sĂŒsteemimuudatusteta erinevate ladustussĂŒsteemide jaoks. CIM/WBEM protokollid toimivad vastavalt . Storage Management Initiative â Specification pĂ”hineb avatud standarditel ja , mida mÀÀratleb .
WBEM töötab HTTP protokoli peal. WBEM'i kaudu saab töötada mitte ainult ladustussĂŒsteemide, vaid ka HBA, lĂŒlitite ja teipraamatute sĂŒsteemidega.
Vastavalt ja , SMI tÔhususe pÔhikomponent on WBEM-server, mis töötleb CIM-XML pÀringuid WBEM-kliendilt (meie juhul jÀlgimisskriptid):

CIM on objektorienteeritud mudel, mis pÔhineb Unified Modeling Language (UML) pÔhjal.
Haldate elemente, mis on mÀÀratletud kui CIM-klassid, millel on omadused ja meetodid hallatava teabe ja funktsioonide esitamiseks.
Vastavalt , et saladuslaudadele pÀÀsemiseks CIMi/WBEMi kaudu saab kasutada PyWBEMi â avatud koodi teeki, mis on kirjutatud Pythonis ja tagab arendajatele ja sĂŒsteemiadministraatoritele CIMi protokolli rakendamise CIM-objektidele juurdepÀÀsuks ja erinevate toimingute sooritamiseks WBEM-serveriga, mis töötab vastavalt SMI-S vĂ”i muude CIMi spetsifikatsioonide jĂ€rgi.
WBEM-serveriga ĂŒhenduse loomiseks kasutame klassi konstruktorit :
conn = pywbem.WBEMConnection(server_uri, (self.login, self.password),
namespace, no_verification=True)
See on virtuaalne ĂŒhendus, kuna CIM-XML/WBEM töötab HTTP peal, tegelik ĂŒhendus toimub WBEMConnection klassi meetodite kutsumise hetkel. Vastavalt IBM System Storage SAN Volume Controller ja Storwize V7000 parimate tavade ja jĂ”udluse suunistele (nĂ€ide C-8, leht 412) kasutame IBM Storwize SCSI nimiruumi âroot/ibmâ.
Pange tĂ€hele, et statistikakogumiseks CIM-XML/WBEM protokolli kaudu peab kasutaja olema lisatud vastavasse turvagruppi. Vastasel juhul, kui WBEM-pĂ€ringuid tehakse, on objekti atribuudi vĂ€ljund tĂŒhi..
Statistikale juurdepÀÀsuks peab kasutaja, kes kutsub ĂŒles konstruktorit , omama vĂ€hemalt RestrictedAdmin Ă”igusi (see on saadaval kooditasemele > 7.8.0) vĂ”i Administrator Ă”igusi (turbe kaalutlustel ei soovita).
Ăhendame CSD-ga SSH kaudu ja vaatame grupinumbreid:
> lsusergrp
id name role remote
0 SecurityAdmin SecurityAdmin no
1 Administrator Administrator no
2 CopyOperator CopyOperator no
3 Service Service no
4 Monitor Monitor no
5 RestrictedAdmin RestrictedAdmin no
Lisame kasutaja zabbix vajaliku rĂŒhma:
> chuser -usergrp 5 zabbix
Lisaks sellele peab IBM System Storage SAN Volume Controller ja Storwize V7000 parimate tavade ja jÔudluse suuniste jÀrgi (leht 415) olema statistikakogumine aktiveeritud CSD-l. Statistikakogumiseks iga minuti jÀrel:
> startstats -interval 1
Kontrollime:
> lssystem | grep statistics
statistics_status on
statistics_frequency 1
Kogu olemasolevate CSD klasside saamiseks tuleb kasutada meetodit EnumerateClassNames().
NĂ€ide:
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
print(classname)
CSD-de parameetrite vÀÀrtuste saamiseks on mÔeldud meetod WBEMConnection klass, mis tagastab eksemplaride loendi .
NĂ€ide:
instances = conn.EnumerateInstances(classname,
namespace=nd_parameters['name_space'])
for instance in instances:
for prop_name, prop_value in instance.items():
print(' %s: %r' % (prop_name, prop_value))
MĂ”nede klasside jaoks, mis sisaldavad suurt hulka eksemplare, nagu IBMTSSVC_StorageVolume, vĂ”ib kĂ”igi eksemplaride tĂ€ielik pĂ€ring olla ĂŒsna aeglane. See vĂ”ib genereerida suuri andmemahtusid, mis tuleb ette valmistada, edastada vĂ”rgus ja töödelda skripti abil. Sellise juhtumi jaoks on olemas meetod , mis vĂ”imaldab saada ainult meid huvitavad klassi eksemplari omadused. See meetod eeldab pĂ€ringu keele kasutamist, mis on sarnane SQL-ile â kas CIM Query Language (DMTF:CQL) vĂ”i WBEM Query Language (WQL), et kĂŒsida CIM-objekte:
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
Kuna mÀÀrata, millised klassid on vajalikud Salvestusseadmete objektide parameetrite saamiseks, loeme dokumentatsiooni, nÀiteks .
Seega fĂŒĂŒsiliste ketaste (Disk Drives) parameetrite saamiseks kĂŒsime klassilt IBMTSSVC_DiskDrive, mahtude (Volumes) parameetrite saamiseks klassilt IBMTSSVC_StorageVolume, massiivide parameetrite saamiseks klassilt IBMTSSVC_Array, MDisks parameetrite saamiseks klassilt IBMTSSVC_BackendVolume jne.
Toimealaste nĂ€itajate kohta saad lugeda (konkreetselt â ) ja IBM System Storage SAN Volume Controller ja Storwize V7000 parimad praktikad ja jĂ”udluse juhised (NĂ€ide C-11, lk 415).
Volume'ide jaoks Salvestusseadmest saadud statistikate saamiseks tuleb ClassName parameetri vÀÀrtus mÀÀrata IBMTSSVC_StorageVolumeStatistics. Klassist IBMTSSVC_StorageVolumeStatistics vajalikud omaduste statistika kogumiseks vÔib vaadata .
Samuti saab jĂ”udluse analĂŒĂŒsimiseks kasutada klasse IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.
Andmete salvestamiseks jĂ€lgimisse sĂŒsteemi kasutame mehhanismi , mis on rakendatud pythonis moodulis . Salvestusseadme klasside ja nende omaduste struktuur paigutatakse sĂ”nastikku JSON formaadis.
Laadime Zabbixi malli serverisse, veendum, et jĂ€lgimisse serverist on pÀÀs STH-le protokolli WEB (TCP/5989) kaudu, paigaldame konfigureerimisfailid, avastamise ja jĂ€lgimise skriptid jĂ€lgimisse serverisse. JĂ€tkame skriptide kĂ€ivitamise lisamist ajastusse. LĂ”puks: avastame STH objekte (massivid, fĂŒĂŒsilised ja virtuaalsed kettad, enclosureid ja palju muud), edastame need Zabbixi avastustele, loeme nende parameetrite staatust, loeme jĂ”udlusstatistikat (perfomance counters) ja edastame kĂ”ik sageli vastavatesse Zabbixi objektidesse meie mallis.
Zabbixi mall, python-skriptid, STH klasside struktuur ja nende omadused, ning konfigureerimisfailide nÀidised on .
Allikas: habr.com
