Siveyans sistèm depo IBM Storwize lè l sèvi avèk Zabbix

Nan atik sa a nou pral pale yon ti kras sou siveyans sistèm depo IBM Storwize ak lòt sistèm depo ki sipòte pwotokòl CIM/WBEM yo. Nesesite pou siveyans sa yo rete deyò ekwasyon an; nou pral konsidere sa a kòm yon aksyòm. Nou pral sèvi ak Zabbix kòm yon sistèm siveyans.

Nan dènye vèsyon yo nan Zabbix, konpayi an te kòmanse peye pi plis atansyon sou modèl - modèl yo te kòmanse parèt pou sèvis siveyans, DBMS, pyès ki nan konpitè sèvè (IMM/iBMC) atravè IPMI. Siveyans sistèm depo se toujou deyò modèl yo soti nan bwat la, kidonk entegre enfòmasyon sou estati a ak pèfòmans nan konpozan depo nan Zabbix, ou bezwen sèvi ak modèl koutim. Mwen pote atansyon w youn nan modèl sa yo.

Premyèman, yon ti teyori.

Pou jwenn aksè nan estati ak estatistik sistèm depo IBM Storwize, ou ka itilize:

  1. Pwotokòl CIM/WBEM;
  2. RESTful API (sipòte nan IBM Storwize kòmanse ak vèsyon lojisyèl 8.1.3);
  3. Pyèj SNMP (seri limite nan pyèj, pa gen estatistik);
  4. Konekte atravè SSH ak Lè sa a, adistans apwopriye pou scripting bash lantèman.

Moun ki enterese ka aprann plis sou divès metòd siveyans nan seksyon ki enpòtan nan dokiman vandè a, osi byen ke nan dokiman an. IBM Spectrum Virtualize scripting.

Nou pral sèvi ak pwotokòl CIM/WBEM, ki pèmèt nou jwenn paramèt operasyon sistèm depo san chanjman lojisyèl enpòtan pou diferan sistèm depo. Pwotokòl CIM/WBEM yo fonksyone an akò ak Espesifikasyon Inisyativ Jesyon Depo (SMI-S). Inisyativ Jesyon Depo - Espesifikasyon baze sou estanda ouvè CIM (Modèl Enfòmasyon komen) и WBEM (Jesyon antrepriz ki baze sou entènèt), detèmine Gwoup Travay Jesyon Distribiye.

WBEM kouri sou tèt pwotokòl HTTP a. Atravè WBEM ou ka travay pa sèlman ak sistèm depo, men tou ak HBA, switch ak bibliyotèk kasèt.

Dapre SMI Achitekti и Detèmine enfrastrikti, eleman prensipal la nan aplikasyon SMI a se sèvè WBEM, ki trete demann CIM-XML soti nan kliyan WBEM (nan ka nou an, soti nan script siveyans):

Siveyans sistèm depo IBM Storwize lè l sèvi avèk Zabbix

CIM se yon modèl oryante objè ki baze sou langaj modèl inifye (UML).
Eleman jere yo defini kòm klas CIM ki gen pwopriyete ak metòd pou reprezante done jere ak fonksyonalite.

Dapre www.snia.org/pywbem, pou jwenn aksè nan sistèm depo atravè CIM/WBEM, ou ka itilize PyWBEM - yon bibliyotèk sous louvri ekri an Python, ki bay devlopè ak administratè sistèm yo yon aplikasyon pwotokòl CIM pou jwenn aksè nan objè CIM ak fè divès operasyon ak yon sèvè WBEM ki opere nan dapre SMI-S oswa lòt espesifikasyon CIM.

Pou konekte ak sèvè WBEM nou itilize konstrukteur klas la WBEMKoneksyon:

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

Sa a se yon koneksyon vityèl, depi CIM-XML/WBEM kouri sou tèt HTTP, koneksyon reyèl la rive lè yo rele metòd sou yon egzanp nan klas WBEMConnection. Dapre IBM System Storage SAN Volim Controller ak Pi bon Pratik ak Gid Pèfòmans Storwize V7000 (Egzanp C-8, paj 412), nou pral itilize "root/ibm" kòm espas non CIM pou sistèm depo IBM Storwize la.

Tanpri sonje ke pou kolekte estatistik atravè pwotokòl CIM-XML/WBEM, ou dwe mete itilizatè a nan gwoup sekirite ki apwopriye a. Sinon, lè w ap egzekite demann WBEM, pwodiksyon atribi egzanp klas yo pral vid.

Pou jwenn aksè nan estatistik depo, itilizatè a anba ki moun yo rele konstrukteur a WBEMConnection(), dwe genyen omwen RestrictedAdmin (ki disponib pou code_level > 7.8.0) oswa dwa Administratè (pa rekòmande pou rezon sekirite).

Nou konekte ak sistèm depo a atravè SSH epi gade nimewo gwoup yo:

> 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    

Ajoute itilizatè zabbix la nan gwoup la vle:

> chuser -usergrp 5 zabbix

Anplis de sa, dapre IBM System Storage SAN Volim Controller ak Pi bon Pratik ak Gid Pèfòmans Storwize V7000 (p. 415), ou dwe pèmèt koleksyon estatistik sou sistèm depo a. Se konsa, kolekte estatistik chak minit:

> startstats -interval 1 

Nou tcheke:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Pou jwenn tout klas depo ki egziste deja, ou dwe itilize metòd EnumerateClassNames().

Egzanp:

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

Metòd la itilize pou jwenn valè paramèt sistèm depo yo EnumerateInstances() klas WBEMConnection, ki retounen yon lis enstans CIMInstans().

Egzanp:

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

Pou kèk klas ki genyen yon gwo kantite ka, tankou IBMTSSVC_StorageVolume, yon rekèt konplè sou tout sikonstans ka byen dousman. Li ka jenere gwo kantite done ki dwe prepare pa sistèm nan depo, transmèt sou rezo a ak trete pa script la. Gen yon metòd pou yon ka konsa ExecQuery (), ki pèmèt nou jwenn sèlman pwopriyete yon egzanp klas ki enterese nou. Metòd sa a enplike lè l sèvi avèk yon lang rekèt tankou SQL, swa CIM Query Language (DMTF:CQL) oswa WBEM Query Language (WQL), pou rechèch objè depo CIM:

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

Pou detèmine ki klas nou bezwen jwenn paramèt yo nan objè depo, li dokiman an, pou egzanp Ki jan konsèp sistèm kat jeyografik nan konsèp CIM.

Se konsa, jwenn paramèt (pa kontè pèfòmans) nan disk fizik (Disk Drive) nou pral sondaj Klas IBMTSSVC_DiskDrive, pou jwenn paramèt Volim - Klas IBMTSSVC_StorageVolume, pou jwenn paramèt etalaj - Klas IBMTSSVC_Array, pou jwenn paramèt MDisks - Klas IBMTSSVC_BackendVolume, elatriye.

Pou pèfòmans ou ka li Dyagram fonksyonèl ajan modèl enfòmasyon komen yo (espesyalman - Blòk sèvè pèfòmans subprofile) ak IBM System Storage SAN Volim Controller ak Storwize V7000 Pi bon Pratik ak Gid Pèfòmans (Egzanp C-11, paj 415).

Pou jwenn estatistik depo pou Volim, ou dwe presize IBMTSSVC_StorageVolumeStatistics kòm valè paramèt ClassName. Pwopriyete klas IBMTSSVC_StorageVolumeStatistics ki nesesè pou kolekte estatistik yo ka wè nan Estatistik ne.

Epitou, pou analiz pèfòmans ou ka itilize klas IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Pou anrejistre done nan sistèm siveyans la nou pral sèvi ak mekanis la zabbix pyèj, aplike nan python nan yon modil py-zabbix. Nou pral mete estrikti klas sistèm depo ak pwopriyete yo nan yon diksyonè nan fòma JSON.

Nou telechaje modèl la sou sèvè Zabbix la, asire w ke sèvè siveyans la gen aksè a sistèm depo atravè pwotokòl WEB (TCP/5989), epi mete fichye konfigirasyon, deteksyon ak script siveyans sou sèvè siveyans la. Apre sa, ajoute lansman script nan orè a. Kòm yon rezilta: nou dekouvri objè depo (etalaj, disk fizik ak vityèl, patiraj ak plis ankò), transfere yo nan dekouvèt Zabbix, li estati paramèt yo, li estatistik pèfòmans (kontè pèfòmans), transfere tout bagay sa yo nan Zabbix ki koresponn lan. Atik nan modèl nou an.

Modèl Zabbix, scripts python, estrikti klas depo ak pwopriyete yo, osi byen ke egzanp fichye konfigirasyon, ou ka jwenn isit la.

Sous: www.habr.com

Add nouvo kòmantè