Në këtë artikull, do të flasim pak për monitorimin e RUHIBM Storwize dhe të tjerë RUH që mbështesin protokollet CIM/WBEM. Nevoja për një monitorim të tillë mbetet në hije, le të e shqyrtojmë këtë si një aksiomë. Si sistem monitorimi do të përdorim Zabbix.
NĂ« versionet e fundit tĂ« Zabbix, kompania ka filluar t'i kushtojĂ« shumĂ« mĂ« tepĂ«r vĂ«mendje template-ve â janĂ« shfaqur template pĂ«r monitorimin e shĂ«rbimeve, DBMS, hardware tĂ« serverĂ«ve (IMM/iBMC) pĂ«rmes IPMI. Monitorimi i RUH-ve ende mbetet jashtĂ« template-ve nga fabrika, prandaj pĂ«r integrimin nĂ« Zabbix tĂ« informacionit mbi statusin dhe performancĂ«n e komponentĂ«ve tĂ« RUH-ve duhet tĂ« pĂ«rdoren template tĂ« personalizuara. NjĂ« nga kĂ«to template e propozoj pĂ«r vĂ«mendjen tuaj.
Fillimisht pak teori.
Për të aksesuar statusin dhe statistikën e RUHIBM Storwize, mund të përdoren:
- Protokollet CIM/WBEM;
- (në IBM Storwize mbështetet nga versioni i softuerit 8.1.3);
- SNMP Traps (grup i kufizuar trap-esh, nuk ka statistikë);
- Lidhja përmes SSH me ndihmën e .
Atë që janë të interesuar mund të njihet më në detaje me metodat e ndryshme të monitorimit në seksionet përkatëse të dokumentacionit të prodhuesit, si dhe në dokumentin .
Do tĂ« pĂ«rdorim protokollet CIM/WBEM, qĂ« lejojnĂ« marrjen e parametrave tĂ« funksionimit tĂ« RUH-ve pa ndryshime tĂ« mĂ«dha tĂ« softuerit pĂ«r RUH tĂ« ndryshĂ«m. Protokollet CIM/WBEM punojnĂ« nĂ« pĂ«rputhje me . Storage Management Initiative â Specifikimi Ă«shtĂ« i bazuar nĂ« standarde tĂ« hapura dhe , tĂ« pĂ«rcaktuar nga .
WBEM punon mbi protokollin HTTP. Përmes WBEM mund të punoni jo vetëm me RUH, por edhe me HBA, switch dhe biblioteka shiritash.
Sipas dhe , komponenti kryesor i implementimit tĂ« SMI Ă«shtĂ« WBEM-serveri, qĂ« pĂ«rpunon kĂ«rkesat CIM-XML nga klientĂ«t WBEM (nĂ« rastin tonĂ« â nga skriptet e monitorimit):

CIM është një model orientuar në objekte, e bazuar në Gjuhën e Modelimit të Bashkuar (UML).
Elementët e menaxhuar përcaktohen në formën e CIM-klasave, të cilat kanë prona dhe metoda për të përfaqësuar të dhënat dhe funksionet e menaxhuara.
Sipas , pĂ«r qasje nĂ« SHD 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 qasje nĂ« objektet CIM dhe kryerjen e operacioneve tĂ« ndryshme me serverin WBEM qĂ« 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 punon 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 and Storwize V7000 Best Practices and Performance Guidelines (Shembulli C-8, fq. 412), si CIM namespace për SHD-në IBM Storwize do të përdorim «root/ibm».
Kushtoni vëmendje se për të mbledhur statistika për protokollin CIM-XML/WBEM, është e nevojshme të përfshini përdoruesin në grupin e sigurisë përkatës. Ndryshe, gjatë ekzekutimit të kërkesave WBEM, rezultati i atributeve të instancës së klasës do të jetë bosh..
Për qasje në statistikat e SHD-së, përdoruesi me të cilin ekzekutohet thirrja e konstruktorit , duhet të ketë të drejta të paktën RestrictedAdmin (existon për code_level > 7.8.0) ose Administrator (nuk e rekomandoj për arsye sigurie).
Lidheni me SHD-në përmes SSH dhe shikoni numrat e grupeve:
> 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
Shtoni përdoruesin zabbix në grupin përkatës:
> chuser -usergrp 5 zabbix
Për më tepër, sipas IBM System Storage SAN Volume Controller and Storwize V7000 Best Practices and Performance Guidelines (fq. 415) është e nevojshme të aktivizoni mbledhjen e statistikave në SHD. Pra, për të mbledhur statistika ç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ë SHD-së, është e nevojshme të përdoret metoda EnumerateClassNames().
Shembulli:
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
print (classname)
Për të marrë vlerat e parametrave të SHD-së, është e nevojshme metoda e klasës WBEMConnection, e cila kthen një listë instancash .
Shembulli:
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 IBMTSSVC_StorageVolume, kĂ«rkesa e plotĂ« pĂ«r tĂ« gjitha instancat mund tĂ« jetĂ« mjaft e ngadaltĂ«. Ajo mund tĂ« gjenerojĂ« volume tĂ« mĂ«dha tĂ« dhĂ«nash qĂ« duhet tĂ« pĂ«rgatiten nga SAN, tĂ« kalojnĂ« pĂ«rmes rrjetit dhe tĂ« pĂ«rpunohen nga skenari. PĂ«r kĂ«tĂ« ekziston njĂ« metodĂ« , e cila lejon tĂ« marrim vetĂ«m pronat qĂ« na interesojnĂ« tĂ« instancĂ«s sĂ« klasĂ«s. Kjo metodĂ« parashikon pĂ«rdorimin e njĂ« gjuhe pyetjesh, tĂ« ngjashme me SQL â ose CIM Query Language (DMTF:CQL), ose WBEM Query Language (WQL), pĂ«r tâi pyetur objektet CIM tĂ« SAN:
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
Për të përcaktuar cilat klasa na duhen për të marrë parametrat e objekteve SAN, lexojmë dokumentacionin, për shembull .
Tani, pĂ«r tĂ« marrĂ« parametrat (jo numrat e performancĂ«s) e disqeve fizike (Disk Drives) do tĂ« kĂ«rkojmĂ« KlasĂ«n IBMTSSVC_DiskDrive, pĂ«r tĂ« marrĂ« parametrat e Volume-ve â KlasĂ«n IBMTSSVC_StorageVolume, pĂ«r tĂ« marrĂ« parametrat e grupeve â KlasĂ«n IBMTSSVC_Array, pĂ«r tĂ« marrĂ« parametrat e MDiskeve â KlasĂ«n IBMTSSVC_BackendVolume, etj.
PĂ«r performancĂ«n mund tĂ« lexoni (veçanĂ«risht â ) dhe IBM System Storage SAN Volume Controller and Storwize V7000 Best Practices and Performance Guidelines (Shembulli C-11, fq. 415).
Për të marrë statistikat e SAN për Volume, duhet të specifikohet si vlerë e parametrin ClassName IBMTSSVC_StorageVolumeStatistics. Pronat e nevojshme për mbledhjen e statistikave të klasës IBMTSSVC_StorageVolumeStatistics mund të shikohen në .
Po ashtu, për analizën e performancës, mund të përdoren klasat IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.
Për të shkruar të dhëna në sistemin e monitorimit, do të përdorim mekanizmin , të realizuar në python në modul . Strukturën e klasave SAN dhe pronat e tyre do ta vendosim në një fjalor në formatin JSON.
Ngarko modelin në serverin Zabbix, sigurohemi që nga serveri i monitorimit ka akses në SAN përmes protokollit WEB (TCP/5989), vendosim skedarët e konfigurimit, skriptet e zbulimit dhe monitorimit në serverin e monitorimit. Më pas, shtojmë në planifikuesin ekzekutimin e skripteve. Si rezultat: zbulojmë objektet e SAN (grupet, disqet fizike dhe virtuale, enclosures dhe shumë të tjera), i dërgojmë ato në zbulimet e Zabbix, marrim statusin e parametrave të tyre, lexojmë statistikat e performancës (counters të performancës), dhe dërgojmë gjithçka në Items përkatëse të Zabbix të modelit tonë.
Modeli Zabbix, skriptet python, struktura e klasave të SAN dhe pronave të tyre, si dhe shembujt e skedarëve të konfigurimit, mund të .
Burimi: habr.com
