IBM Storwize biltegiratze-sistemen jarraipena Zabbix erabiliz

Artikulu honetan IBM Storwize biltegiratze-sistemen eta CIM/WBEM protokoloak onartzen dituzten beste biltegiratze-sistemen jarraipenari buruz hitz egingo dugu. Jarraipen horren beharra ekuaziotik kanpo geratzen da; hau axiomatzat hartuko dugu. Zabbix monitorizazio sistema gisa erabiliko dugu.

Zabbix-en azken bertsioetan, konpainia askoz ere arreta handiagoa jartzen hasi zen txantiloietan; txantiloiak agertzen hasi ziren monitorizazio zerbitzuetarako, DBMS, Zerbitzarien hardwarea (IMM/iBMC) IPMI bidez. Biltegiratze sistemaren jarraipena txantiloietatik kanpo dago oraindik, beraz, biltegiratze-osagaien egoerari eta errendimenduari buruzko informazioa Zabbix-en integratzeko, txantiloi pertsonalizatuak erabili behar dituzu. Txantiloi horietako bat jartzen dizuet arreta.

Lehenik eta behin, teoria apur bat.

IBM Storwize biltegiratze sistemen egoera eta estatistiketara sartzeko, erabil dezakezu:

  1. CIM/WBEM protokoloak;
  2. API berriena (IBM Storwize-n onartzen da 8.1.3 software bertsioarekin hasita);
  3. SNMP Trap (tranpa multzo mugatua, estatistikarik gabe);
  4. Konektatu SSH bidez eta gero urrunetik egokia bash scripting lasaia egiteko.

Interesa dutenek jarraipen-metodo ezberdinei buruz gehiago jakin dezakete hornitzailearen dokumentazioaren ataletan, baita dokumentuan ere. IBM Spectrum Virtualize script-a.

CIM/WBEM protokoloak erabiliko ditugu, biltegiratze-sistemaren funtzionamendu-parametroak lortzeko aukera ematen baitute biltegiratze-sistema desberdinetarako software aldaketa nabarmenik gabe. CIM/WBEM protokoloek ezarritakoaren arabera funtzionatzen dute Biltegiratzea Kudeatzeko Ekimenaren Zehaztapena (SMI-S). Biltegiratzea Kudeatzeko Ekimena - Zehaztapena estandar irekietan oinarritzen da CIM (Common Information Model) ΠΈ WBEM (Web-oinarritutako Enpresa Kudeaketa), zehaztuta Banatutako Kudeaketa Taldea.

WBEM HTTP protokoloaren gainean exekutatzen da. WBEM-en bidez, biltegiratze sistemekin ez ezik, HBA, etengailu eta zinta liburutegiekin ere lan egin dezakezu.

Arabera SMI Arkitektura ΠΈ Azpiegitura zehaztea, SMI inplementazioaren osagai nagusia WBEM zerbitzaria da, WBEM bezeroen CIM-XML eskaerak prozesatzen dituena (gure kasuan, monitorizazio scriptetatik):

IBM Storwize biltegiratze-sistemen jarraipena Zabbix erabiliz

CIM objektuetara zuzendutako eredua da Unified Modeling Language (UML) oinarrituta.
Kudeatutako elementuak CIM klase gisa definitzen dira, kudeatutako datuak eta funtzionalitateak irudikatzeko propietateak eta metodoak dituztenak.

Arabera www.snia.org/pywbem, CIM/WBEM bidez biltegiratze-sistemetara sartzeko, PyWBEM erabil dezakezu - Python-en idatzitako kode irekiko liburutegia, garatzaileei eta sistema-administratzaileei CIM protokoloaren inplementazioa ematen diena CIM objektuak atzitzeko eta WBEM zerbitzari batekin hainbat eragiketa egiteko. SMI-S edo CIM beste zehaztapen batzuen arabera.

WBEM zerbitzariarekin konektatzeko klase eraikitzailea erabiltzen dugu WBEMCkonexioa:

conn = pywbem.WBEMConnection(server_uri, (self.login, self.password),
            namespace, no_verification=True)

Konexio birtuala da, CIM-XML/WBEM HTTPren gainean exekutatzen denez, benetako konexioa WBEMConnection klaseko instantzia batean metodoak deitzen direnean gertatzen da. IBM System Storage SAN Volume Controller eta Storwize V7000 Jardunbide Egokien eta Errendimendu Gidalerroen arabera (C-8 Adibidea, 412. orrialdea), "root/ibm" erabiliko dugu IBM Storwize biltegiratze sistemaren CIM izen-espazio gisa.

Kontuan izan CIM-XML/WBEM protokoloaren bidez estatistikak biltzeko, erabiltzailea dagokion segurtasun taldean sartu behar duzula. Bestela, WBEM kontsultak exekutatzean, klase-instantzia-atributuen irteera hutsik egongo da.

Biltegiratze estatistiketara sartzeko, eraikitzailea deitzen zaion erabiltzailea WBEMCconnection(), gutxienez RestrictedAdmin (kode_maila > 7.8.0rako erabilgarri) edo Administratzaile eskubideak izan behar ditu (ez da gomendagarria segurtasun arrazoiengatik).

Biltegiratze sistemara SSH bidez konektatzen gara eta talde-zenbakiak ikusten ditugu:

> 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    

Gehitu zabbix erabiltzailea nahi duzun taldean:

> chuser -usergrp 5 zabbix

Horrez gain, IBM System Storage SAN Volume Controller eta Storwize V7000 Jardunbide Egokien eta Errendimendu Gidalerroen arabera (415. or.), biltegiratze sisteman estatistikak biltzea gaitu behar duzu. Beraz, minuturo estatistikak biltzeko:

> startstats -interval 1 

Egiaztatzen dugu:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Lehendik dauden biltegiratze-klase guztiak lortzeko, EnumerateClassNames() metodoa erabili behar duzu.

Adibidea:

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

Metodoa biltegiratze sistemaren parametroen balioak lortzeko erabiltzen da EnumerateInstances() WBEMConnection klasea, instantzien zerrenda itzultzen duena CIMInstance().

Adibidea:

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))

Instantzia kopuru handia duten klase batzuetarako, hala nola IBMTSSVC_StorageVolume, instantzia guztien kontsulta osoa nahiko motela izan daiteke. Biltegiratze-sistemak prestatu, sarean transmititu eta scriptak prozesatu behar dituen datu-bolumen handiak sor ditzake. Horrelako kasuetarako metodo bat dago ExecQuery(), interesatzen zaizkigun klase-instantzia baten propietateak soilik lortzeko aukera ematen duena. Metodo honek SQL antzeko kontsulta-lengoaia erabiltzea dakar, CIM Query Language (DMTF:CQL) edo WBEM Query Language (WQL), CIM biltegiratze-objektuak kontsultatzeko:

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

Biltegiratze-objektuen parametroak zein klase lortu behar ditugun zehazteko, irakurri dokumentazioa, adibidez Sistemaren kontzeptuak CIM kontzeptuekin nola mapatzen diren.

Beraz, disko fisikoen (Disk Drives) parametroak (ez errendimendu-kontagailuak) lortzeko IBMTSSVC_DiskDrive klasea galdeketa egingo dugu, Bolumen parametroak lortzeko - IBMTSSVC_StorageVolume klasea, array parametroak lortzeko - IBMTSSVC_Array klasea, MDisks parametroak lortzeko - IBMTSSVC_BackendV klasea, etab.

Errendimendurako irakur dezakezu Informazio Eredu Amankomunaren agentearen diagrama funtzionalak (zehazki - Blokeatu zerbitzariaren errendimenduaren azpiprofila) eta IBM System Storage SAN Volume Controller eta Storwize V7000 Praktika Onenak eta Errendimendu Jarraibideak (C-11 Adibidea, 415. orrialdea).

Bolumenen biltegiratze-estatistikak lortzeko, IBMTSSVC_StorageVolumeStatistics zehaztu behar duzu ClassName parametroaren balio gisa. Estatistikak biltzeko beharrezkoak diren IBMTSSVC_StorageVolumeStatistics klasearen propietateak hemen ikus daitezke Nodoen Estatistika.

Gainera, errendimendua aztertzeko IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics klaseak erabil ditzakezu.

Jarraipen-sisteman datuak erregistratzeko mekanismoa erabiliko dugu zabbix tranpak, python-en inplementatuta modulu batean py-zabbix. Biltegiratze sistemen klaseen egitura eta haien propietateak JSON formatuan hiztegi batean jarriko ditugu.

Txantiloia Zabbix zerbitzarira igotzen dugu, monitorizazio zerbitzariak WEB protokoloaren bidez (TCP/5989) biltegiratze sistemarako sarbidea duela ziurtatzen dugu eta monitorizazio zerbitzarian konfigurazio-fitxategiak, detekzio- eta monitorizazio-scriptak jartzen ditugu. Ondoren, gehitu script-a abiarazteko programatzaileari. Ondorioz: biltegiratze objektuak deskubritzen ditugu (matrizeak, disko fisikoak eta birtualak, itxiturak eta askoz gehiago), Zabbix aurkikuntzetara transferitzen ditugu, haien parametroen egoera irakurtzen dugu, errendimendu-estatistikak irakurtzen ditugu (errendimendu-kontagailuak), hori guztia dagokion Zabbix-era transferitzen dugu. Gure txantiloiaren elementuak.

Zabbix txantiloia, python scriptak, biltegiratze klaseen egitura eta haien propietateak, baita konfigurazio fitxategien adibideak ere, dezakezu aurkitu hemen.

Iturria: www.habr.com

Gehitu iruzkin berria