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:
Pwotokòl CIM/WBEM;
RESTful API (sipòte nan IBM Storwize kòmanse ak vèsyon lojisyèl 8.1.3);
Pyèj SNMP (seri limite nan pyèj, pa gen estatistik);
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.
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):
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:
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)
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 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.