Në këtë artikull do të flasim pak për monitorimin e sistemit të ruajtjes IBM Storwize dhe sistemet e tjera të ruajtjes që mbështesin protokollin CIM/WBEM. Nevoja për një monitorim të tillë është e qartë, prandaj do ta pranojmë si një aksiomë. Si sistem monitorimi, do të përdorim Zabbix.
NĂ« versionet e fundit tĂ« Zabbix, kompania ka filluar tĂ« kushtojĂ« shumĂ« mĂ« tepĂ«r vĂ«mendje pĂ«r template-t â janĂ« krijuar template pĂ«r monitorimin e shĂ«rbimeve, DBMS, dhe harduerit tĂ« serverĂ«ve (IMM/iBMC) pĂ«rmes IPMI. Monitorimi i sistemit tĂ« ruajtjes ende mbetet jashtĂ« template-ve nga kutia, prandaj pĂ«r integrimin nĂ« Zabbix tĂ« informacionit mbi statusin dhe performancĂ«n e komponentĂ«ve tĂ« sistemit tĂ« ruajtjes, Ă«shtĂ« e nevojshme tĂ« pĂ«rdoren template tĂ« personalizuara. NjĂ« nga kĂ«to template po e propozoj pĂ«r ju.
Fillimisht pak teori.
Për të aksesuar statusin dhe statistikën e sistemit të ruajtjes IBM Storwize, mund të përdoren:
- Protokollet CIM/WBEM;
- (në IBM Storwize mbështetet që nga versioni i softuerit 8.1.3);
- Dërgimet SNMP Traps (një grup i kufizuar trap-ësh, pa statistika);
- Konfigurimi përmes SSH me pasueshmëri të largët .
Ata që janë të interesuar mund të njohin më shumë rreth metodave të ndryshme të monitorimit në seksionet përkatëse të dokumentacionit të ofruesit, si dhe në dokumentin .
Ne do tĂ« pĂ«rdorim protokollet CIM/WBEM, qĂ« lejojnĂ« marrjen e parametrave tĂ« funksionimit tĂ« sistemeve tĂ« ruajtjes pa ndryshime tĂ« mĂ«dha nĂ« softuer pĂ«r sisteme tĂ« ndryshme ruajtjeje. Protokollet CIM/WBEM punojnĂ« sipas . Iniciativa pĂ«r Menaxhimin e Ruajtjes â Specifikimi Ă«shtĂ« i bazuar nĂ« standarde tĂ« hapura dhe , tĂ« pĂ«rcaktuara nga .
WBEM punon mbi protokollin HTTP. Nëpërmjet WBEM mund të punoni jo vetëm me sistemet e ruajtjes, por edhe me HBA, switch-e dhe biblioteka kasetash.
Sipas dhe , komponenti kryesor i realizimit tĂ« SMI Ă«shtĂ« njĂ« server WBEM, qĂ« pĂ«rpunon kĂ«rkesat CIM-XML nga klientĂ«t WBEM (nĂ« rastin tonĂ« â nga skenat e monitorimit):

CIM është një model orientuar nga objekti, i bazuar në Gjuhën e Modelimit të Unifikuar (UML).
Elementët e menaxhuar përcaktohen si klasa CIM, të cilat kanë propët dhe metoda për përfaqësimin e të dhënave dhe funksioneve të menaxhuara.
Sipas , pĂ«r tĂ« aksesuar SAN pĂ«rmes CIM/WBEM, mund tĂ« pĂ«rdorni PyWBEM â njĂ« bibliotekĂ« open source, e shkruar nĂ« Python, e cila ofron zhvilluesve dhe administratorĂ«ve tĂ« sistemeve implementimin e protokollit CIM pĂ«r aksesin nĂ« objektet CIM dhe kryerjen e operacioneve tĂ« ndryshme me serverin WBEM, i cili funksionon sipas SMI-S ose specifikimeve tĂ« tjera CIM.
Për t'u lidhur me serverin WBEM, përdorim konstruktorin e klasës :
conn = pywbem.WBEMConnection(server_uri, (self.login, self.password),
namespace, no_verification=True)
Kjo është një lidhje virtuale, pasi CIM-XML/WBEM funksionon mbi HTTP, lidhja reale ndodh në momentin e thirrjes së metodave për instancën e klasës WBEMConnection. Sipas IBM System Storage SAN Volume Controller dhe Storwize V7000 Best Practices dhe Udhëzimeve për Performancën (Shembulli C-8, fq. 412), si CIM namespace për SAN IBM Storwize do të përdorim «root/ibm».
Vini re se për të mbledhur statistika nga protokolli CIM-XML/WBEM, është e nevojshme të përfshini përdoruesin në grupin e duhur të sigurimit. Përndryshe, gjatë ekzekutimit të kërkesave WBEM, dalja e atributeve të instancës së klasës do të jetë e zbrazët..
Për të aksesuar statistikat e SAN, përdoruesi, për të cilin bëhet thirrja e konstruktorit , duhet të ketë të drejta të paktën RestrictedAdmin (disponibile për code_level > 7.8.0) ose Administrator (nuk rekomandohet për arsye sigurie).
Kemi lidhje me SCSI përmes SSH dhe shohim numrat e grupeve:
> lsusergrp
id emri roli largëtar
0 SecurityAdmin SecurityAdmin jo
1 Administrator Administrator jo
2 CopyOperator CopyOperator jo
3 Shërbim Shërbim jo
4 Monitor Monitor jo
5 RestrictedAdmin RestrictedAdmin jo
Shtohet përdoruesi zabbix në grupin e nevojshëm:
> chuser -usergrp 5 zabbix
Për më tepër, në përputhje me IBM System Storage SAN Volume Controller dhe Storwize V7000 Best Practices dhe Performance Guidelines (faqe 415) duhet të aktivizohet mbledhja e statistikave në SCSI. Pra, për mbledhjen e statistikave çdo minutë:
> startstats -interval 1
Po kontrollojmë:
> lssystem | grep statistics
statistics_status on
statistics_frequency 1
Për të marrë të gjitha klasat ekzistuese të SCSI, duhet të përdoret metoda EnumerateClassNames().
Shembuj:
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
print (classname)
Për marrjen e vlerave të parametrave të SCSI synohet metoda e klasës WBEMConnection, e cila kthen një listë instancash .
Shembuj:
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))
PĂ«r disa klasa qĂ« pĂ«rmbajnĂ« njĂ« numĂ«r tĂ« madh instancash, siç Ă«shtĂ« IBMTSSVC_StorageVolume, njĂ« kĂ«rkesĂ« e plotĂ« pĂ«r tĂ« gjitha instancat mund tĂ« jetĂ« mjaft e ngadaltĂ«. Ajo mund tĂ« gjenerojĂ« sasi tĂ« mĂ«dha tĂ« dhĂ«nash qĂ« duhet tĂ« pĂ«rgatiten nga SĂD, tĂ« transferohen pĂ«rmes rrjetit dhe tĂ« pĂ«rpunohen nga skripti. PĂ«r kĂ«tĂ« rast ekziston metoda , e cila lejon tĂ« merret vetĂ«m pronat qĂ« na interesojnĂ« tĂ« instancĂ«s sĂ« klasĂ«s. Kjo metodĂ« parashikon pĂ«rdorimin e njĂ« gjuhe kĂ«rkimi, tĂ« ngjashme me SQL â ose CIM Query Language (DMTF:CQL), ose WBEM Query Language (WQL), pĂ«r tĂ« pyetur CIM-objektet e SĂD:
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
PĂ«r tĂ« pĂ«rcaktuar se cilat klasa na duhen pĂ«r tĂ« marrĂ« parametrat e objekteve tĂ« SĂD, lexojmĂ« dokumentacionin, pĂ«r shembull .
Dhe kĂ«shtu, pĂ«r tĂ« marrĂ« parametrat (jo numrat e performancĂ«s) e disqeve fizike (Disk Drives) do tĂ« pyetim klasĂ«n IBMTSSVC_DiskDrive, pĂ«r tĂ« marrĂ« parametrat pĂ«r Volume â klasĂ«n IBMTSSVC_StorageVolume, pĂ«r tĂ« marrĂ« parametrat pĂ«r masive â klasĂ«n IBMTSSVC_Array, pĂ«r tĂ« marrĂ« parametrat pĂ«r MDisks â klasĂ«n IBMTSSVC_BackendVolume etj.
PĂ«r performancĂ«n mund tĂ« lexoni (konkretisht â ) dhe IBM System Storage SAN Volume Controller dhe Storwize V7000 Praktikat mĂ« tĂ« mira dhe UdhĂ«zimet pĂ«r PerformancĂ«n (Shembulli C-11, fq. 415).
Për të marrë statistikat e storazhit mbi Volumes, është e nevojshme që vlera e parametrit ClassName të jetë IBMTSSVC_StorageVolumeStatistics. Pronat e nevojshme për mbledhjen e statistikave të klasës IBMTSSVC_StorageVolumeStatistics mund të shihen në .
Po ashtu, për analizën e performancës mund të përdoren klasat IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.
Për të regjistruar të dhëna në sistemin e monitorimit do të përdorim mekanizmin , i realizuar në python në modulin . Strukturën e klasave të storazhit dhe pronave të tyre do ta vendosim në një fjalor në formatin JSON.
Ngjarja e ngarkimit të modelit në serverin Zabbix, sigurohemi që nga serveri i monitoringut ka qasje në SAN përmes protokollit WEB (TCP/5989), vendosim skedarët e konfigurimit, skriptet e zbulimit dhe monitoringut në serverin e monitoringut. Më pas, shtojmë në planifikuesin e task-eve ekzekutimin e skriptave. Si rezultat: zbulojmë objektet SAN (masat, diskët fizikë dhe virtualë, enclosure dhe shumë të tjera), i dërgojmë ato në zbulimet e Zabbix, lexojmë statusin e parametrave të tyre, lexojmë statistikat e performancës (perfomance counters), dhe dërgojmë gjithçka në artikujt përkatës Zabbix të modelit tonë.
Modeli Zabbix, skriptet Python, struktura e klasave SAN dhe pronat e tyre, si dhe shembujt e skedarëve të konfigurimit, mund të .
Burimi: habr.com
