Zabbix yordamida IBM Storwize xotirasini kuzatish

Ushbu maqolada biz IBM Storwize saqlash tizimlari va CIM/WBEM protokollarini qo'llab-quvvatlaydigan boshqa saqlash tizimlarini kuzatish haqida bir oz gaplashamiz. Bunday monitoring zarurati tenglamadan tashqarida qoldirilgan, biz buni aksioma deb hisoblaymiz. Biz Zabbix-dan monitoring tizimi sifatida foydalanamiz.

Zabbix-ning so'nggi versiyalarida kompaniya shablonlarga ko'proq e'tibor bera boshladi - IPMI orqali xizmatlar, DBMS, Serverlar apparati (IMM/iBMC) monitoringi uchun shablonlar paydo bo'la boshladi. Saqlash tizimi monitoringi hali ham shablonlardan tashqarida, shuning uchun saqlash komponentlarining holati va ishlashi haqidagi ma'lumotlarni Zabbix-ga birlashtirish uchun siz maxsus shablonlardan foydalanishingiz kerak. Men sizning e'tiboringizga ushbu shablonlardan birini taqdim etaman.

Birinchidan, bir oz nazariya.

IBM Storwize saqlash tizimlarining holati va statistikasiga kirish uchun siz quyidagilardan foydalanishingiz mumkin:

  1. CIM/WBEM protokollari;
  2. RESTful API (IBM Storwize-da 8.1.3 dasturiy ta'minot versiyasidan boshlab qo'llab-quvvatlanadi);
  3. SNMP tuzoqlari (cheklangan tuzoqlar to'plami, statistika yo'q);
  4. SSH orqali va keyin masofadan ulaning bemalol bash skripti uchun javob beradi.

Qiziqqanlar sotuvchi hujjatlarining tegishli bo'limlarida, shuningdek hujjatda turli monitoring usullari haqida ko'proq ma'lumot olishlari mumkin. IBM Spectrum Virtualize skripti.

Biz turli xil saqlash tizimlari uchun dasturiy ta'minotni sezilarli darajada o'zgartirmasdan saqlash tizimining operatsion parametrlarini olish imkonini beruvchi CIM/WBEM protokollaridan foydalanamiz. CIM/WBEM protokollari quyidagilarga muvofiq ishlaydi Saqlashni boshqarish tashabbusi spetsifikatsiyasi (SMI-S). Saqlashni boshqarish tashabbusi - Spetsifikatsiya ochiq standartlarga asoslangan CIM (Umumiy axborot modeli) и WBEM (Veb-asoslangan korxona boshqaruvi), belgilangan Taqsimlangan boshqaruv ishchi guruhi.

WBEM HTTP protokoli ustida ishlaydi. WBEM orqali siz nafaqat saqlash tizimlari, balki HBA, kalitlar va lenta kutubxonalari bilan ham ishlashingiz mumkin.

Shunga ko'ra SMI arxitekturasi и Infratuzilmani aniqlash, SMI amalga oshirishning asosiy komponenti WBEM-server bo'lib, u WBEM mijozlarining CIM-XML so'rovlarini qayta ishlaydi (bizning holatlarimizda, monitoring skriptlaridan):

Zabbix yordamida IBM Storwize xotirasini kuzatish

CIM - UML (Uniified Modeling Language) asosidagi ob'ektga yo'naltirilgan model.
Boshqariladigan elementlar boshqariladigan ma'lumotlar va funksionallikni ifodalovchi xususiyatlar va usullarga ega bo'lgan CIM sinflari sifatida aniqlanadi.

Shunga ko'ra www.snia.org/pywbem, CIM/WBEM orqali saqlash tizimlariga kirish uchun siz PyWBEM-dan foydalanishingiz mumkin - Python-da yozilgan ochiq manba kutubxonasi, ishlab chiquvchilar va tizim ma'murlariga CIM ob'ektlariga kirish va WBEM serveri bilan turli xil operatsiyalarni bajarish uchun CIM protokolini amalga oshirishni ta'minlaydi. SMI-S yoki boshqa CIM spetsifikatsiyalariga muvofiq.

WBEM serveriga ulanish uchun biz sinf konstruktoridan foydalanamiz WBEMMConnection:

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

Bu virtual ulanishdir, chunki CIM-XML/WBEM HTTP tepasida ishlaydi, WBEMMonnection sinfi misolida usullar chaqirilganda haqiqiy ulanish sodir bo'ladi. IBM System Storage SAN Volume Controller va Storwize V7000 Eng yaxshi amaliyotlar va ishlash ko'rsatmalariga (misol C-8, 412-bet) muvofiq biz IBM Storwize saqlash tizimi uchun CIM nom maydoni sifatida “root/ibm” dan foydalanamiz.

CIM-XML/WBEM protokoli orqali statistik ma'lumotlarni to'plash uchun foydalanuvchini tegishli xavfsizlik guruhiga kiritish kerakligini unutmang. Aks holda, WBEM so'rovlarini bajarishda sinf misoli atributlarining chiqishi bo'sh bo'ladi..

Saqlash statistikasiga kirish uchun konstruktor ostidagi foydalanuvchi chaqiriladi WBEMMConnection(), kamida RestrictedAdmin (code_level > 7.8.0 uchun mavjud) yoki Administrator huquqlari (xavfsizlik sababli tavsiya etilmaydi) bo'lishi kerak.

Biz SSH orqali saqlash tizimiga ulanamiz va guruh raqamlariga qaraymiz:

> 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    

Zabbix foydalanuvchisini kerakli guruhga qo'shing:

> chuser -usergrp 5 zabbix

Bundan tashqari, IBM System Storage SAN Volume Controller va Storwize V7000 Best Practices and Performance Guidelines (415-bet) ga muvofiq siz saqlash tizimida statistik ma’lumotlarni yig‘ishni yoqishingiz kerak. Shunday qilib, har daqiqada statistik ma'lumotlarni yig'ish uchun:

> startstats -interval 1 

Biz tekshiramiz:

> lssystem | grep statistics
statistics_status on
statistics_frequency 1

Barcha mavjud saqlash sinflarini olish uchun EnumerateClassNames() usulidan foydalanishingiz kerak.

Misol:

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

Usul saqlash tizimi parametrlarining qiymatlarini olish uchun ishlatiladi EnumerateInstances() sinf WBEMMonnection, misollar ro'yxatini qaytaradi CIInstance().

Misol:

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

IBMTSSVC_StorageVolume kabi ko'p sonli misollarni o'z ichiga olgan ba'zi sinflar uchun barcha misollarning to'liq so'rovi juda sekin bo'lishi mumkin. U saqlash tizimi tomonidan tayyorlanishi, tarmoq orqali uzatilishi va skript tomonidan qayta ishlanishi kerak bo'lgan katta hajmdagi ma'lumotlarni yaratishi mumkin. Bunday holat uchun usul mavjud ExecQuery(), bu bizga faqat bizni qiziqtiradigan sinf misolining xususiyatlarini olish imkonini beradi. Bu usul CIM saqlash ob'ektlarini so'rash uchun SQL-ga o'xshash so'rovlar tilidan, CIM so'rovlar tilidan (DMTF:CQL) yoki WBEM so'rovlar tilidan (WQL) foydalanishni o'z ichiga oladi:

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

Qaysi sinflarni saqlash ob'ektlarining parametrlarini olishimiz kerakligini aniqlash uchun, masalan, hujjatlarni o'qing Tizim tushunchalari CIM tushunchalariga qanday mos keladi.

Shunday qilib, jismoniy disklar (Disk disklari) parametrlarini (ishlash hisoblagichlarini emas) olish uchun IBMTSSVC_DiskDrive sinfini, Volumes parametrlarini olish uchun - IBMTSSVC_StorageVolume sinfini, massiv parametrlarini olish uchun - IBMTSSVC_Array sinfini, MDisks parametrlarini - Class_BackVlum, va hokazolarni olish uchun IBMTSSVC_DiskDrive va boshqalarni so'raymiz.

Ishlash uchun siz o'qishingiz mumkin Common Information Model agentining funksional diagrammalari (ayniqsa - Server ishlash subprofilini bloklash) va IBM System Storage SAN Volume Controller va Storwize V7000 Eng yaxshi amaliyotlar va ishlash bo‘yicha ko‘rsatmalar (misol C-11, 415-bet).

Volumes uchun saqlash statistikasini olish uchun ClassName parametrining qiymati sifatida IBMTSSVC_StorageVolumeStatistics ni belgilashingiz kerak. Statistikani to'plash uchun zarur bo'lgan IBMTSSVC_StorageVolumeStatistics sinfining xususiyatlarini quyidagi sahifada ko'rish mumkin. Tugun statistikasi.

Bundan tashqari, unumdorlikni tahlil qilish uchun siz IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics sinflaridan foydalanishingiz mumkin.

Monitoring tizimiga ma'lumotlarni yozib olish uchun biz mexanizmdan foydalanamiz zabbix tuzoqlari, modulda pythonda amalga oshirilgan py-zabbix. Biz saqlash tizimlari sinflarining tuzilishi va ularning xususiyatlarini JSON formatidagi lug'atga joylashtiramiz.

Biz shablonni Zabbix serveriga yuklaymiz, monitoring serverining WEB protokoli (TCP/5989) orqali saqlash tizimiga kirishiga ishonch hosil qilamiz va konfiguratsiya fayllarini, aniqlash va monitoring skriptlarini monitoring serveriga joylashtiramiz. Keyinchalik, rejalashtiruvchiga skriptni ishga tushirishni qo'shing. Natijada: biz saqlash ob'ektlarini topamiz (massivlar, jismoniy va virtual disklar, korpuslar va boshqalar), ularni Zabbix kashfiyotlariga o'tkazamiz, parametrlarining holatini o'qiymiz, ishlash statistikasini o'qiymiz (ishlash hisoblagichlari), bularning barchasini mos keladigan Zabbix-ga o'tkazamiz. Bizning shablonimiz elementlari.

Zabbix shabloni, python skriptlari, saqlash sinflari tuzilishi va ularning xususiyatlari, shuningdek, konfiguratsiya fayllari misollari, bu erda toping.

Manba: www.habr.com

a Izoh qo'shish