Monitoring IBM Storwize opslach mei Zabbix

Yn dit artikel sille wy prate in bytsje oer tafersjoch op IBM Storwize opslach systemen en oare opslach systemen dy't stypje de CIM / WBEM protokollen. De needsaak foar sa'n monitoaring wurdt út 'e fergeliking litten; wy sille dit as in axioma beskôgje. Wy sille Zabbix brûke as kontrôlesysteem.

Yn 'e lêste ferzjes fan Zabbix begon it bedriuw folle mear omtinken te jaan oan sjabloanen - sjabloanen begon te ferskinen foar tafersjochtsjinsten, DBMS, Servers hardware (IMM / iBMC) fia IPMI. Opslachsysteemmonitoring is noch bûten de sjabloanen út it fak, dus om ynformaasje oer de status en prestaasjes fan opslachkomponinten yn Zabbix te yntegrearjen, moatte jo oanpaste sjabloanen brûke. Ik bring jo oandacht ien fan dizze sjabloanen.

Earst in lytse teory.

Om tagong te krijen ta de status en statistiken fan IBM Storwize opslachsystemen, kinne jo gebrûk meitsje fan:

  1. CIM / WBEM protokollen;
  2. RESTful API (stipe yn IBM Storwize begjinnend mei softwareferzje 8.1.3);
  3. SNMP Traps (beheinde set fan traps, gjin statistiken);
  4. Ferbine fia SSH en dan op ôfstân geskikt foar leisurely bash scripting.

De belangstellenden kinne mear leare oer ferskate monitoaringmetoaden yn 'e oanbelangjende seksjes fan' e ferkeaperdokumintaasje, lykas yn it dokumint IBM Spectrum Virtualize skripting.

Wy sille gebrûk meitsje fan de CIM / WBEM protokollen, dy't tastean ús te krijen opslach systeem bestjoeringssysteem parameters sûnder wichtige software feroarings foar ferskillende opslach systemen. De CIM / WBEM protokollen wurkje yn oerienstimming mei Storage Management Initiative Specification (SMI-S). Storage Management Initiative - Spesifikaasje is basearre op iepen noarmen CIM (Common Information Model) и WBEM (Web-Based Enterprise Management), beret Ferspraat Management Task Force.

WBEM rint boppe op it HTTP-protokol. Troch WBEM kinne jo net allinich wurkje mei opslachsystemen, mar ek mei HBA's, switches en tapebiblioteken.

Neffens SMI Architecture и Bepale ynfrastruktuer, de haadkomponint fan 'e SMI-ymplemintaasje is de WBEM-tsjinner, dy't CIM-XML-oanfragen fan WBEM-kliïnten ferwurket (yn ús gefal, fan tafersjochskripts):

Monitoring IBM Storwize opslach mei Zabbix

CIM is in objekt-rjochte model basearre op Unified Modeling Language (UML).
Behearde eleminten wurde definiearre as CIM-klassen dy't eigenskippen en metoaden hawwe om behearde gegevens en funksjonaliteit te fertsjintwurdigjen.

Neffens www.snia.org/pywbem, om tagong te krijen ta opslachsystemen fia CIM/WBEM, kinne jo PyWBEM brûke - in iepen boarne biblioteek skreaun yn Python, dy't ûntwikkelders en systeembehearders in ymplemintaasje fan it CIM-protokol leveret foar tagong ta CIM-objekten en it útfieren fan ferskate operaasjes mei in WBEM-tsjinner dy't wurket yn yn oerienstimming mei SMI-S of oare CIM spesifikaasjes.

Om te ferbinen mei de WBEM-tsjinner brûke wy de klassekonstruktor WBEMConnection:

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

Dit is in firtuele ferbining, om't CIM-XML / WBEM boppe HTTP rint, komt de echte ferbining foar as metoaden wurde neamd op in eksimplaar fan 'e klasse WBEMConnection. Yn oerienstimming mei de IBM System Storage SAN Volume Controller en Storwize V7000 Best Practices and Performance Guidelines (Foarbyld C-8, side 412), wy sille brûke "root / ibm" as de CIM nammeromte foar de IBM Storwize opslach systeem.

Tink derom dat om statistiken te sammeljen fia it CIM-XML/WBEM-protokol, jo de brûker moatte opnimme yn 'e passende feiligensgroep. Oars, by it útfieren fan WBEM-fragen, sil de útfier fan klasse-eksimplaar-attributen leech wêze.

Om tagong te krijen ta opslachstatistiken, de brûker ûnder wa't de konstruktor wurdt neamd WBEMConnection(), moat op syn minst RestrictedAdmin hawwe (beskikber foar code_level> 7.8.0) of behearderrjochten (net oan te rieden om feiligens redenen).

Wy ferbine mei it opslachsysteem fia SSH en sjogge nei de groepnûmers:

> 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    

Foegje de zabbix-brûker ta oan de winske groep:

> chuser -usergrp 5 zabbix

Dêrneist, yn oerienstimming mei de IBM System Storage SAN Volume Controller en Storwize V7000 Best Practices en Performance Guidelines (s. 415), Jo moatte ynskeakelje statistyk kolleksje op de opslach systeem. Dus, om elke minút statistyk te sammeljen:

> startstats -interval 1 

Wy kontrolearje:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Om alle besteande opslachklassen te krijen, moatte jo de metoade EnumerateClassNames () brûke.

Foarbyld:

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

De metoade wurdt brûkt om de wearden fan parameters fan opslachsysteem te krijen EnumerateInstances() klasse WBEMConnection, jout in list mei eksimplaren werom CIMInstance().

Foarbyld:

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

Foar guon klassen dy't in grut oantal eksimplaren befetsje, lykas IBMTSSVC_StorageVolume, kin in folsleine query fan alle eksimplaren frij stadich wêze. It kin generearje grutte folumes fan gegevens dy't moatte wurde taret troch it opslach systeem, oerdroegen oer it netwurk en ferwurke troch it skript. Der is in metoade foar sa'n gefal ExecQuery(), wêrtroch't wy allinich de eigenskippen krije fan in klasse-eksimplaar dy't ús ynteressearje. Dizze metoade omfettet it brûken fan in SQL-like query-taal, itsij CIM Query Language (DMTF: CQL) of WBEM Query Language (WQL), om CIM-opslachobjekten te freegjen:

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

Om te bepalen hokker klassen wy moatte krije de parameters fan opslach objekten, lês de dokumintaasje, bygelyks Hoe systeembegripen yn kaart bringe nei CIM-begripen.

Dus, om parameters (net prestaasjestellers) fan fysike skiven (Disk Drives) te krijen, sille wy Class IBMTSSVC_DiskDrive ûndersiikje, om Volumes-parameters te krijen - Klasse IBMTSSVC_StorageVolume, om arrayparameters te krijen - Klasse IBMTSSVC_Array, om MDisks-parameters te krijen - Klasse IBMTSSVume_BackendVol.

Foar prestaasjes kinne jo lêze Funksjonele diagrammen fan de Common Information Model agent (spesifyk - Blokkearje tsjinner prestaasjes subprofyl) en IBM System Storage SAN Volume Controller en Storwize V7000 Best Practices and Performance Guidelines (Foarbyld C-11, side 415).

Foar in fa opslach statistyk foar Volumes, Jo moatte opjaan IBMTSVC_StorageVolumeStatistics as de wearde fan de ClassName parameter. De eigenskippen fan 'e klasse IBMTSSVC_StorageVolumeStatistics dy't nedich binne foar it sammeljen fan statistiken kinne wurde besjoen yn Node Statistics.

Ek kinne jo foar prestaasjesanalyse de klassen brûke IBMTSSVC_BackendVolumeStatistics, IBMTSVC_DiskDriveStatistics, IBMTSVC_NodeStatistics.

Om gegevens op te nimmen yn it tafersjochsysteem sille wy it meganisme brûke zabbix trapen, ymplementearre yn python yn in module py-zabbix. Wy sille de struktuer fan opslachsystemenklassen en har eigenskippen pleatse yn in wurdboek yn JSON-formaat.

Wy uploade it sjabloan nei de Zabbix-tsjinner, soargje derfoar dat de tafersjochtsjinner tagong hat ta it opslachsysteem fia it WEB-protokol (TCP/5989), en pleatse konfiguraasjetriemmen, deteksje- en tafersjochskripts op 'e monitorserver. Foegje dan skriptstart ta oan 'e planner. As resultaat: wy ûntdekke opslachobjekten (arrays, fysike en firtuele skiven, kasten en folle mear), ferpleatse se nei Zabbix-ûntdekkingen, lêze de status fan har parameters, lêze prestaasjesstatistiken (prestaasjestellers), drage dit alles oer nei de oerienkommende Zabbix Items fan ús sjabloan.

Zabbix-sjabloan, python-skripts, struktuer fan opslachklassen en har eigenskippen, lykas foarbylden fan konfiguraasjebestannen, kinne jo fine hjir.

Boarne: www.habr.com

Add a comment