IBM Storwize tárhely figyelése a Zabbix segítségével

Ebben a cikkben egy kicsit az IBM Storwize tárolórendszerek és más, CIM / WBEM protokollokat támogató tárolórendszerek figyeléséről fogunk beszélni. Az ilyen ellenőrzés szükségessége kimarad a zárójelekből, ezt axiómának fogjuk tekinteni. A Zabbixot felügyeleti rendszerként fogjuk használni.

A Zabbix legújabb verzióiban a vállalat sokkal nagyobb figyelmet kezdett fordítani a sablonokra - megjelentek a sablonok a szolgáltatások, a DBMS, a szerver hardver (IMM / iBMC) megfigyeléséhez az IPMI-n keresztül. A tárhelyfigyelés még mindig készen áll, ezért a tárolási összetevők állapotával és teljesítményével kapcsolatos információk Zabbixba való integrálásához egyéni sablonokat kell használnia. Figyelmébe ajánlom az egyik ilyen sablont.

Először is, egy kis elmélet.

Az IBM Storwize tárhely állapotának és statisztikáinak eléréséhez a következőket használhatja:

  1. CIM/WBEM protokollok;
  2. RESTful API (az IBM Storwize támogatja a 8.1.3-as szoftververziótól kezdve);
  3. SNMP csapdák (korlátozott számú csapda, nincs statisztika);
  4. SSH kapcsolat, majd távoli könnyed bash szkriptelésre alkalmas.

Az érdeklődők a különböző ellenőrzési módszerekről a szállítói dokumentáció megfelelő rovataiban, valamint a dokumentumban tájékozódhatnak. IBM Spectrum Virtualize parancsfájlok.

A CIM / WBEM protokollokat fogjuk használni, amelyek lehetővé teszik a tárolórendszer paramétereinek megszerzését a különböző tárolórendszerek szoftverének jelentős változtatása nélkül. A CIM/WBEM protokollok a szerint működnek Storage Management Initiative Specification (SMI-S). A Storage Management Initiative – Specifikáció nyílt szabványokon alapul CIM (közös információs modell) и WBEM (Web Based Enterprise Management)meghatározott Elosztott Menedzsment Munkacsoport.

A WBEM a HTTP protokollon felül működik. A WBEM-en keresztül nem csak tárolórendszerekkel, hanem HBA-kkal, kapcsolókkal és szalagos könyvtárakkal is dolgozhat.

Szerint SMI architektúra и Határozza meg az infrastruktúrát, az SMI implementáció fő összetevője a WBEM szerver, amely feldolgozza a WBEM kliensek CIM-XML kéréseit (esetünkben a megfigyelő szkriptekből):

IBM Storwize tárhely figyelése a Zabbix segítségével

A CIM egy objektumorientált modell, amely az egységes modellezési nyelven (UML) alapul.
A felügyelt elemek olyan CIM-osztályok, amelyek tulajdonságokkal és metódusokkal rendelkeznek a felügyelt adatok és funkciók megjelenítésére.

Szerint www.snia.org/pywbem, a tárhelyhez CIM/WBEM-en keresztül történő hozzáféréshez használhatja a PyWBEM-et, egy Pythonban írt nyílt forráskódú könyvtárat, amely a fejlesztők és rendszergazdák számára biztosítja a CIM protokoll megvalósítását a CIM objektumok eléréséhez és különféle műveletek végrehajtásához az SMI szerint működő WBEM szerverrel. -S vagy más CIM specifikációk.

A WBEM-kiszolgálóhoz való csatlakozáshoz használja az osztálykonstruktort WBEMConnection:

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

Ez egy virtuális kapcsolat, mivel a CIM-XML/WBEM HTTP-n keresztül fut, a tényleges kapcsolat akkor jön létre, amikor metódusokat hívnak meg a WBEMConnection osztály egy példányán. Az IBM System Storage SAN kötetvezérlővel és a Storwize V7000 legjobb gyakorlataira és teljesítményére vonatkozó irányelveivel összhangban (C-8. példa, 412. o.) a „root/ibm”-et fogjuk használni az IBM Storwize tárhely CIM névtereként.

Kérjük, vegye figyelembe, hogy a CIM-XML/WBEM protokollra vonatkozó statisztikák gyűjtéséhez fel kell vennie a felhasználót a megfelelő biztonsági csoportba. Ellenkező esetben a WBEM lekérdezések végrehajtásakor az osztálypéldány attribútumainak kimenete üres lesz.

A tárolási statisztikák eléréséhez az a felhasználó, aki alatt a konstruktor meg van hívva WBEMConnection(), legalább RestrictedAdmin (elérhető kód_szint > 7.8.0 esetén) vagy Rendszergazda (biztonsági okokból nem ajánlott) rendelkeznie kell.

SSH-n keresztül csatlakozunk a tárolórendszerhez, és megnézzük a csoportszámokat:

> 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    

Adja hozzá a zabbix felhasználót a kívánt csoporthoz:

> chuser -usergrp 5 zabbix

Ezenkívül az IBM System Storage SAN Volume Controller és a Storwize V7000 legjobb gyakorlatok és teljesítmény irányelveinek (415. oldal) megfelelően engedélyeznie kell a statisztikai adatok gyűjtését a tárolórendszeren. Tehát, hogy percenként gyűjtsünk statisztikákat:

> startstats -interval 1 

Ellenőrizzük:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Az összes meglévő tárolási osztály lekéréséhez az EnumerateClassNames() metódust kell használnia.

Példa:

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

A tárolórendszer paramétereinek értékeinek megszerzéséhez a módszer Enumerate Instances() A WBEMConnection osztály a példányok listáját adja vissza CIMInstance().

Példa:

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

Egyes osztályok esetében, amelyek nagy számú példányt tartalmaznak, mint például az IBMTSSVC_StorageVolume, az összes példány teljes lekérdezése meglehetősen lassú lehet. Nagy mennyiségű adatot képes előállítani, amelyet a tárolórendszernek kell előkészítenie, továbbítania a hálózaton, és egy parancsfájl segítségével kell feldolgoznia. Ilyen esetre van egy módszer ExecQuery(), amivel csak az osztálypéldány számunkra érdekes tulajdonságait kaphatjuk meg. Ez a módszer egy SQL-szerű lekérdezési nyelv, CIM Query Language (DMTF:CQL) vagy WBEM Query Language (WQL) használatát foglalja magában a CIM tárolóobjektumok lekérdezéséhez:

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

Annak meghatározásához, hogy mely osztályokba kell beszereznünk a tárolóobjektumok paramétereit, elolvassuk például a dokumentációt Hogyan képezik le a rendszerfogalmak a CIM-fogalmakat.

Tehát a fizikai lemezek (Disk Drives) paramétereinek (nem teljesítményszámlálóinak) lekéréséhez lekérdezzük az IBMTSSVC_DiskDrive osztályt, hogy megkapjuk a Volumes paramétereket - IBMTSSVC_StorageVolume osztály, a tömbparaméterek lekéréséhez - az IBMTSSVC_Array osztály, az MDisks paraméterek lekéréséhez - az IBMTSSVC_BackendVolume osztály stb.

A teljesítményről olvashatsz A Common Information Model ügynök funkcionális diagramjai (kimondottan - A szerver teljesítmény-alprofiljának blokkolása) és az IBM System Storage SAN Volume Controller és a Storwize V7000 legjobb gyakorlataira és teljesítményére vonatkozó irányelvei (C-11. példa, 415. oldal).

A kötetek tárolási statisztikáinak megtekintéséhez meg kell adnia az IBMTSSVC_StorageVolumeStatistics értéket a ClassName paraméter értékeként. Az IBMTSSVC_StorageVolumeStatistics osztály statisztikagyűjtéshez szükséges tulajdonságait a Csomóponti statisztika.

A teljesítmény elemzéséhez használhatja az IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics osztályokat is.

Az adatok felügyeleti rendszerbe írásához a mechanizmust fogjuk használni zabbix csapdák, pythonban implementálva egy modulban py-zabbix. A tárolási osztályok szerkezete és tulajdonságai egy JSON formátumú szótárba kerülnek.

Feltöltjük a sablont a Zabbix szerverre, megbizonyosodunk arról, hogy a felügyeleti szerver WEB protokollon (TCP / 5989) keresztül hozzáfér a tárhelyhez, elhelyezzük a konfigurációs fájlokat, az észlelési és megfigyelési szkripteket a megfigyelő szerveren. Ezután adjon hozzá szkripteket az ütemezőhöz. Ennek eredményeként: tárolóobjektumokat (tömböket, fizikai és virtuális lemezeket, burkolatokat és még sok mást) fedezünk fel, átadjuk a Zabbix felfedezéseknek, leolvassuk a paramétereik állapotát, kiolvassuk a teljesítménystatisztikát (teljesítményszámlálók), mindezt átvisszük a megfelelő helyre. Zabbix Sablonunk elemei.

A Zabbix sablon, a python szkriptek, a tárolási osztályok szerkezete és tulajdonságaik, valamint a konfigurációs fájlok példái itt találja.

Forrás: will.com

Hozzászólás