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:
CIM/WBEM protokoloak;
API berriena (IBM Storwize-n onartzen da 8.1.3 software bertsioarekin hasita);
SNMP Trap (tranpa multzo mugatua, estatistikarik gabe);
Interesa dutenek jarraipen-metodo ezberdinei buruz gehiago jakin dezakete hornitzailearen dokumentazioaren ataletan, baita dokumentuan ere. IBM Spectrum Virtualize script-a.
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):
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:
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)
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.
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.