IBM Storwize'i salvestussĂŒsteemide jĂ€lgimine Zabbixi abil

Selles artiklis rÀÀgime natuke IBM Storwize'i ja teiste salvestussĂŒsteemide jĂ€lgimisest, mis toetavad protokolle CIM/WBEM. Selle jĂ€lgimise vajadust ei kĂ€sitleta, oletame, et see on aksepteeritud. JĂ€lgimissĂŒsteemina kasutame Zabbixi.

Zabbixi viimastes versioonides on ettevĂ”te pööranud palju rohkem tĂ€helepanu mallidele — ilmuvad mallid teenuste, andmebaaside ja serverite riistvara (IMM/iBMC) jĂ€lgimiseks IPMI kaudu. SalvestussĂŒsteemide jĂ€lgimine jÀÀb siiski vĂ€lja malli, seega info integreerimiseks Zabbixisse salvestussĂŒsteemi komponentide oleku ja jĂ”udluse kohta on vaja kasutada kohandatud malle. Ühte sellist malli pakun teie tĂ€helepanu alla.

Alustuseks natuke teooriat.

IBM Storwize'i oleku ja statistika juurde pÀÀsemiseks saab kasutada:

  1. Protokolle CIM/WBEM;
  2. RESTful API (IBM Storwize'is on toetatud alates tarkvara versioonist 8.1.3);
  3. SNMP Traps (piiratud kogum trap'e, statistika puudub);
  4. SSH kaudu ĂŒhendamine ja seejĂ€rel kauge sobib aeglaseks bash-skriptimiseks..

Huvitatud saavad lÀhemalt tutvuda erinevate monitooringumeetoditega vastavates tootja dokumentatsiooni jaotisetes ning dokumendis IBM Spectrum Virtualize skriptimine.

Kasutame protokolle CIM/WBEM, mis vĂ”imaldavad saada salvestusseadmestiku tööparameetreid ilma oluliste tarkvaramuudatusteta erinevatele salvestusseadmestikele. Protokollid CIM/WBEM 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 protokolli peal. WBEM-i kaudu saab töötada mitte ainult salvestusseadmetega, vaid ka HBA-de, lĂŒlititega ja digitaallindiga.

Vastavalt SMI arhitektuur ja MÀÀratle infrastruktuur, SMI rakendamise pÔhikomponent on WBEM-server, mis töötleb CIM-XML pÀringuid WBEM-klientidelt (meie puhul monitooringuskriptidelt):

IBM Storwize'i salvestussĂŒsteemide jĂ€lgimine Zabbixi abil

CIM on objekti-orienteeritud mudel, mis pĂ”hineb Ühtse Modelleerimise Keeles (UML).
Haldatavad elemendid mÀÀratletakse CIM-klassidena, millel on omadused ja meetodid hallatavate andmete ja funktsioonide esitamiseks.

Vastavalt www.snia.org/pywbem, et le CIM / WBEM juuresse pÀÀsemiseks vĂ”ib kasutada PyWBEM'i — avatud lĂ€htekoodiga raamatukogu, mis on kirjutatud Pythonis ja pakub arendajatele ja sĂŒsteemiadministraatoritele CIM-protokolli rakendust, et pÀÀseda CIM-objektidele ja teostada erinevaid toiminguid WBEM-serveriga, mis töötab SMI-S vĂ”i muude CIM-spetsifikatsioonide kohaselt.

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, reaalse ĂŒhenduse loomine toimub WBEMConnection klassi meetodite kutsumise ajal. Vastavalt IBM System Storage SAN Volume Controller ja Storwize V7000 parimate praktikate ja jĂ”udluse juhistele (NĂ€ide C-8, lk 412), kasutame IBM Storwize jaoks CIM nimiruumi «root / ibm».

Pange tĂ€hele, et CIM-XML / WBEM protokolli statistika kogumiseks peab kasutaja kuuluma vastavasse turvagruppi. Vastasel juhul on WBEM-pĂ€ringute tĂ€itmisel klassi eksemplari atribuutide vĂ€ljund tĂŒhi..

SĂŒsteemilooja statistikale pÀÀsemiseks peab kasutaja, kelle alt lood konstruktorit WBEMConnection(), peab olema vĂ€hemalt RestrictedAdmin (kehtib code_level > 7.8.0) vĂ”i Administrator (ei soovita turvakaalutlustel).

Ühendame SAN-i SSH kaudu ja vaatame grupi numbreid:

> 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 vajalikku gruppi:

> chuser -usergrp 5 zabbix

Lisaks tuleb IBM System Storage SAN Volume Controller ja Storwize V7000 parimate praktikate ja jĂ”udluse suuniste kohaselt (lk 415) statistika kogumine SAN-is sisse lĂŒlitada. Seega statistika kogumiseks iga minuti tagant:

> startstats -interval 1 

Kontrollin:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

KÔikide olemasolevate SAN-i klasside saamiseks tuleb kasutada meetodit EnumerateClassNames().

NĂ€ide:

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

SAN-i parameetrite vÀÀrtuste saamiseks on mÔeldud meetod EnumerateInstances() klassist WBEMConnection, 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))

Teatud klasside, mis sisaldavad suurt hulka eksemplare, nagu IBMTSSVC_StorageVolume, tĂ€ispĂ€ring kĂ”igi eksemplaride kohta vĂ”ib olla ĂŒsna aeglane. See vĂ”ib genereerida suuri andmemahtusid, mis peavad olema ette valmistatud salvestusseadmest, edastatud ĂŒle vĂ”rgu ja töödeldud skripti poolt. Sellistel juhtudel on olemas meetod ExecQuery(), mis vĂ”imaldab saada ainult meid huvitavad klassi eksemplari omadused. See meetod eeldab pĂ€ringukeelt, nagu SQL — kas CIM Query Language (DMTF:CQL) vĂ”i WBEM Query Language (WQL), et kĂŒsida CIM-objekte salvestusseadmest:

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

Kuna saame mÀÀrata, millised klassid on vajalikud salvestusseadmest objektide parameetrite saamiseks, siis loeme dokumentatsiooni, nÀiteks How system concepts map to CIM concepts.

Seega, et saada fĂŒĂŒsiliste diskide (Disk Drives) parameetreid, uurime klassi IBMTSSVC_DiskDrive, et saada mahtude (Volumes) parameetreid — klassi IBMTSSVC_StorageVolume, et saada massiivide (Arrays) parameetreid — klassi IBMTSSVC_Array, et saada MDisks'i parameetreid — klassi IBMTSSVC_BackendVolume jne.

Tootlikkuse kohta saab lugeda Functional diagrams of the Common Information Model agent (konkreetselt — Blokeeri serveri jĂ”udluse alaprofiil) ja IBM System Storage SAN Volume Controller ja Storwize V7000 parimad praktikas ja jĂ”udluse juhised (NĂ€ide C-11, lk 415).

SĂŒsteemi volĂŒĂŒmide statistika saamiseks tuleb parameetri ClassName vÀÀrtuseks mÀÀrata IBMTSSVC_StorageVolumeStatistics. Statistika kogumiseks vajalikud klassi IBMTSSVC_StorageVolumeStatistics omadused on ĂŒle vaatamiseks saadaval Node Statistics.

Lisaks 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. Klasside struktuuri ja nende omadused korraldame sĂ”nastikus JSON formaadis.

Laadime Zabbixi mallile, veendume, et monitooringuserver pÀÀseb andmesalvestusse TCP/5989 protokolli kaudu, paigaldame monitooringuserverisse konfiguratsioonifailid, avastusskriptid ja monitooringuskriptid. SeejĂ€rel lisame ajastajasse skriptide kĂ€ivitamise. Tulemuseks on: avastame andmesalvestusseadmed (maatriksid, fĂŒĂŒsilised ja virtuaalsed kettad, enclosure'id ja palju muud), edastame need Zabbixi avastustesse, loeme nende parameetrite oleku, loeme jĂ”udluse statistikat (jĂ”udlusnĂ€idikud) ja edastame kĂ”ik selle vastavatesse Zabbixi elementidesse meie mallis.

Zabbixi mall, python-skripti, andmesalvestusseadmete klasside struktuur ja nende omadused, samuti konfiguratsioonifailide nÀidised on siit leitavad.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster