Ngawaskeun panyimpenan IBM Storwize sareng Zabbix

Dina artikel ieu kami bakal ngobrol saeutik ngeunaan ngawaskeun sistem panyimpenan IBM Storwize sareng sistem panyimpen sanés anu ngadukung protokol CIM / WBEM. Kabutuhan pikeun ngawaskeun sapertos kitu ditinggalkeun kaluar tina persamaan; urang bakal nganggap ieu aksioma. Kami bakal nganggo Zabbix salaku sistem ngawaskeun.

Dina vérsi panganyarna tina Zabbix, pausahaan mimiti nengetan leuwih kana témplat - témplat mimiti muncul pikeun layanan monitoring, DBMS, Server hardware (IMM/iBMC) via IPMI. Ngawaskeun sistem gudang masih di luar témplat out of the box, ku kituna pikeun ngahijikeun informasi ngeunaan status jeung kinerja komponén gudang kana Zabbix, anjeun kudu make témplat custom. Kuring mawa ka perhatian Anjeun salah sahiji template ieu.

Kahiji, téori saeutik.

Pikeun ngakses status sareng statistik sistem panyimpenan IBM Storwize, anjeun tiasa nganggo:

  1. protokol CIM/WBEM;
  2. API RESTful (dirojong di IBM Storwize dimimitian ku software versi 8.1.3);
  3. Perangkap SNMP (set perangkap terbatas, henteu aya statistik);
  4. Sambungkeun ngaliwatan SSH lajeng jarak jauh cocog pikeun scripting bash leisurely.

Anu kabetot tiasa diajar langkung seueur ngeunaan sababaraha metode ngawaskeun dina bagian anu relevan dina dokuméntasi vendor, ogé dina dokumén IBM Spectrum Virtualize scripting.

Urang bakal ngagunakeun CIM / protokol WBEM, nu ngidinan urang pikeun ménta parameter operasi sistem gudang tanpa parobahan software signifikan pikeun sistem gudang béda. Protokol CIM/WBEM beroperasi saluyu sareng Spésifikasi Inisiatif Manajemén Panyimpenan (SMI-S). Inisiatif Manajemén Panyimpenan - Spésifikasi dumasar kana standar terbuka CIM (Modél Émbaran Umum) и WBEM (Manajemén Perusahaan Berbasis Wéb), ditangtukeun Satgas Manajemén disebarkeun.

WBEM dijalankeun dina luhureun protokol HTTP. Ngaliwatan WBEM anjeun tiasa dianggo teu ukur mibanda sistem gudang, tapi ogé kalawan HBAs, switch jeung perpustakaan tape.

nurutkeun SMI Arsitéktur и Nangtukeun Infrastruktur, komponén utama palaksanaan SMI nyaéta server WBEM, anu ngolah pamundut CIM-XML ti klien WBEM (dina hal urang, tina skrip ngawaskeun):

Ngawaskeun panyimpenan IBM Storwize sareng Zabbix

CIM nyaéta modél berorientasi objék dumasar kana Unified Modeling Language (UML).
Unsur anu diurus dihartikeun salaku kelas CIM anu gaduh sipat sareng metode pikeun ngagambarkeun data sareng fungsionalitas anu diurus.

nurutkeun www.snia.org/pywbem, Pikeun ngakses sistem panyimpen via CIM / WBEM, anjeun tiasa nganggo PyWBEM - perpustakaan open source ditulis dina Python, nu nyadiakeun pamekar jeung administrator sistem kalawan palaksanaan protokol CIM pikeun ngakses objék CIM sarta ngajalankeun rupa operasi kalawan server WBEM operasi di. luyu jeung SMI-S atawa spésifikasi CIM séjén.

Pikeun nyambung ka server WBEM kami nganggo konstruktor kelas WBEMConnection:

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

Ieu sambungan virtual, saprak CIM-XML / WBEM dijalankeun dina luhureun HTTP, sambungan nyata lumangsung nalika métode disebut dina conto tina kelas WBEMConnection. Luyu jeung IBM System Storage SAN Volume Controller jeung Storwize V7000 Best Practices and Performance Guidelines (Conto C-8, kaca 412), urang bakal ngagunakeun "root / ibm" salaku namespace CIM pikeun sistem gudang IBM Storwize.

Punten dicatet yén pikeun ngumpulkeun statistik via protokol CIM-XML/WBEM, anjeun kedah ngalebetkeun pangguna dina grup kaamanan anu cocog. Upami teu kitu, nalika ngaéksekusi patarosan WBEM, kaluaran atribut conto kelas bakal kosong.

Pikeun ngakses statistik gudang, pamaké handapeun saha constructor disebut WBEMCconnection(), kudu boga sahenteuna RestrictedAdmin (sadia pikeun code_level > 7.8.0) atawa hak Administrator (teu dianjurkeun pikeun alesan kaamanan).

Urang nyambung ka sistem panyimpen via SSH sareng tingali nomer grup:

> 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    

Tambahkeun pamaké zabbix ka grup nu dipikahoyong:

> chuser -usergrp 5 zabbix

Sajaba ti éta, luyu jeung IBM System Storage San Volume Controller jeung Storwize V7000 Best Practices and Performance Guidelines (p. 415), anjeun kudu ngaktipkeun koleksi statistik dina sistem gudang. Janten, pikeun ngumpulkeun statistik unggal menit:

> startstats -interval 1 

Kami cek:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Pikeun meunang sagala kelas gudang aya, anjeun kudu make metoda EnumerateClassNames ().

contona:

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

Métode ieu dianggo pikeun kéngingkeun nilai parameter sistem panyimpen EnumerateInstances() kelas WBEMConnection, balik daptar instansi CIMInstance().

contona:

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

Pikeun sababaraha kelas nu ngandung angka nu gede ngarupakeun instansi, kayaning IBMTSSVC_StorageVolume, query pinuh sadaya instansi bisa jadi rada slow. Bisa ngahasilkeun volume badag data nu kudu disiapkeun ku sistem gudang, dikirimkeun ngaliwatan jaringan jeung diolah ku naskah. Aya metode pikeun kasus sapertos kitu ExecQuery(), anu ngamungkinkeun urang ngan ukur kéngingkeun sipat conto kelas anu dipikaresep ku urang. Metoda ieu ngalibatkeun ngagunakeun basa query kawas SQL, boh CIM Query Language (DMTF:CQL) atawa WBEM Query Language (WQL), pikeun naroskeun objék panyimpenan CIM:

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

Pikeun nangtukeun mana kelas urang kudu ménta parameter objék gudang, baca dokuméntasi, contona Kumaha peta konsép sistem kana konsép CIM.

Ku kituna, pikeun ménta parameter (sanes kinerja counters) tina disk fisik (Disk Drives) urang bakal polling Kelas IBMTSSVC_DiskDrive, pikeun ménta parameter Jilid - Kelas IBMTSSVC_StorageVolume, pikeun ménta parameter Asép Sunandar Sunarya - Kelas IBMTSSVC_Array, pikeun ménta parameter MDisks - Kelas IBMTSSVC_BackendVolume, jsb.

Pikeun pagelaran anjeun tiasa maca diagram fungsi tina agén Modél Émbaran umum (husus- Blok kinerja server subprofil) jeung IBM System Storage SAN Volume Controller jeung Storwize V7000 Best Practices and Performance Guidelines (Conto C-11, kaca 415).

Pikeun ménta statistik gudang pikeun Jilid, anjeun kudu nangtukeun IBMTSSVC_StorageVolumeStatistics salaku nilai tina parameter ClassName. Sipat kelas IBMTSSVC_StorageVolumeStatistics anu dipikabutuh pikeun ngumpulkeun statistik tiasa ditingali dina Statistik titik.

Ogé, pikeun analisa kinerja anjeun tiasa nganggo kelas IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Pikeun ngarékam data kana sistem ngawaskeun kami bakal ngagunakeun mékanisme sarap zabbix, dilaksanakeun dina python dina modul a py-zabbix. Kami bakal nempatkeun struktur kelas sistem panyimpen sareng pasipatanana dina kamus dina format JSON.

Urang unggah template ka server Zabbix, pastikeun yén server ngawaskeun boga aksés ka sistem gudang via protokol WEB (TCP / 5989), sarta nempatkeun file konfigurasi, deteksi jeung ngawaskeun Aksara dina server ngawaskeun. Salajengna, tambahkeun peluncuran naskah kana scheduler. Hasilna: urang mendakan objék panyimpen (arrays, disk fisik sareng virtual, enclosures sareng seueur deui), mindahkeun kana pamanggihan Zabbix, maca status parameterna, maca statistik kinerja (counter kinerja), mindahkeun sadaya ieu ka Zabbix anu saluyu. Item template urang.

Citakan Zabbix, skrip python, struktur kelas panyimpenan sareng pasipatanana, kitu ogé conto file konfigurasi, anjeun tiasa manggihan di dieu.

sumber: www.habr.com

Tambahkeun komentar