Iwwerwachung IBM Storwize Stockage mat Zabbix

An dësem Artikel schwätze mir e bëssen iwwer Iwwerwaachung vun IBM Storwize Späichersystemer an aner Späichersystemer déi d'CIM / WBEM Protokoller ënnerstëtzen. De Besoin fir sou Iwwerwaachung ass aus der Equatioun gelooss; mir wäerten dëst als Axiom betruechten. Mir wäerten Zabbix als Iwwerwaachungssystem benotzen.

An de leschte Versioune vun Zabbix huet d'Firma ugefaang vill méi Opmierksamkeet op Templates ze bezuelen - Templates hunn ugefaang fir Iwwerwaachungsservicer, DBMS, Server Hardware (IMM / iBMC) iwwer IPMI ze erschéngen. Späichersystem Iwwerwaachung ass nach ëmmer ausserhalb vun de Templates aus der Këscht, also fir Informatioun iwwer de Status an d'Leeschtung vun de Späicherkomponenten an Zabbix z'integréieren, musst Dir personaliséiert Templates benotzen. Ech bréngen op Är Opmierksamkeet ee vun dëse Schabloune.

Éischt eng kléng Theorie.

Fir Zougang zum Status an Statistike vun IBM Storwize Späichersystemer ze kréien, kënnt Dir benotzen:

  1. CIM / WBEM Protokoller;
  2. RESTful API (ënnerstëtzt an IBM Storwize ugefaange mat Software Versioun 8.1.3);
  3. SNMP Fallen (limitéiert Set vu Fallen, keng Statistiken);
  4. Connect iwwer SSH an dann op afstand gëeegent fir gemittlech bash scripting.

Déi interesséiert kënne méi iwwer verschidde Iwwerwaachungsmethoden an de relevante Sektioune vun der Verkeeferdokumentatioun léieren, souwéi am Dokument IBM Spectrum Virtualize Scripting.

Mir wäerten d'CIM / WBEM Protokoller benotzen, déi et eis erlaben Stockage System Betribssystemer Parameteren ouni bedeitend Software Ännerungen fir verschidde Stockage Systemer ze kréien. D'CIM / WBEM Protokoller funktionnéieren am Aklang mat Storage Management Initiative Spezifikatioun (SMI-S). Storage Management Initiative - Spezifizéierung baséiert op oppene Standarden CIM (Common Information Model) и WBEM (Web-Based Enterprise Management), bestëmmt Verdeelt Management Task Force.

WBEM leeft uewen um HTTP-Protokoll. Duerch WBEM kënnt Dir net nëmme mat Späichersystemer schaffen, awer och mat HBAs, Schalter a Bandbibliothéiken.

Nëmmen SMI Architektur и Bestëmmen Infrastruktur, den Haaptkomponent vun der SMI-Implementatioun ass de WBEM-Server, deen CIM-XML-Ufroe vu WBEM-Clienten veraarbecht (an eisem Fall vu Iwwerwaachungsskripter):

Iwwerwachung IBM Storwize Stockage mat Zabbix

CIM ass en objektorientéierte Modell baséiert op Unified Modeling Language (UML).
Managed Elementer ginn als CIM Klassen definéiert déi Eegeschaften a Methoden hunn fir verwalteten Daten a Funktionalitéit ze representéieren.

Nëmmen www.snia.org/pywbem, fir Zougang zu Späichersystemer iwwer CIM / WBEM ze kréien, kënnt Dir PyWBEM benotzen - eng Open Source Bibliothéik geschriwwen am Python, déi Entwéckler a Systemadministratoren eng Implementatioun vum CIM Protokoll bitt fir Zougang zu CIM Objeten a verschidde Operatiounen mat engem WBEM Server ze maachen, deen an am Aklang mat SMI-S oder aner CIM Spezifikatioune.

Fir mat dem WBEM Server ze verbannen benotze mir de Klassenkonstruktor WBEMConnection:

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

Dëst ass eng virtuell Verbindung, well CIM-XML / WBEM uewen op HTTP leeft, geschitt déi richteg Verbindung wann Methoden op eng Instanz vun der WBEMConnection Klass genannt ginn. Am Aklang mat dem IBM System Storage SAN Volume Controller a Storwize V7000 Best Practices a Performance Richtlinnen (Beispill C-8, Säit 412), wäerte mir "root / ibm" als CIM Nummraum fir IBM Storwize Stockage System benotzen.

Notéiert w.e.g. datt fir Statistiken iwwer de CIM-XML/WBEM Protokoll ze sammelen, musst Dir de Benotzer an de passenden Sécherheetsgrupp enthalen. Soss, wann Dir WBEM Ufroen ausféiert, wäert d'Ausgab vun Klass Instanz Attributer eidel sinn.

Fir Zougang zu Späicherstatistiken ze kréien, de Benotzer ënner deem de Konstruktor genannt gëtt WBEMConnection(), muss op d'mannst RestrictedAdmin hunn (disponibel fir code_level> 7.8.0) oder Administrator Rechter (net aus Sécherheetsgrënn recommandéiert).

Mir verbannen mam Späichersystem iwwer SSH a kucken d'Gruppnummeren:

> 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    

Füügt den Zabbix Benotzer an de gewënschten Grupp:

> chuser -usergrp 5 zabbix

Zousätzlech, am Aklang mat der IBM System Stockage SAN Volume Controller an Storwize V7000 Best Practices a Performance Richtlinnen (S. 415), Dir musst Statistiken Kollektioun op de Stockage System aktivéieren. Also, fir all Minutt Statistiken ze sammelen:

> startstats -interval 1 

Mir iwwerpréiwen:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Ze kréien all bestehend Stockage Klassen, Dir musst der Method EnumerateClassNames benotzen ().

Beispill:

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

D'Method gëtt benotzt fir d'Wäerter vun de Späichersystemparameter ze kréien EnumerateInstances() Klass WBEMConnection, eng Lëscht vun Instanzen zréck CIMInstance().

Beispill:

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

Fir e puer Klassen déi eng grouss Zuel vun Instanzen enthalen, wéi IBMTSSVC_StorageVolume, kann eng voll Ufro vun all Instanzen zimlech lues sinn. Et kann grouss Bänn vun Daten generéieren, déi vum Späichersystem virbereet musse ginn, iwwer de Netz iwwerdroen a vum Skript veraarbecht ginn. Et gëtt eng Method fir esou e Fall ExecQuery(), wat eis erlaabt nëmmen d'Eegeschafte vun enger Klassinstanz ze kréien, déi eis interesséieren. Dës Method beinhalt d'Benotzung vun enger SQL-ähnlecher Ufrosprooch, entweder CIM Query Language (DMTF: CQL) oder WBEM Query Language (WQL), fir CIM Späicherobjekter ze froen:

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

Fir festzestellen, wéi eng Klassen mir brauchen fir d'Parameter vun de Späicherobjekter ze kréien, liest zum Beispill d'Dokumentatioun Wéi System Konzepter Kaart op CIM Konzepter.

Also, fir Parameteren ze kréien (net Leeschtungscounter) vu kierperlechen Disken (Disk Drive) wäerte mir Class IBMTSSVC_DiskDrive pollen, Volumes Parameteren kréien - Class IBMTSSVC_StorageVolume, fir Arrayparameter ze kréien - Class IBMTSSVC_Array, MDisks Parameteren ze kréien - Class IBMTSSVume_BackendVol.

Fir Leeschtung kënnt Dir liesen Funktionell Diagrammer vum Common Information Model Agent (speziell - Block Server Leeschtung Ënnerprofil) an IBM System Storage SAN Volume Controller a Storwize V7000 Best Practices and Performance Guidelines (Beispill C-11, Säit 415).

Fir Späicherstatistike fir Volumen ze kréien, musst Dir IBMTSSVC_StorageVolumeStatistics als Wäert vum ClassName Parameter uginn. D'Eegeschafte vun der Klass IBMTSSVC_StorageVolumeStatistics néideg fir Statistiken ze sammelen kënnen an Node Statistiken.

Och fir Leeschtungsanalyse kënnt Dir d'Klassen IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics benotzen.

Fir Daten an den Iwwerwaachungssystem opzehuelen, benotze mir de Mechanismus zabbix Fallen, am Python an engem Modul implementéiert py-zabbix. Mir setzen d'Struktur vun de Späichersystemer Klassen an hir Eegeschaften an engem Wierderbuch am JSON Format.

Mir lued d'Schabloun op den Zabbix-Server erop, vergewëssert Iech datt den Iwwerwaachungsserver Zougang zum Späichersystem iwwer de WEB-Protokoll (TCP/5989) huet a Konfiguratiounsdateien, Detektiouns- an Iwwerwaachungsskripter op den Iwwerwaachungsserver setzen. Als nächst füügt de Skriptstart un de Scheduler. Als Resultat: Mir entdecken Späicherobjekter (Arrays, physesch a virtuell Disken, Enclosures a vill méi), transferéieren se op Zabbix Entdeckungen, liesen de Status vun hiren Parameteren, liesen d'Leeschtungsstatistiken (Leeschtungszieler), iwwerdroen dat alles op de entspriechende Zabbix Elementer vun eiser Schabloun.

Zabbix Template, Python Scripten, Struktur vu Späicherklassen an hir Eegeschaften, souwéi Beispiller vu Konfiguratiounsdateien, kënnt Dir fannen hei.

Source: will.com

Setzt e Commentaire