IBM Storwize’i salvestuslahenduste jĂ€lgimine Zabbixi abil

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:

  1. CIM/WBEM protokolle;
  2. RESTful API (IBM Storwize puhul toetatakse alates tarkvara versioonist 8.1.3);
  3. SNMP traps (piiratud trapide komplekt, puudub statistika);
  4. SSH kaudu ĂŒhendamine jĂ€rgmise kaugsalvestuse sobib aeglaseks bash-skriptimiseks.

Huvi korral saavad huvilised tutvuda erinevate jÀlgimismeetoditega vastavate tootja dokumentatsioonide lÔikudes ning dokumendis IBM Spectrum Virtualize scripting.

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 (SMI-S). Storage Management Initiative – Specification pĂ”hineb avatud standarditel CIM (Common Information Model) ja WBEM (Web-Based Enterprise Management), mida mÀÀratleb Distributed Management Task Force.

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 SMI arhitektuur ja MÀÀra infrastruktuur, SMI tÔhususe pÔhikomponent on WBEM-server, mis töötleb CIM-XML pÀringuid WBEM-kliendilt (meie juhul jÀlgimisskriptid):

IBM Storwize’i salvestuslahenduste jĂ€lgimine Zabbixi abil

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 www.snia.org/pywbem, 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 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, 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 WBEMConnection(), 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 EnumerateInstances() WBEMConnection klass, mis tagastab 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Ă”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 ExecQuery(), 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 Kuidas sĂŒsteemi kontseptsioonid vastavad CIM kontseptsioonidele.

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 Ühise teabe mudeli agendi funktsionaalsed skeemid (konkreetselt — Bloki serveri jĂ”udluse alamprofiil) 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 SÔlme statistika.

Samuti saab jĂ”udluse analĂŒĂŒsimiseks kasutada klasse IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Andmete salvestamiseks jĂ€lgimisse sĂŒsteemi kasutame mehhanismi zabbix traps, mis on rakendatud pythonis moodulis py-zabbix. 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 leidmiseks siin.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster