Pag-monitor sa pagtipig sa IBM Storwize gamit ang Zabbix

Niini nga artikulo maghisgot kita og gamay mahitungod sa pagmonitor sa IBM Storwize storage system ug uban pang storage system nga nagsuporta sa CIM/WBEM protocols. Ang panginahanglan alang sa ingon nga pag-monitor wala sa equation; atong tagdon kini nga usa ka axiom. Atong gamiton ang Zabbix isip monitoring system.

Sa pinakabag-o nga mga bersyon sa Zabbix, ang kompanya nagsugod sa paghatag ug dugang nga pagtagad sa mga templates - ang mga templates nagsugod sa pagpakita sa mga serbisyo sa pag-monitor, DBMS, Servers hardware (IMM/iBMC) pinaagi sa IPMI. Ang pag-monitor sa sistema sa pagtipig anaa gihapon sa gawas sa mga templates sa gawas sa kahon, mao nga aron mahiusa ang impormasyon mahitungod sa status ug performance sa mga sangkap sa pagtipig ngadto sa Zabbix, kinahanglan nimo nga gamiton ang custom templates. Gidala ko sa imong pagtagad ang usa niini nga mga templates.

Una, usa ka gamay nga teorya.

Aron ma-access ang status ug estadistika sa IBM Storwize storage system, mahimo nimong gamiton ang:

  1. Mga protocol sa CIM/WBEM;
  2. RESTful API (gisuportahan sa IBM Storwize sugod sa software nga bersyon 8.1.3);
  3. SNMP Traps (limitado nga hugpong sa mga lit-ag, walay estadistika);
  4. Sumpaysumpaya pinaagi sa SSH ug unya layo angayan alang sa lingaw nga bash scripting.

Kadtong mga interesado makakat-on og dugang mahitungod sa nagkalain-laing mga pamaagi sa pagmonitor sa may kalabutan nga mga seksyon sa dokumentasyon sa vendor, ingon man usab sa dokumento IBM Spectrum Virtualize scripting.

Gamiton namo ang mga protocol sa CIM/WBEM, nga nagtugot kanamo sa pagkuha sa mga parameter sa operating system sa storage nga walay mahinungdanong kausaban sa software alang sa lain-laing mga sistema sa pagtipig. Ang mga protocol sa CIM/WBEM naglihok subay sa Pagtino sa Inisyatibo sa Pagdumala sa Pagtipig (SMI-S). Inisyatibo sa Pagdumala sa Pagtipig - Ang espesipikasyon gibase sa bukas nga mga sumbanan CIM (Common Information Model) ΠΈ WBEM (Web-Based Enterprise Management), determinado Giapod-apod nga Task Force sa Pagdumala.

Ang WBEM nagdagan sa ibabaw sa HTTP protocol. Pinaagi sa WBEM mahimo ka nga magtrabaho dili lamang sa mga sistema sa pagtipig, apan usab sa mga HBA, switch ug mga librarya sa tape.

Sumala sa Arkitektura sa SMI ΠΈ Tinoa ang Imprastraktura, ang panguna nga bahin sa pagpatuman sa SMI mao ang WBEM server, nga nagproseso sa mga hangyo sa CIM-XML gikan sa mga kliyente sa WBEM (sa among kaso, gikan sa mga script sa pag-monitor):

Pag-monitor sa pagtipig sa IBM Storwize gamit ang Zabbix

Ang CIM usa ka object-oriented nga modelo base sa Unified Modeling Language (UML).
Ang gidumala nga mga elemento gihubit ingon nga mga klase sa CIM nga adunay mga kabtangan ug pamaagi aron magrepresentar sa gidumala nga datos ug gamit.

Sumala sa www.snia.org/pywbem, aron ma-access ang mga sistema sa pagtipig pinaagi sa CIM/WBEM, mahimo nimong gamiton ang PyWBEM - usa ka bukas nga gigikanan nga librarya nga gisulat sa Python, nga naghatag sa mga developer ug mga tagdumala sa sistema sa pagpatuman sa CIM protocol alang sa pag-access sa mga butang sa CIM ug paghimo sa lainlaing mga operasyon sa usa ka WBEM server nga naglihok sa. uyon sa SMI-S o uban pang mga detalye sa CIM.

Aron makonektar sa WBEM server gigamit namo ang tigtukod sa klase WBEMCkoneksyon:

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

Kini usa ka virtual nga koneksyon, tungod kay ang CIM-XML/WBEM midagan sa ibabaw sa HTTP, ang tinuod nga koneksyon mahitabo kung ang mga pamaagi gitawag sa usa ka pananglitan sa WBEMConnection nga klase. Subay sa IBM System Storage SAN Volume Controller ug Storwize V7000 Best Practices and Performance Guidelines (Pananglitan C-8, pahina 412), atong gamiton ang β€œroot/ibm” isip CIM namespace para sa IBM Storwize storage system.

Palihug timan-i nga aron makolekta ang mga estadistika pinaagi sa CIM-XML/WBEM protocol, kinahanglan nimong iapil ang user sa angay nga grupo sa seguridad. Kung dili, kung magpatuman sa mga pangutana sa WBEM, ang output sa mga kinaiya sa pananglitan sa klase mahimong walay sulod.

Aron ma-access ang mga estadistika sa pagtipig, ang tiggamit sa ilalum nga gitawag ang tigtukod WBEMConeksyon(), kinahanglan adunay labing menos RestrictedAdmin (anaa alang sa code_level > 7.8.0) o mga katungod sa Administrator (dili girekomenda alang sa mga hinungdan sa seguridad).

Nagkonektar kami sa sistema sa pagtipig pinaagi sa SSH ug tan-awa ang mga numero sa grupo:

> 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    

Idugang ang zabbix user sa gusto nga grupo:

> chuser -usergrp 5 zabbix

Dugang pa, uyon sa IBM System Storage SAN Volume Controller ug Storwize V7000 Best Practices and Performance Guidelines (p. 415), kinahanglan nimong palihokon ang pagkolekta sa estadistika sa sistema sa pagtipig. Busa, aron makolekta ang mga estadistika matag minuto:

> startstats -interval 1 

Pagsusi:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Aron makuha ang tanan nga mga klase sa pagtipig, kinahanglan nimo gamiton ang EnumerateClassNames() nga pamaagi.

Pananglitan:

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

Ang pamaagi gigamit aron makuha ang mga kantidad sa mga parameter sa sistema sa pagtipig EnumerateInstances() class WBEMConnection, nga nagbalik sa usa ka lista sa mga higayon CIMInstance().

Pananglitan:

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

Alang sa pipila ka mga klase nga adunay daghang mga higayon, sama sa IBMTSSVC_StorageVolume, ang usa ka tibuuk nga pangutana sa tanan nga mga higayon mahimo’g hinay. Makahimo kini og daghang mga volume sa datos nga kinahanglan nga andamon sa sistema sa pagtipig, nga gipasa sa network ug giproseso pinaagi sa script. Adunay usa ka pamaagi alang sa ingon nga kaso ExecQuery(), nga nagtugot kanato sa pagkuha lamang sa mga kabtangan sa usa ka klase nga pananglitan nga makapainteres kanato. Kini nga pamaagi naglakip sa paggamit ug SQL-sama sa pangutana nga pinulongan, CIM Query Language (DMTF:CQL) o WBEM Query Language (WQL), sa pagpangutana sa CIM storage objects:

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

Aron mahibal-an kung unsang mga klase ang kinahanglan naton makuha ang mga parameter sa mga butang sa pagtipig, basaha ang dokumentasyon, pananglitan Giunsa mapa ang mga konsepto sa sistema sa mga konsepto sa CIM.

Busa, aron makakuha og mga parameter (dili performance counters) sa mga pisikal nga disk (Disk Drives) atong i-poll ang Class IBMTSSVC_DiskDrive, aron makuha ang Volumes parameters - Class IBMTSSVC_StorageVolume, aron makakuha og array parameters - Class IBMTSSVC_Array, aron makuha ang MDisks parameters - Class IBMTSSVC_BackendVolume, etc.

Para sa performance mabasa nimo Functional nga mga diagram sa ahente sa Common Information Model (sa partikular- I-block ang subprofile sa performance sa server) ug IBM System Storage SAN Volume Controller ug Storwize V7000 Best Practices and Performance Guidelines (Pananglitan C-11, pahina 415).

Aron makakuha og mga estadistika sa pagtipig alang sa Volumes, kinahanglan nimong ipiho ang IBMTSSVC_StorageVolumeStatistics isip ang bili sa ClassName parameter. Ang mga kabtangan sa klase sa IBMTSSVC_StorageVolumeStatistics nga gikinahanglan alang sa pagkolekta sa mga estadistika mahimong tan-awon sa Estadistika sa Node.

Usab, alang sa pagtuki sa pasundayag mahimo nimong gamiton ang mga klase nga IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Aron marekord ang datos sa sistema sa pagmonitor among gamiton ang mekanismo mga lit-ag sa zabbix, gipatuman sa python sa usa ka module py-zabbix. Ibutang namon ang istruktura sa mga klase sa sistema sa pagtipig ug ang ilang mga kabtangan sa usa ka diksyonaryo sa format nga JSON.

Among i-upload ang template sa Zabbix server, siguroha nga ang monitoring server adunay access sa storage system pinaagi sa WEB protocol (TCP/5989), ug ibutang ang configuration files, detection ug monitoring scripts sa monitoring server. Sunod, idugang ang paglansad sa script sa scheduler. Ingon usa ka sangputanan: nahibal-an namon ang mga butang sa pagtipig (mga array, pisikal ug virtual nga mga disk, mga enclosure ug daghan pa), gibalhin kini sa mga nadiskobrehan sa Zabbix, gibasa ang kahimtang sa ilang mga parameter, gibasa ang mga istatistika sa pasundayag (mga kontra sa pasundayag), gibalhin tanan kini sa katugbang nga Zabbix Mga butang sa among template.

Ang template sa Zabbix, mga script sa python, istruktura sa mga klase sa pagtipig ug ang ilang mga kabtangan, ingon man mga pananglitan sa mga file sa pag-configure, mahimo nimo pangitaa diri.

Source: www.habr.com

Idugang sa usa ka comment