Memantau storan Storwize IBM dengan Zabbix

Dalam artikel ini kita akan bercakap sedikit tentang memantau sistem storan IBM Storwize dan sistem storan lain yang menyokong protokol CIM/WBEM. Keperluan untuk pemantauan sedemikian ditinggalkan daripada persamaan; kami akan menganggap ini sebagai aksiom. Kami akan menggunakan Zabbix sebagai sistem pemantauan.

Dalam versi terbaru Zabbix, syarikat mula memberi lebih perhatian kepada templat - templat mula muncul untuk perkhidmatan pemantauan, DBMS, perkakasan Pelayan (IMM/iBMC) melalui IPMI. Pemantauan sistem storan masih berada di luar templat di luar kotak, jadi untuk menyepadukan maklumat tentang status dan prestasi komponen storan ke dalam Zabbix, anda perlu menggunakan templat tersuai. Saya membawa kepada perhatian anda salah satu templat ini.

Pertama, teori kecil.

Untuk mengakses status dan statistik sistem storan IBM Storwize, anda boleh menggunakan:

  1. Protokol CIM/WBEM;
  2. API RESTful (disokong dalam IBM Storwize bermula dengan perisian versi 8.1.3);
  3. Perangkap SNMP (set perangkap terhad, tiada statistik);
  4. Sambung melalui SSH dan kemudian dari jauh sesuai untuk skrip bash santai.

Mereka yang berminat boleh mengetahui lebih lanjut tentang pelbagai kaedah pemantauan dalam bahagian dokumentasi vendor yang berkaitan, serta dalam dokumen Penskripan IBM Spectrum Virtualize.

Kami akan menggunakan protokol CIM/WBEM, yang membolehkan kami mendapatkan parameter pengendalian sistem storan tanpa perubahan perisian yang ketara untuk sistem storan yang berbeza. Protokol CIM/WBEM beroperasi mengikut Spesifikasi Inisiatif Pengurusan Storan (SMI-S). Inisiatif Pengurusan Storan – Spesifikasi adalah berdasarkan piawaian terbuka CIM (Model Maklumat Biasa) ΠΈ WBEM (Pengurusan Perusahaan Berasaskan Web), ditentukan Pasukan Petugas Pengurusan Teragih.

WBEM berjalan di atas protokol HTTP. Melalui WBEM anda boleh bekerja bukan sahaja dengan sistem storan, tetapi juga dengan HBA, suis dan perpustakaan pita.

Menurut Seni Bina IKS ΠΈ Tentukan Infrastruktur, komponen utama pelaksanaan SMI ialah pelayan WBEM, yang memproses permintaan CIM-XML daripada klien WBEM (dalam kes kami, daripada skrip pemantauan):

Memantau storan Storwize IBM dengan Zabbix

CIM ialah model berorientasikan objek berdasarkan Unified Modelling Language (UML).
Elemen terurus ditakrifkan sebagai kelas CIM yang mempunyai sifat dan kaedah untuk mewakili data dan kefungsian terurus.

Menurut www.snia.org/pywbem, untuk mengakses sistem storan melalui CIM/WBEM, anda boleh menggunakan PyWBEM - perpustakaan sumber terbuka yang ditulis dalam Python, yang menyediakan pembangun dan pentadbir sistem dengan pelaksanaan protokol CIM untuk mengakses objek CIM dan melaksanakan pelbagai operasi dengan pelayan WBEM yang beroperasi dalam mengikut spesifikasi SMI-S atau CIM lain.

Untuk menyambung ke pelayan WBEM kami menggunakan pembina kelas Sambungan WBEMC:

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

Ini ialah sambungan maya, memandangkan CIM-XML/WBEM berjalan di atas HTTP, sambungan sebenar berlaku apabila kaedah dipanggil pada contoh kelas WBEMConnection. Selaras dengan Pengawal Volume SAN Storan Sistem IBM dan Garis Panduan Amalan dan Prestasi Terbaik Storwize V7000 (Contoh C-8, halaman 412), kami akan menggunakan "root/ibm" sebagai ruang nama CIM untuk sistem storan IBM Storwize.

Sila ambil perhatian bahawa untuk mengumpul statistik melalui protokol CIM-XML/WBEM, anda mesti memasukkan pengguna dalam kumpulan keselamatan yang sesuai. Jika tidak, apabila melaksanakan pertanyaan WBEM, output atribut contoh kelas akan kosong.

Untuk mengakses statistik storan, pengguna di bawahnya pembina dipanggil WBEMConnection(), mesti mempunyai sekurang-kurangnya RestrictedAdmin (tersedia untuk kod_level > 7.8.0) atau hak Pentadbir (tidak disyorkan atas sebab keselamatan).

Kami menyambung ke sistem storan melalui SSH dan melihat nombor kumpulan:

> 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    

Tambahkan pengguna zabbix ke kumpulan yang dikehendaki:

> chuser -usergrp 5 zabbix

Selain itu, menurut Pengawal Volume SAN Storan Sistem IBM dan Garis Panduan Amalan dan Prestasi Terbaik Storwize V7000 (ms 415), anda mesti mendayakan pengumpulan statistik pada sistem storan. Jadi, untuk mengumpul statistik setiap minit:

> startstats -interval 1 

Kami menyemak:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Untuk mendapatkan semua kelas storan sedia ada, anda mesti menggunakan kaedah EnumerateClassNames().

Contoh:

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

Kaedah ini digunakan untuk mendapatkan nilai parameter sistem storan EnumerateInstances() kelas WBEMConnection, mengembalikan senarai kejadian CIMInstance().

Contoh:

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

Untuk sesetengah kelas yang mengandungi sejumlah besar contoh, seperti IBMTSSVC_StorageVolume, pertanyaan penuh semua kejadian boleh menjadi agak perlahan. Ia boleh menjana volum besar data yang mesti disediakan oleh sistem storan, dihantar melalui rangkaian dan diproses oleh skrip. Terdapat kaedah untuk kes sedemikian ExecQuery(), yang membolehkan kami mendapatkan hanya sifat contoh kelas yang menarik minat kami. Kaedah ini melibatkan penggunaan bahasa pertanyaan seperti SQL, sama ada Bahasa Pertanyaan CIM (DMTF:CQL) atau Bahasa Pertanyaan WBEM (WQL), untuk menanya objek storan CIM:

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

Untuk menentukan kelas mana yang kita perlukan untuk mendapatkan parameter objek penyimpanan, baca dokumentasi, sebagai contoh Bagaimana konsep sistem memetakan kepada konsep CIM.

Jadi, untuk mendapatkan parameter (bukan pembilang prestasi) cakera fizikal (Pemacu Cakera) kami akan meninjau Kelas IBMTSSVC_DiskDrive, untuk mendapatkan parameter Jilid - Kelas IBMTSSVC_StorageVolume, untuk mendapatkan parameter tatasusunan - Kelas IBMTSSVC_Array, untuk mendapatkan parameter MDisks - Kelas IBMTSSVC_BackendVolume, dll.

Untuk prestasi anda boleh membaca Gambar rajah fungsi ejen Model Maklumat Biasa (khususnya - Sekat subprofil prestasi pelayan) dan IBM System Storage SAN Volume Controller dan Storwize V7000 Amalan Terbaik dan Garis Panduan Prestasi (Contoh C-11, halaman 415).

Untuk mendapatkan statistik storan untuk Jilid, anda mesti menentukan IBMTSSVC_StorageVolumeStatistics sebagai nilai parameter ClassName. Sifat kelas IBMTSSVC_StorageVolumeStatistics yang diperlukan untuk mengumpul statistik boleh dilihat dalam Statistik Nod.

Selain itu, untuk analisis prestasi anda boleh menggunakan kelas IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.

Untuk merekod data ke dalam sistem pemantauan kami akan menggunakan mekanisme tersebut perangkap zabbix, dilaksanakan dalam python dalam modul py-zabbix. Kami akan meletakkan struktur kelas sistem storan dan sifatnya dalam kamus dalam format JSON.

Kami memuat naik templat ke pelayan Zabbix, pastikan pelayan pemantauan mempunyai akses kepada sistem storan melalui protokol WEB (TCP/5989), dan meletakkan fail konfigurasi, skrip pengesanan dan pemantauan pada pelayan pemantauan. Seterusnya, tambahkan pelancaran skrip pada penjadual. Hasilnya: kami menemui objek storan (tatasusunan, cakera fizikal dan maya, kepungan dan banyak lagi), memindahkannya ke penemuan Zabbix, membaca status parameternya, membaca statistik prestasi (kaunter prestasi), memindahkan semua ini ke Zabbix yang sepadan Item templat kami.

Templat Zabbix, skrip python, struktur kelas storan dan sifatnya, serta contoh fail konfigurasi, anda boleh cari di sini.

Sumber: www.habr.com

Tambah komen