Monitorimi i SHT IBM Storwize me ndihmën e Zabbix

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:

  1. Protokollet CIM/WBEM;
  2. RESTful API (në IBM Storwize mbështetet që nga versioni i softuerit 8.1.3);
  3. Dërgimet SNMP Traps (një grup i kufizuar trap-ësh, pa statistika);
  4. Konfigurimi përmes SSH me pasueshmëri të largët është i përshtatshëm për skriptimin e ngadaltë në bash..

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 IBM Spectrum Virtualize scripting.

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 Specifikimeve tĂ« IniciativĂ«s pĂ«r Menaxhimin e Ruajtjes (SMI-S). Iniciativa pĂ«r Menaxhimin e Ruajtjes – Specifikimi Ă«shtĂ« i bazuar nĂ« standarde tĂ« hapura CIM (Modeli i Informacionit tĂ« PĂ«rbashkĂ«t) dhe WBEM (Menaxhimi i NdĂ«rmarrjeve nĂ« Internet), tĂ« pĂ«rcaktuara nga Forumi i Detyrave tĂ« Menaxhimit tĂ« Distribuar.

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 Arkitektura SMI dhe KurojĂ« InfrastrukturĂ«n, 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):

Monitorimi i SHT IBM Storwize me ndihmën e Zabbix

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 www.snia.org/pywbem, 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 WBEMConnection:

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 WBEMConnection(), 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 EnumerateInstances() e klasës WBEMConnection, e cila kthen një listë instancash CIMInstance().

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 ExecQuery(), 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 Si konceptet e sistemit lidhen me konceptet CIM.

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 Diagramet funksionale tĂ« agjentit tĂ« Modelit tĂ« Informacionit tĂ« PĂ«rbashkĂ«t (konkretisht — NĂ«nprofilin e performancĂ«s sĂ« bllokut tĂ« serverit) 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ë Statistikat e Nodusit.

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 zabbix traps, i realizuar në python në modulin py-zabbix. 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ë të gjenden këtu.

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster