Ngawasi panyimpenan IBM Storwize karo Zabbix

Ing artikel iki, kita bakal ngomong sethithik babagan ngawasi sistem panyimpenan IBM Storwize lan sistem panyimpenan liyane sing ndhukung protokol CIM / WBEM. Keperluan kanggo ngawasi kasebut ditinggalake saka kurung; kita bakal nganggep iki minangka aksioma. Kita bakal nggunakake Zabbix minangka sistem ngawasi.

Ing versi paling anyar saka Zabbix, perusahaan wiwit mbayar manungsa waé luwih akeh kanggo cithakan - Cithakan wiwit katon kanggo layanan ngawasi, DBMS, Server hardware (IMM / iBMC) liwat IPMI. Pemantauan panyimpenan isih metu saka kothak, mulane, kanggo nggabungake informasi babagan status lan kinerja komponen panyimpenan menyang Zabbix, sampeyan kudu nggunakake template khusus. Aku nggawa menyang manungsa waé siji saka cithakan iki.

First, teori sethitik.

Kanggo ngakses status lan statistik panyimpenan IBM Storwize, sampeyan bisa nggunakake:

  1. protokol CIM/WBEM;
  2. RESTful API (didhukung dening IBM Storwize wiwit karo versi piranti lunak 8.1.3);
  3. Traps SNMP (set jebakan winates, ora ana statistik);
  4. sambungan SSH ngiring dening remot cocok kanggo skrip bash santai.

Sing kasengsem bisa sinau luwih lengkap babagan macem-macem cara ngawasi ing bagean sing relevan saka dokumentasi vendor, uga ing dokumen kasebut IBM Spectrum Virtualize scripting.

Kita bakal nggunakake protokol CIM / WBEM, sing ngidini kita entuk paramèter sistem panyimpenan tanpa owah-owahan sing signifikan ing piranti lunak kanggo macem-macem sistem panyimpenan. protokol CIM / WBEM bisa miturut Spesifikasi Inisiatif Manajemen Panyimpenan (SMI-S). Inisiatif Manajemen Panyimpenan - Spesifikasi adhedhasar standar mbukak CIM (Model Informasi Umum) и WBEM (Web Based Enterprise Management)ditetepake Satgas Manajemen Distribusi.

WBEM dianggo ing ndhuwur protokol HTTP. Liwat WBEM, sampeyan ora mung bisa nggarap sistem panyimpenan, nanging uga nganggo perpustakaan HBA, switch, lan tape.

Miturut SMI Arsitektur и Nemtokake Infrastruktur, komponen utama implementasi SMI yaiku server WBEM sing ngolah panjalukan CIM-XML saka klien WBEM (ing kasus kita, saka skrip ngawasi):

Ngawasi panyimpenan IBM Storwize karo Zabbix

CIM minangka model berorientasi obyek adhedhasar Unified Modeling Language (UML).
Item sing dikelola ditetepake minangka kelas CIM sing nduweni sifat lan cara kanggo makili data lan fungsi sing dikelola.

Miturut www.snia.org/pywbem, kanggo ngakses panyimpenan liwat CIM / WBEM, sampeyan bisa nggunakake PyWBEM, perpustakaan open source sing ditulis ing Python sing nyedhiyakake pangembang lan administrator sistem kanthi implementasi protokol CIM kanggo ngakses obyek CIM lan nindakake macem-macem operasi karo server WBEM sing beroperasi miturut SMI -S utawa specifications CIM liyane.

Kanggo nyambung menyang server WBEM, nggunakake konstruktor kelas Koneksi WBEMC:

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

Iki sambungan virtual, amarga CIM-XML / WBEM mbukak liwat HTTP, sambungan nyata occurs nalika cara disebut ing Kayata saka kelas WBEMConnection. Sesuai karo IBM System Storage SAN Volume Controller lan Storwize V7000 Best Practices and Performance Guidelines (Contone C-8, kaca 412), kita bakal nggunakake "root / ibm" minangka ruang jeneng CIM kanggo panyimpenan IBM Storwize.

Elinga yen kanggo ngumpulake statistik ing protokol CIM-XML/WBEM, sampeyan kudu nyakup pangguna ing grup keamanan sing cocog. Yen ora, nalika nglakokake pitakon WBEM, output atribut conto kelas bakal kosong.

Kanggo ngakses statistik panyimpenan, pangguna sing diarani konstruktor WBEMCconnection(), kudu paling sethithik RestrictedAdmin (kasedhiya kanggo code_level > 7.8.0) utawa Administrator (ora dianjurake kanggo alasan keamanan).

Kita nyambung menyang sistem panyimpenan liwat SSH lan ndeleng 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    

Tambah pangguna zabbix menyang grup sing dikarepake:

> chuser -usergrp 5 zabbix

Kajaba iku, miturut IBM System Storage SAN Volume Controller lan Storwize V7000 Best Practices and Performance Guidelines (p. 415), sampeyan kudu ngaktifake koleksi statistik ing sistem panyimpenan. Dadi, kanggo ngumpulake statistik saben menit:

> startstats -interval 1 

Priksa:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Kanggo entuk kabeh kelas panyimpenan sing ana, sampeyan kudu nggunakake metode EnumerateClassNames ().

Conto:

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

Kanggo entuk nilai paramèter sistem panyimpenan, metode kasebut EnumerateInstances() Kelas WBEMConnection ngasilake dhaptar conto CIMInstance().

Conto:

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

Kanggo sawetara kelas sing ngemot nomer akeh kedadean, kayata IBMTSSVC_StorageVolume, pitakonan lengkap kabeh kedadean bisa cukup alon. Bisa ngasilake akeh data sing kudu disiapake dening sistem panyimpenan, ditularake liwat jaringan lan diproses kanthi naskah. Kanggo kasus kaya mengkono, ana cara ExecQuery(), sing ngidini sampeyan entuk mung properti saka conto kelas sing menarik kanggo kita. Cara iki kalebu nggunakake basa pitakon kaya SQL, salah siji CIM Query Language (DMTF:CQL) utawa WBEM Query Language (WQL), kanggo pitakon obyek panyimpenan CIM:

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

Kanggo nemtokake kelas sing kudu entuk paramèter saka obyek panyimpenan, kita maca dokumentasi, contone Carane peta konsep sistem kanggo konsep CIM.

Dadi, kanggo entuk paramèter (dudu penghitung kinerja) saka disk fisik (Disk Drives), kita bakal takon Kelas IBMTSSVC_DiskDrive, kanggo njaluk parameter Volume - Kelas IBMTSSVC_StorageVolume, kanggo entuk paramèter array - Kelas IBMTSSVC_Array, kanggo njaluk parameter MDisks - Kelas IBMTSSVC_BackendVolume, etc.

Sampeyan bisa maca babagan kinerja Diagram fungsional saka agen Model Informasi Umum (khusus- Blokir subprofil kinerja server) lan IBM System Storage SAN Volume Controller lan Storwize V7000 Best Practices and Performance Guidelines (Contone C-11, kaca 415).

Kanggo entuk statistik panyimpenan kanggo Volume, sampeyan kudu nemtokake IBMTSSVC_StorageVolumeStatistics minangka nilai parameter ClassName. Properti kelas IBMTSSVC_StorageVolumeStatistics sing dibutuhake kanggo ngumpulake statistik bisa ditemokake ing Statistik Node.

Uga, kanggo analisis kinerja, sampeyan bisa nggunakake kelas IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Kanggo nulis data menyang sistem ngawasi, kita bakal nggunakake mekanisme kasebut traps zabbix, dipun ginakaken ing python ing modul py-zabbix. Struktur kelas panyimpenan lan sifate bakal diselehake ing kamus ing format JSON.

Kita ngunggah cithakan menyang server Zabbix, priksa manawa server ngawasi duwe akses menyang panyimpenan liwat protokol WEB (TCP / 5989), pasang file konfigurasi, deteksi lan skrip ngawasi ing server ngawasi. Sabanjure, tambahake skrip menyang panjadwal. Akibaté: kita nemokake obyek panyimpenan (larik, disk fisik lan virtual, enclosures, lan akeh liyane), pass menyang Zabbix panemuan, maca status paramèter, maca statistik kinerja (perfomance counters), transfer kabeh iki menyang cocog Zabbix Item saka cithakan kita.

Cithakan Zabbix, skrip python, struktur kelas panyimpenan lan properti, uga conto file konfigurasi, bisa golek kene.

Source: www.habr.com

Add a comment