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:
CIM/WBEM protokollari;
RESTful API (IBM Storwize-da 8.1.3 dasturiy ta'minot versiyasidan boshlab qo'llab-quvvatlanadi);
Qiziqqanlar sotuvchi hujjatlarining tegishli bo'limlarida, shuningdek hujjatda turli monitoring usullari haqida ko'proq ma'lumot olishlari mumkin. IBM Spectrum Virtualize skripti.
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):
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:
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)
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.
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.