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ä:
- CIM/WBEM-protokollat;
- (tuettu IBM Storwizessa ohjelmistoversiosta 8.1.3 alkaen);
- SNMP Traps (rajoitettu joukko ansoja, ei tilastoja);
- Yhdistä SSH:n kautta ja sitten etänä .
Kiinnostuneet voivat tutustua erilaisiin valvontamenetelmiin toimittajan dokumentaation asianmukaisissa osioissa sekä asiakirjassa .
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 – Specification perustuu avoimiin standardeihin и , päättänyt .
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 ja SMI-toteutuksen pääkomponentti on WBEM-palvelin, joka käsittelee WBEM-asiakkaiden CIM-XML-pyyntöjä (tässä tapauksessa valvontaskripteistä):

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 , 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 :
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 , 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 luokka WBEMConnection, palauttaa luettelon esiintymistä .
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ä , 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 .
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 (erityisesti - ) 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 .
Suorituskykyanalyysiin voit myös käyttää luokkia IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.
Käytämme mekanismia tietojen tallentamiseen valvontajärjestelmään , toteutettu pythonissa moduulissa . 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ähde: will.com
