Monitering van IBM Storwize-berging met Zabbix

In hierdie artikel sal ons 'n bietjie praat oor die monitering van IBM Storwize-bergingstelsels en ander bergingstelsels wat die CIM/WBEM-protokolle ondersteun. Die behoefte aan sulke monitering word uit die vergelyking gelaat; ons sal dit as 'n aksioma beskou. Ons sal Zabbix as 'n moniteringstelsel gebruik.

In die nuutste weergawes van Zabbix het die maatskappy baie meer aandag aan sjablone begin gee - sjablone het begin verskyn vir monitering van dienste, DBMS, bedieners hardeware (IMM/iBMC) via IPMI. Stoorstelselmonitering is steeds buite die sjablone buite die boks, dus om inligting oor die status en werkverrigting van bergingskomponente in Zabbix te integreer, moet u pasgemaakte sjablone gebruik. Ek bring een van hierdie sjablone onder jou aandag.

Eerstens 'n bietjie teorie.

Om toegang tot die status en statistieke van IBM Storwize-bergingstelsels te verkry, kan jy:

  1. CIM/WBEM-protokolle;
  2. RESTful API (ondersteun in IBM Storwize vanaf sagteware weergawe 8.1.3);
  3. SNMP-valle (beperkte stel lokvalle, geen statistieke);
  4. Koppel via SSH en dan op afstand geskik vir rustige bash scripting.

Belangstellendes kan meer te wete kom oor verskeie moniteringsmetodes in die relevante afdelings van die verkoperdokumentasie, sowel as in die dokument IBM Spectrum Virtualiseer scripting.

Ons sal die CIM/WBEM-protokolle gebruik, wat ons toelaat om stoorstelselbedryfsparameters te verkry sonder beduidende sagtewareveranderings vir verskillende bergingstelsels. Die CIM/WBEM-protokolle werk in ooreenstemming met Bergingbestuursinisiatief-spesifikasie (SMI-S). Bergingsbestuursinisiatief – Spesifikasie is gebaseer op oop standaarde CIM (Common Information Model) и WBEM (webgebaseerde ondernemingsbestuur), bepaal Verspreide Bestuurstaakspan.

WBEM loop bo-op die HTTP-protokol. Deur WBEM kan jy nie net met stoorstelsels werk nie, maar ook met HBA's, skakelaars en bandbiblioteke.

Volgens SMI argitektuur и Bepaal infrastruktuur, is die hoofkomponent van die SMI-implementering die WBEM-bediener, wat CIM-XML-versoeke van WBEM-kliënte verwerk (in ons geval, vanaf moniteringsskrifte):

Monitering van IBM Storwize-berging met Zabbix

CIM is 'n objekgeoriënteerde model gebaseer op Unified Modeling Language (UML).
Bestuurde elemente word gedefinieer as CIM-klasse wat eienskappe en metodes het om bestuurde data en funksionaliteit voor te stel.

Volgens www.snia.org/pywbem, om toegang tot bergingstelsels via CIM/WBEM te verkry, kan jy PyWBEM gebruik - 'n oopbron-biblioteek geskryf in Python, wat ontwikkelaars en stelseladministrateurs voorsien van 'n implementering van die CIM-protokol vir toegang tot CIM-voorwerpe en om verskeie bewerkings uit te voer met 'n WBEM-bediener wat in in ooreenstemming met SMI-S of ander CIM-spesifikasies.

Om aan die WBEM-bediener te koppel, gebruik ons ​​die klaskonstruktor WBEMCneksie:

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

Dit is 'n virtuele verbinding, aangesien CIM-XML/WBEM bo-op HTTP loop, vind die werklike verbinding plaas wanneer metodes op 'n instansie van die WBEMConnection-klas geroep word. In ooreenstemming met die IBM System Storage SAN Volume Controller en Storwize V7000 Beste Praktyke en Prestasieriglyne (Voorbeeld C-8, bladsy 412), sal ons "root/ibm" as die CIM-naamruimte vir die IBM Storwize-bergingstelsel gebruik.

Neem asseblief kennis dat om statistieke in te samel via die CIM-XML/WBEM-protokol, jy die gebruiker by die toepaslike sekuriteitsgroep moet insluit. Andersins, wanneer WBEM-navrae uitgevoer word, sal die uitvoer van klasinstansiekenmerke leeg wees.

Om toegang tot bergingstatistieke te verkry, die gebruiker onder wie die konstruktor geroep word WBEMConnection(), moet ten minste RestrictedAdmin (beskikbaar vir kode_vlak > 7.8.0) of administrateurregte hê (nie aanbeveel vir sekuriteitsredes nie).

Ons koppel aan die stoorstelsel via SSH en kyk na die groepnommers:

> 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    

Voeg die zabbix-gebruiker by die gewenste groep:

> chuser -usergrp 5 zabbix

Daarbenewens, in ooreenstemming met die IBM System Storage SAN Volume Controller en Storwize V7000 Beste Praktyke en Prestasieriglyne (bl. 415), moet jy statistieke insameling op die bergingstelsel aktiveer. Dus, om elke minuut statistieke in te samel:

> startstats -interval 1 

Ons kyk na:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Om alle bestaande bergingsklasse te kry, moet jy die EnumerateClassNames() metode gebruik.

Voorbeeld:

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

Die metode word gebruik om die waardes van stoorstelselparameters te verkry EnumerateInstances() klas WBEMConnection, gee 'n lys van gevalle terug CIMInstance().

Voorbeeld:

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

Vir sommige klasse wat 'n groot aantal gevalle bevat, soos IBMTSSVC_StorageVolume, kan 'n volledige navraag van alle gevalle redelik stadig wees. Dit kan groot volumes data genereer wat deur die stoorstelsel voorberei moet word, oor die netwerk versend en deur die skrif verwerk moet word. Daar is 'n metode vir so 'n geval ExecQuery(), wat ons toelaat om slegs die eienskappe van 'n klasgeval te kry wat ons interesseer. Hierdie metode behels die gebruik van 'n SQL-agtige navraagtaal, hetsy CIM Query Language (DMTF:CQL) of WBEM Query Language (WQL), om CIM-bergingsvoorwerpe te bevraagteken:

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

Om te bepaal watter klasse ons nodig het om die parameters van stoorvoorwerpe te verkry, lees byvoorbeeld die dokumentasie Hoe stelselkonsepte na CIM-konsepte karteer.

Dus, om parameters (nie prestasietellers nie) van fisiese skywe (Disk Drives) te verkry, sal ons Klas IBMTSSVC_DiskDrive bekom, om Volumes-parameters te verkry - Klas IBMTSSVC_StorageVolume, om skikkingsparameters te verkry - Klas IBMTSSVC_Array, om MDisks-parameters te verkry - Klas IBMTSSVume_BackendVol.

Vir prestasie kan jy lees Funksionele diagramme van die Common Information Model-agent (spesifiek - Blokkeer bedienerprestasie-subprofiel) en IBM System Storage SAN Volume Controller en Storwize V7000 Beste Praktyke en Werkverrigtingriglyne (Voorbeeld C-11, bladsy 415).

Om bergingstatistieke vir Volumes te verkry, moet jy IBMTSSVC_StorageVolumeStatistics spesifiseer as die waarde van die ClassName-parameter. Die eienskappe van die IBMTSSVC_StorageVolumeStatistics-klas wat nodig is vir die insameling van statistieke kan bekyk word in Node Statistiek.

Ook, vir prestasie-analise kan jy die klasse IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics gebruik.

Om data in die moniteringstelsel aan te teken, sal ons die meganisme gebruik zabbix lokvalle, geïmplementeer in python in 'n module py-zabbix. Ons sal die struktuur van bergingstelselklasse en hul eienskappe in 'n woordeboek in JSON-formaat plaas.

Ons laai die sjabloon op na die Zabbix-bediener, maak seker dat die moniteringsbediener toegang het tot die stoorstelsel via die WEB-protokol (TCP/5989), en plaas konfigurasielêers, opsporing en moniteringskrifte op die moniteringsbediener. Voeg dan script launch by die skeduleerder. As gevolg hiervan: ons ontdek stoorvoorwerpe (skikkings, fisiese en virtuele skywe, omhulsels en nog baie meer), dra dit oor na Zabbix-ontdekkings, lees die status van hul parameters, lees prestasiestatistieke (prestasietellers), dra dit alles oor na die ooreenstemmende Zabbix Items van ons sjabloon.

Zabbix-sjabloon, python-skrifte, struktuur van bergingsklasse en hul eienskappe, sowel as voorbeelde van konfigurasielêers, kan u vind hier.

Bron: will.com

Voeg 'n opmerking