ProHoster > Օրագիր > Վարչակազմը > IBM Storwize պահեստավորման համակարգերի մոնիտորինգ Zabbix-ի միջոցով
IBM Storwize պահեստավորման համակարգերի մոնիտորինգ Zabbix-ի միջոցով
Այս հոդվածում մենք մի փոքր կխոսենք IBM Storwize պահեստավորման համակարգերի և այլ պահեստավորման համակարգերի մոնիտորինգի մասին, որոնք աջակցում են CIM/WBEM արձանագրությունները: Նման մոնիտորինգի անհրաժեշտությունը դուրս է մնացել հավասարումից, մենք սա կհամարենք աքսիոմա: Մենք կօգտագործենք Zabbix-ը որպես մոնիտորինգի համակարգ:
Zabbix-ի վերջին տարբերակներում ընկերությունը սկսեց շատ ավելի մեծ ուշադրություն դարձնել կաղապարներին. կաղապարներ սկսեցին հայտնվել մոնիտորինգի ծառայությունների, DBMS-ի, Սերվերների ապարատային (IMM/iBMC) համար IPMI-ի միջոցով: Պահպանման համակարգի մոնիտորինգը դեռևս դուրս է կաղապարներից դուրս, ուստի Zabbix-ում պահեստավորման բաղադրիչների կարգավիճակի և կատարողականի մասին տեղեկատվությունը ինտեգրելու համար հարկավոր է օգտագործել հատուկ ձևանմուշներ: Ձեր ուշադրությանն եմ ներկայացնում այս կաղապարներից մեկը։
Նախ, մի փոքր տեսություն.
IBM Storwize պահեստավորման համակարգերի կարգավիճակին և վիճակագրությանը ծանոթանալու համար կարող եք օգտագործել.
CIM/WBEM արձանագրություններ;
RESTful API- ն (աջակցվում է IBM Storwize-ում՝ սկսած ծրագրային ապահովման 8.1.3 տարբերակից);
Ցանկացողները կարող են ավելին իմանալ մոնիտորինգի տարբեր մեթոդների մասին վաճառողի փաստաթղթերի համապատասխան բաժիններում, ինչպես նաև փաստաթղթում IBM Spectrum Virtualize scripting.
WBEM-ն աշխատում է HTTP արձանագրության վերևում: WBEM-ի միջոցով դուք կարող եք աշխատել ոչ միայն պահեստավորման համակարգերի, այլ նաև HBA-ների, անջատիչների և ժապավենային գրադարանների հետ:
Ըստ SMI Architecture и Որոշել ենթակառուցվածքըSMI ներդրման հիմնական բաղադրիչը WBEM սերվերն է, որը մշակում է CIM-XML հարցումները WBEM հաճախորդներից (մեր դեպքում՝ մոնիտորինգի սկրիպտներից).
CIM-ը օբյեկտի վրա հիմնված մոդել է, որը հիմնված է Unified Modeling Language (UML) վրա:
Կառավարվող տարրերը սահմանվում են որպես CIM դասեր, որոնք ունեն հատկություններ և մեթոդներ՝ ներկայացնելու կառավարվող տվյալները և ֆունկցիոնալությունը:
Ըստ www.snia.org/pywbemCIM/WBEM-ի միջոցով պահեստավորման համակարգեր մուտք գործելու համար կարող եք օգտագործել PyWBEM՝ Python-ով գրված բաց կոդով գրադարան, որը մշակողներին և համակարգի ադմինիստրատորներին տրամադրում է CIM արձանագրության ներդրում՝ CIM օբյեկտներ մուտք գործելու և WBEM սերվերով տարբեր գործողություններ կատարելու համար։ SMI-S-ի կամ CIM-ի այլ բնութագրերի համաձայն:
WBEM սերվերին միանալու համար մենք օգտագործում ենք դասի կոնստրուկտորը WBEMC միացում:
Սա վիրտուալ կապ է, քանի որ CIM-XML/WBEM աշխատում է HTTP-ի վրա, իրական կապը տեղի է ունենում, երբ մեթոդները կանչվում են WBEMConnection դասի օրինակի վրա: Համաձայն IBM System Storage SAN Volume Controller-ի և Storwize V7000 լավագույն փորձի և կատարողականի ուղեցույցների (Օրինակ C-8, էջ 412), մենք կօգտագործենք «root/ibm»՝ որպես IBM Storwize պահեստավորման համակարգի CIM անվանատարածք:
Խնդրում ենք նկատի ունենալ, որ CIM-XML/WBEM արձանագրության միջոցով վիճակագրություն հավաքելու համար դուք պետք է օգտագործողին ներառեք անվտանգության համապատասխան խմբում: Հակառակ դեպքում, WBEM հարցումները կատարելիս դասի օրինակի ատրիբուտների ելքը դատարկ կլինի.
Պահպանման վիճակագրություն մուտք գործելու համար օգտագործողը, որի տակ կոչվում է կոնստրուկտորը WBEMConnection (), պետք է ունենա առնվազն RestrictedAdmin (հասանելի է code_level > 7.8.0) կամ Ադմինիստրատորի իրավունքներ (խորհուրդ չի տրվում անվտանգության նկատառումներով):
Մենք միանում ենք պահեստավորման համակարգին SSH-ի միջոցով և դիտում ենք խմբի համարները.
> 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 օգտվողին ցանկալի խմբին.
> chuser -usergrp 5 zabbix
Բացի այդ, համաձայն IBM System Storage SAN Volume Controller-ի և Storwize V7000 լավագույն փորձի և կատարողականի ուղեցույցների (էջ 415), դուք պետք է միացնեք տվյալների հավաքագրումը պահեստավորման համակարգում: Այսպիսով, ամեն րոպե վիճակագրություն հավաքելու համար.
> startstats -interval 1
Մենք ստուգում ենք.
> lssystem | grep statistics
statistics_status on
statistics_frequency 1
Բոլոր առկա պահեստավորման դասերը ստանալու համար դուք պետք է օգտագործեք EnumerateClassNames() մեթոդը:
Example:
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
print (classname)
Մեթոդն օգտագործվում է պահեստավորման համակարգի պարամետրերի արժեքները ստանալու համար EnumerateInstances() դասի WBEMConnection, վերադարձնելով օրինակների ցանկը CIMInstance ().
Example:
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, բոլոր օրինակների ամբողջական հարցումը կարող է բավականին դանդաղ լինել: Այն կարող է առաջացնել մեծ ծավալի տվյալներ, որոնք պետք է պատրաստվեն պահեստավորման համակարգի կողմից, փոխանցվեն ցանցով և մշակվեն սկրիպտով: Նման դեպքի համար կա մեթոդ ExecQuery (), որը թույլ է տալիս ստանալ միայն մեզ հետաքրքրող դասի օրինակի հատկությունները։ Այս մեթոդը ներառում է SQL-ի նման հարցման լեզվի օգտագործում՝ կա՛մ CIM հարցման լեզու (DMTF:CQL) կա՛մ WBEM հարցման լեզու (WQL)՝ CIM պահեստավորման օբյեկտները հարցումներ անելու համար.
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
Այսպիսով, ֆիզիկական սկավառակների (Disk Drives) պարամետրեր (ոչ կատարողականի հաշվիչներ) ստանալու համար մենք կհարցենք Class IBMTSSVC_DiskDrive, Volumes պարամետրերը ստանալու համար՝ Class IBMTSSVC_StorageVolume, զանգվածի պարամետրերը ստանալու համար՝ Class IBMTSSVC_Array, ստանալու համար Class IBMTSSVC_Array, MDisksVC_MTV, և այլն:
Volumes-ի պահպանման վիճակագրություն ստանալու համար որպես ClassName պարամետրի արժեք պետք է նշեք IBMTSSVC_StorageVolumeStatistics: Վիճակագրություն հավաքելու համար անհրաժեշտ IBMTSSVC_StorageVolumeStatistics դասի հատկությունները կարելի է դիտել այստեղ. Հանգույցի վիճակագրություն.
Նաև կատարողականի վերլուծության համար կարող եք օգտագործել IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics դասերը:
Մոնիտորինգի համակարգում տվյալները գրանցելու համար մենք կօգտագործենք մեխանիզմը zabbix թակարդներ, իրականացվել է python-ում՝ մոդուլում py-zabbix. Մենք կտեղադրենք պահեստավորման համակարգերի դասերի կառուցվածքը և դրանց հատկությունները JSON ձևաչափով բառարանում:
Մենք ձևանմուշը վերբեռնում ենք Zabbix սերվեր, համոզվում ենք, որ մոնիտորինգի սերվերը մուտք ունի պահեստավորման համակարգ WEB արձանագրության միջոցով (TCP/5989) և տեղադրում ենք կազմաձևման ֆայլեր, հայտնաբերման և մոնիտորինգի սկրիպտներ մոնիտորինգի սերվերի վրա: Հաջորդը, ավելացրեք սցենարի գործարկումը ժամանակացույցին: Արդյունքում՝ մենք հայտնաբերում ենք պահեստավորման օբյեկտներ (զանգվածներ, ֆիզիկական և վիրտուալ սկավառակներ, պարիսպներ և շատ ավելին), փոխանցում դրանք Zabbix հայտնագործություններին, կարդում ենք դրանց պարամետրերի կարգավիճակը, կարդում ենք կատարողականի վիճակագրությունը (կատարման հաշվիչներ), փոխանցում այս ամենը համապատասխան Zabbix-ին։ Մեր կաղապարի տարրերը:
Zabbix կաղապարը, python սկրիպտները, պահեստավորման դասերի կառուցվածքը և դրանց հատկությունները, ինչպես նաև կազմաձևման ֆայլերի օրինակներ, կարող եք գտեք այստեղ.