IBM Storwize -tallennustilan valvonta Zabbixin avulla

Tässä artikkelissa puhumme hieman IBM Storwize -tallennusjärjestelmien ja muiden CIM/WBEM-protokollia tukevien tallennusjärjestelmien valvonnasta. Tällaisen seurannan tarve on jätetty pois yhtälöstä; pidämme tätä aksioomana. Käytämme Zabbixia valvontajärjestelmänä.

Zabbixin uusimmissa versioissa yritys alkoi kiinnittää paljon enemmän huomiota malleihin - malleja alkoi ilmestyä valvontapalveluille, DBMS:lle, palvelinlaitteistolle (IMM/iBMC) IPMI:n kautta. Tallennusjärjestelmän valvonta on edelleen mallien ulkopuolella, joten sinun on käytettävä mukautettuja malleja, jotta voit integroida tiedot tallennuskomponenttien tilasta ja suorituskyvystä Zabbixiin. Tuon huomionne yhden näistä malleista.

Ensinnäkin pieni teoria.

Voit tarkastella IBM Storwize -tallennusjärjestelmien tilaa ja tilastoja käyttämällä:

  1. CIM/WBEM-protokollat;
  2. RESTful API (tuettu IBM Storwizessa ohjelmistoversiosta 8.1.3 alkaen);
  3. SNMP Traps (rajoitettu joukko ansoja, ei tilastoja);
  4. Yhdistä SSH:n kautta ja sitten etänä sopii rauhattomaan bash-skripteihin.

Kiinnostuneet voivat tutustua erilaisiin valvontamenetelmiin toimittajan dokumentaation asianmukaisissa osioissa sekä asiakirjassa IBM Spectrum Virtualize -komentosarjat.

Käytämme CIM/WBEM-protokollia, joiden avulla voimme saada tallennusjärjestelmän toimintaparametrit ilman merkittäviä ohjelmistomuutoksia eri tallennusjärjestelmiin. CIM/WBEM-protokollat ​​toimivat tämän mukaisesti Storage Management Initiative -määritys (SMI-S). Storage Management Initiative – Specification perustuu avoimiin standardeihin CIM (Common Information Model) и WBEM (verkkopohjainen yrityshallinta), päättänyt Hajautetun hallinnan työryhmä.

WBEM toimii HTTP-protokollan päällä. WBEM:n avulla voit työskennellä tallennusjärjestelmien lisäksi myös HBA:iden, kytkimien ja nauhakirjastojen kanssa.

Mukaan SMI-arkkitehtuuri и Määritä infrastruktuuri, SMI-toteutuksen pääkomponentti on WBEM-palvelin, joka käsittelee CIM-XML-pyyntöjä WBEM-asiakkailta (meissä tapauksessa valvontaskripteistä):

IBM Storwize -tallennustilan valvonta Zabbixin avulla

CIM on UML (Unified Modeling Language) -kieleen perustuva oliomalli.
Hallitut elementit määritellään CIM-luokiksi, joilla on ominaisuuksia ja menetelmiä, jotka edustavat hallittua dataa ja toimintoja.

Mukaan www.snia.org/pywbem, päästäksesi tallennusjärjestelmiin CIM/WBEM:n kautta, voit käyttää PyWBEM:ää – Pythonilla kirjoitettua avoimen lähdekoodin kirjastoa, joka tarjoaa kehittäjille ja järjestelmänvalvojille CIM-protokollan toteutuksen CIM-objektien käyttämiseen ja erilaisten toimintojen suorittamiseen WBEM-palvelimella, joka toimii SMI-S:n tai muiden CIM-määritysten mukaisesti.

Yhdistääksemme WBEM-palvelimeen käytämme luokkakonstruktoria WBEMConnection:

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

Tämä on virtuaalinen yhteys, koska CIM-XML/WBEM toimii HTTP:n päällä, todellinen yhteys syntyy, kun menetelmiä kutsutaan WBEMConnection-luokan esiintymässä. IBM System Storage SAN Volume Controllerin ja Storwize V7000 Best Practices and Performance Guidelines -ohjeiden (esimerkki C-8, sivu 412) mukaisesti käytämme IBM Storwize -tallennusjärjestelmän CIM-nimiavaruudena "root/ibm".

Huomaa, että jos haluat kerätä tilastoja CIM-XML/WBEM-protokollan kautta, sinun on sisällytettävä käyttäjä sopivaan suojausryhmään. Muussa tapauksessa WBEM-kyselyitä suoritettaessa luokan ilmentymien attribuuttien tulos on tyhjä.

Tallennustilastoihin pääsee käsiksi käyttäjä, jonka alaisuudessa konstruktoria kutsutaan WBEMConnection(), on oltava vähintään RestrictedAdmin (saatavilla kooditasolle > 7.8.0) tai järjestelmänvalvojan oikeudet (ei suositella turvallisuussyistä).

Yhdistämme tallennusjärjestelmään SSH:n kautta ja katsomme ryhmänumeroita:

> 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    

Lisää zabbix-käyttäjä haluttuun ryhmään:

> chuser -usergrp 5 zabbix

Lisäksi IBM System Storage SAN Volume Controllerin ja Storwize V7000 Best Practices and Performance Guidelines -ohjeiden (s. 415) mukaisesti sinun on otettava käyttöön tilastotietojen kerääminen tallennusjärjestelmässä. Joten kerätäksesi tilastoja joka minuutti:

> startstats -interval 1 

tarkista:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Saadaksesi kaikki olemassa olevat tallennusluokat, sinun on käytettävä EnumerateClassNames()-metodia.

Esimerkiksi:

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

Menetelmää käytetään tallennusjärjestelmän parametrien arvojen saamiseksi EnumerateInstances() luokka WBEMConnection, palauttaa luettelon esiintymistä CIMInstance().

Esimerkiksi:

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

Joissakin luokissa, jotka sisältävät suuren määrän ilmentymiä, kuten IBMTSSVC_StorageVolume, kaikkien ilmentymien täydellinen kysely voi olla melko hidasta. Se voi tuottaa suuria määriä dataa, jotka tallennusjärjestelmän on valmisteltava, lähetettävä verkon yli ja käsiteltävä komentosarjalla. Tällaiseen tapaukseen on olemassa menetelmä ExecQuery(), jonka avulla voimme saada vain meitä kiinnostavan luokkaesiintymän ominaisuudet. Tässä menetelmässä käytetään SQL:n kaltaista kyselykieltä, joko CIM-kyselykieltä (DMTF:CQL) tai WBEM-kyselykieltä (WQL), CIM-tallennusobjektien kyselyyn:

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

Jos haluat määrittää, mitkä luokat meidän on hankittava tallennusobjektien parametrit, lue esimerkiksi dokumentaatio Miten järjestelmäkäsitteet yhdistetään CIM-konsepteihin.

Joten saadaksemme fyysisten levyjen (levyasemien) parametreja (ei suorituskykylaskureita), teemme kyselyn luokkaan IBMTSSVC_DiskDrive, saadaksemme Volumes-parametrit - luokka IBMTSSVC_StorageVolume, saadaksemme taulukkoparametrit - luokka IBMTSSVC_Array, saadaksemme MDiski-parametrit - luokka IBMTSSVC_BackendVolume jne.

Suorituskykyä varten voit lukea Yhteisen tietomallin agentin toiminnalliset kaaviot (erityisesti - Estä palvelimen suorituskyvyn aliprofiili) ja IBM System Storage SAN Volume Controller ja Storwize V7000 parhaat käytännöt ja suorituskykyohjeet (esimerkki C-11, sivu 415).

Jos haluat saada tallennustilastoja Volumeille, sinun on määritettävä IBMTSSVC_StorageVolumeStatistics ClassName-parametrin arvoksi. Tilastojen keräämiseen tarvittavat IBMTSSVC_StorageVolumeStatistics-luokan ominaisuudet ovat nähtävissä osoitteessa Solmutilastot.

Suorituskykyanalyysiin voit myös käyttää luokkia IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Käytämme mekanismia tietojen tallentamiseen valvontajärjestelmään zabbix ansoja, toteutettu pythonissa moduulissa py-zabbix. Sijoitamme tallennusjärjestelmäluokkien rakenteen ja niiden ominaisuudet sanakirjaan JSON-muodossa.

Lataamme mallin Zabbix-palvelimelle, varmistamme, että valvontapalvelimella on pääsy tallennusjärjestelmään WEB-protokollan (TCP/5989) kautta ja asetamme valvontapalvelimelle konfiguraatiotiedostot, tunnistus- ja valvontaskriptit. Lisää seuraavaksi komentosarjan käynnistys ajastimeen. Tuloksena: löydämme tallennusobjekteja (taulukoita, fyysisiä ja virtuaalisia levyjä, koteloita ja paljon muuta), siirrämme ne Zabbix-löytöihin, luemme niiden parametrien tilan, luemme suorituskykytilastot (suorituskykylaskurit), siirrämme kaiken vastaavaan Zabbixiin Mallimme kohteet.

Zabbix-malli, python-skriptit, tallennusluokkien rakenne ja niiden ominaisuudet sekä esimerkkejä asetustiedostoista, voit löytää täältä.

Lähde: will.com

Lisää kommentti