ProHoster > Blog > İdarə > Zabbix ilə IBM Storwize yaddaşının monitorinqi
Zabbix ilə IBM Storwize yaddaşının monitorinqi
Bu yazıda IBM Storwize saxlama sistemlərinin və CIM / WBEM protokollarını dəstəkləyən digər saxlama sistemlərinin monitorinqi haqqında bir az danışacağıq. Belə monitorinqə ehtiyac mötərizədə qalır, biz bunu aksioma hesab edəcəyik. Biz Zabbix-dən monitorinq sistemi kimi istifadə edəcəyik.
Zabbix-in son versiyalarında şirkət şablonlara daha çox diqqət yetirməyə başladı - IPMI vasitəsilə monitorinq xidmətləri, DBMS, Server aparatları (IMM / iBMC) üçün şablonlar görünməyə başladı. Yaddaş monitorinqi hələ də hazır deyil, ona görə də saxlama komponentlərinin vəziyyəti və performansı haqqında məlumatları Zabbix-ə inteqrasiya etmək üçün xüsusi şablonlardan istifadə etməlisiniz. Bu şablonlardan birini nəzərinizə çatdırıram.
Birincisi, bir az nəzəriyyə.
IBM Storwize yaddaşının statusu və statistikasına daxil olmaq üçün siz aşağıdakılardan istifadə edə bilərsiniz:
CIM/WBEM protokolları;
RESTful API (8.1.3 proqram versiyasından başlayaraq IBM Storwize tərəfindən dəstəklənir);
Maraqlananlar müxtəlif monitorinq üsulları haqqında ətraflı məlumatı satıcı sənədlərinin müvafiq bölmələrində, eləcə də sənəddə tapa bilərlər. IBM Spectrum Virtualize skripti.
WBEM HTTP protokolunun üstündə işləyir. WBEM vasitəsilə siz təkcə saxlama sistemləri ilə deyil, həm də HBA-lar, açarlar və lent kitabxanaları ilə işləyə bilərsiniz.
Uyğun olaraq SMI Memarlığı и İnfrastrukturun müəyyənləşdirilməsi, SMI tətbiqinin əsas komponenti WBEM müştərilərindən CIM-XML sorğularını emal edən WBEM serveridir (bizim halda, monitorinq skriptlərindən):
CIM Vahid Modelləşdirmə Dilinə (UML) əsaslanan obyekt yönümlü modeldir.
İdarə olunan elementlər idarə olunan məlumatları və funksionallığı təmsil etmək üçün xassələri və üsulları olan CIM sinifləri kimi müəyyən edilir.
Uyğun olaraq www.snia.org/pywbem, CIM / WBEM vasitəsilə yaddaşa daxil olmaq üçün siz Python dilində yazılmış açıq mənbə kitabxanası olan PyWBEM-dən istifadə edə bilərsiniz, bu da tərtibatçılara və sistem administratorlarına CIM obyektlərinə daxil olmaq və SMI-ə uyğun işləyən WBEM serveri ilə müxtəlif əməliyyatlar yerinə yetirmək üçün CIM protokolunun həyata keçirilməsini təmin edir. -S və ya digər CIM spesifikasiyası.
WBEM serverinə qoşulmaq üçün sinif konstruktorundan istifadə edin WBEMMConnection:
Bu virtual əlaqədir, çünki CIM-XML/WBEM HTTP üzərində işləyir, faktiki əlaqə metodlar WBEMMonnection sinifinin nümunəsində çağırılanda baş verir. IBM System Storage SAN Volume Controller və Storwize V7000 Best Practices and Performance Guidelines (Nümunə C-8, səh. 412) uyğun olaraq, biz IBM Storwize yaddaşı üçün CIM ad məkanı kimi “root/ibm” istifadə edəcəyik.
Nəzərə alın ki, CIM-XML/WBEM protokolu üzrə statistika toplamaq üçün siz istifadəçini müvafiq təhlükəsizlik qrupuna daxil etməlisiniz. Əks halda, WBEM sorğularını yerinə yetirərkən, sinif nümunəsi atributlarının çıxışı boş olacaq.
Saxlama statistikasına daxil olmaq üçün konstruktorun çağırıldığı istifadəçi WBEMMConnection(), ən azı RestrictedAdmin (kod_səviyyəsi > 7.8.0 üçün mövcuddur) və ya Administrator (təhlükəsizlik səbəbindən tövsiyə edilmir) olmalıdır.
Saxlama sisteminə SSH vasitəsilə qoşuluruq və qrup nömrələrinə baxırıq:
> 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 istifadəçisini istədiyiniz qrupa əlavə edin:
> chuser -usergrp 5 zabbix
Bundan əlavə, IBM System Storage SAN Volume Controller və Storwize V7000 Best Practices and Performance Guidelines (s. 415) uyğun olaraq, siz yaddaş sistemində statistik məlumatların toplanmasına imkan verməlisiniz. Beləliklə, hər dəqiqə statistika toplamaq üçün:
> startstats -interval 1
Yoxlayırıq:
> lssystem | grep statistics
statistics_status on
statistics_frequency 1
Bütün mövcud yaddaş siniflərini əldə etmək üçün EnumerateClassNames() metodundan istifadə etməlisiniz.
Misal:
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
print (classname)
Saxlama sisteminin parametrlərinin dəyərlərini əldə etmək üçün üsul EnumerateInstances() Nümunələrin siyahısını qaytaran WBEMMonnection sinfi CIInstance().
Misal:
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 kimi çoxlu sayda nümunələri ehtiva edən bəzi siniflər üçün bütün nümunələrin tam sorğusu olduqca yavaş ola bilər. O, saxlama sistemi tərəfindən hazırlanmalı, şəbəkə üzərindən ötürülməli və skript tərəfindən işlənməli olan böyük həcmdə məlumat yarada bilər. Belə bir vəziyyət üçün bir üsul var ExecQuery(), bu, yalnız bizim üçün maraqlı olan sinif instansiyasının xassələrini əldə etməyə imkan verir. Bu üsul, CIM yaddaş obyektlərini sorğulamaq üçün SQL-ə bənzər sorğu dilindən, ya CIM Sorğu Dili (DMTF:CQL) və ya WBEM Sorğu Dili (WQL) istifadə etməyi nəzərdə tutur:
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
Beləliklə, fiziki disklərin (Disk Sürücülərinin) parametrlərini (performans sayğacları deyil) əldə etmək üçün biz IBMTSSVC_DiskDrive Sinifindən, Volumes parametrlərini əldə etmək üçün - IBMTSSVC_StorageVolume sinfindən, massiv parametrlərini əldə etmək üçün - IBMTSSVC_Array sinfindən, MDisks parametrlərini əldə etmək üçün - Class_BackVClum, IBMTSSVlum və s.
Cildlər üçün yaddaş statistikasını əldə etmək üçün ClassName parametrinin dəyəri kimi IBMTSSVC_StorageVolumeStatistics-i təyin etməlisiniz. Statistikanın toplanması üçün lazım olan IBMTSSVC_StorageVolumeStatistics sinifinin xassələri burada tapıla bilər. Node Statistika.
Həmçinin, performans təhlili üçün siz IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics siniflərindən istifadə edə bilərsiniz.
Monitorinq sisteminə məlumat yazmaq üçün mexanizmdən istifadə edəcəyik zabbix tələləri, modulda python-da həyata keçirilir py-zabbix. Yaddaş siniflərinin strukturu və onların xassələri JSON formatında lüğətdə yerləşdiriləcək.
Şablonu Zabbix serverinə yükləyirik, monitorinq serverinin WEB protokolu (TCP / 5989) vasitəsilə yaddaşa çıxışı olduğundan əmin oluruq, konfiqurasiya fayllarını, aşkarlama və monitorinq skriptlərini monitorinq serverinə yerləşdiririk. Sonra, planlayıcıya skriptlər əlavə edin. Nəticədə: biz saxlama obyektlərini (massivlər, fiziki və virtual disklər, korpuslar və daha çox) aşkar edirik, onları Zabbix kəşflərinə ötürürük, parametrlərinin vəziyyətini oxuyuruq, performans statistikasını oxuyuruq (performans sayğacları), bütün bunları müvafiq qovluğa köçürürük. Şablonumuzun Zabbix elementləri.
Zabbix şablonu, python skriptləri, saxlama siniflərinin strukturu və onların xassələri, eləcə də konfiqurasiya fayllarının nümunələri ola bilər. burada tapın.