IBM Storwize'i salvestusruumi jälgimine Zabbixiga

Selles artiklis räägime veidi IBM Storwize'i salvestussüsteemide ja muude CIM/WBEM-protokolle toetavate salvestussüsteemide jälgimisest. Sellise seire vajadus on võrrandist välja jäetud, me käsitleme seda aksioomina. Seiresüsteemina kasutame Zabbixit.

Zabbixi viimastes versioonides hakkas ettevõte palju rohkem tähelepanu pöörama mallidele - IPMI kaudu hakkasid ilmuma mallid jälgimisteenuste, DBMS-i, serverite riistvara (IMM/iBMC) jaoks. Salvestussüsteemi jälgimine on endiselt väljaspool malle, nii et salvestuskomponentide oleku ja jõudluse teabe Zabbixisse integreerimiseks peate kasutama kohandatud malle. Juhin teie tähelepanu ühele neist mallidest.

Esiteks väike teooria.

IBM Storwize'i salvestussüsteemide olekule ja statistikale juurdepääsemiseks võite kasutada:

  1. CIM/WBEM protokollid;
  2. RESTful API (toetatud IBM Storwize'is alates tarkvara versioonist 8.1.3);
  3. SNMP Traps (piiratud hulk püüniseid, statistika puudub);
  4. Ühendage SSH kaudu ja seejärel eemalt sobib rahulikuks bash-skriptimiseks.

Huvilised saavad erinevate seiremeetoditega lähemalt tutvuda hankija dokumentatsiooni vastavates osades, samuti dokumendis IBM Spectrum Virtualize skriptimine.

Kasutame CIM/WBEM protokolle, mis võimaldavad hankida salvestussüsteemi tööparameetrid ilma oluliste tarkvaramuudatusteta erinevatele salvestussüsteemidele. CIM/WBEM-protokollid töötavad vastavalt Storage Management Initiative Specification (SMI-S). Storage Management Initiative – spetsifikatsioon põhineb avatud standarditel CIM (ühine teabemudel) и WBEM (veebipõhine ettevõtte juhtimine), määratud Hajushalduse töörühm.

WBEM töötab HTTP-protokolli peal. WBEM-i kaudu saate töötada mitte ainult salvestussüsteemidega, vaid ka HBA-de, lülitite ja lindiraamatukogudega.

Vastavalt SMI arhitektuur и Määrake infrastruktuur, on SMI juurutamise põhikomponent WBEM-server, mis töötleb WBEM-i klientidelt (meie puhul jälgimisskriptidelt) pärit CIM-XML-i päringuid:

IBM Storwize'i salvestusruumi jälgimine Zabbixiga

CIM on objektorienteeritud mudel, mis põhineb Unified Modeling Language (UML) keelel.
Hallatud elemendid on määratletud kui CIM-klassid, millel on atribuudid ja meetodid hallatavate andmete ja funktsioonide esitamiseks.

Vastavalt www.snia.org/pywbem, CIM-i/WBEM-i kaudu salvestussüsteemidele juurdepääsuks saab kasutada PyWBEM-i – Pythonis kirjutatud avatud lähtekoodiga teeki, mis pakub arendajatele ja süsteemiadministraatoritele CIM-protokolli juurutamist CIM-objektidele juurdepääsuks ja mitmesuguste toimingute tegemiseks WBEM-serveriga, mis töötab vastavalt SMI-S või muudele CIM-i spetsifikatsioonidele.

WBEM-serveriga ühenduse loomiseks kasutame klassikonstruktorit WBEMConnection:

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, tekib tegelik ühendus siis, kui meetodid kutsutakse WBEMConnectioni klassi eksemplaril. Kooskõlas IBM System Storage SAN mahukontrolleri ja Storwize V7000 parimate tavade ja jõudlusjuhistega (näide C-8, lk 412) kasutame IBM Storwize salvestussüsteemi CIM-nimeruumina „root/ibm”.

Pange tähele, et CIM-XML/WBEM-protokolli kaudu statistika kogumiseks peate kaasama kasutaja vastavasse turvarühma. Vastasel juhul on WBEM-päringute täitmisel klassi eksemplari atribuutide väljund tühi.

Salvestusstatistikale juurdepääsemiseks kasutaja, kelle alluvuses konstruktorit kutsutakse WBEMConnection(), peavad omama vähemalt RestrictedAdmini (saadaval koodi_tase > 7.8.0 puhul) või administraatori õigusi (turvakaalutlustel pole soovitatav).

Ühendame salvestussüsteemiga SSH kaudu ja vaatame rühmanumbreid:

> 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    

Lisage zabbixi kasutaja soovitud gruppi:

> chuser -usergrp 5 zabbix

Lisaks peate kooskõlas IBM System Storage SAN mahukontrolleri ja Storwize V7000 parimate tavade ja jõudlusjuhistega (lk 415) lubama salvestussüsteemis statistika kogumise. Niisiis, statistika kogumiseks iga minut:

> startstats -interval 1 

Kontrollime:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Kõigi olemasolevate salvestusklasside hankimiseks peate kasutama meetodit EnumerateClassNames().

Näide:

classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
     print (classname)

Meetodit kasutatakse salvestussüsteemi parameetrite väärtuste saamiseks EnumerateInstances() klass WBEMConnection, tagastades eksemplaride loendi CIMInstance().

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õne klassi puhul, mis sisaldavad suurt hulka eksemplare, näiteks IBMTSSVC_StorageVolume, võib kõigi eksemplaride täielik päring olla üsna aeglane. See võib genereerida suuri andmemahtusid, mille salvestussüsteem peab ette valmistama, võrgu kaudu edastama ja skripti abil töötlema. Sellise juhtumi jaoks on olemas meetod ExecQuery(), mis võimaldab meil hankida ainult meid huvitavad klassieksemplari omadused. See meetod hõlmab SQL-i sarnase päringukeele, kas CIM-i päringukeele (DMTF:CQL) või WBEM-i päringukeele (WQL) kasutamist CIM-salvestusobjektide päringute tegemiseks.

request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)

Et teha kindlaks, milliste klasside jaoks on meil vaja salvestusobjektide parameetrid hankida, lugege näiteks dokumentatsiooni Kuidas süsteemikontseptsioonid vastendatakse CIM-kontseptsioonidega.

Seega, füüsiliste ketaste (kettadraivide) parameetrite (mitte jõudlusloendurite) saamiseks küsitleme klassi IBMTSSVC_DiskDrive, Köidete parameetrite saamiseks - klass IBMTSSVC_StorageVolume, massiivi parameetrite saamiseks - klass IBMTSSVC_Array, MDiski parameetrite saamiseks - klass IBMTSSVC_BackendVolume jne.

Etenduseks saate lugeda Ühise teabemudeli agendi funktsionaalsed diagrammid (täpsemalt - Blokeeri serveri jõudluse alamprofiil) ja IBM System Storage SAN helitugevuse kontrolleri ja Storwize V7000 parimate tavade ja jõudluse juhised (näide C-11, lk 415).

Köidete salvestusstatistika hankimiseks peate määrama parameetri ClassName väärtuseks IBMTSSVC_StorageVolumeStatistics. Statistika kogumiseks vajalikke klassi IBMTSSVC_StorageVolumeStatistics atribuute saab vaadata Sõlmede statistika.

Samuti saate jõudluse analüüsiks kasutada klasse IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Andmete seiresüsteemi salvestamiseks kasutame mehhanismi zabbix püünised, rakendatud pythonis moodulis py-zabbix. Salvestussüsteemide klasside struktuuri ja nende omadused paigutame sõnastikku JSON-vormingus.

Laadime malli üles Zabbixi serverisse, veendume, et jälgimisserveril on WEB-protokolli (TCP/5989) kaudu juurdepääs salvestussüsteemile ning paigutame seireserverisse konfiguratsioonifailid, tuvastus- ja jälgimisskriptid. Järgmisena lisage ajakavasse skripti käivitamine. Selle tulemusena: avastame salvestusobjekte (massiivid, füüsilised ja virtuaalsed kettad, korpused ja palju muud), edastame need Zabbixi avastustesse, loeme nende parameetrite olekut, loeme jõudlusstatistikat (jõudlusloendurid), edastame kõik selle vastavasse Zabbixisse Meie malli üksused.

Zabbixi malli, pythoni skripte, salvestusklasside struktuuri ja nende omadusi, samuti konfiguratsioonifailide näiteid, saate leia siit.

Allikas: www.habr.com

Lisa kommentaar