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:
- CIM/WBEM protokollok;
- (az IBM Storwize támogatja a 8.1.3-as szoftververziótól kezdve);
- SNMP csapdák (korlátozott számú csapda, nincs statisztika);
- SSH kapcsolat, majd távoli .
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.
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 . A Storage Management Initiative – Specifikáció nyílt szabványokon alapul и meghatározott .
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 és Az SMI implementáció fő összetevője a WBEM szerver, amely a WBEM kliensektől (esetünkben a megfigyelő szkriptekből) érkező CIM-XML kéréseket dolgozza fel:

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 , 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 :
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 , 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 A WBEMConnection osztály a példányok listáját adja vissza .
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 , 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 .
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 (kimondottan - ) é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 .
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 , pythonban implementálva egy modulban . 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 .
Forrás: will.com
