IBM Storwize պահեստավորման համակարգերի մոնիտորինգ Zabbix-ի միջոցով

Այս հոդվածում մենք մի փոքր կխոսենք IBM Storwize պահեստավորման համակարգերի և այլ պահեստավորման համակարգերի մոնիտորինգի մասին, որոնք աջակցում են CIM/WBEM արձանագրությունները: Նման մոնիտորինգի անհրաժեշտությունը դուրս է մնացել հավասարումից, մենք սա կհամարենք աքսիոմա: Մենք կօգտագործենք Zabbix-ը որպես մոնիտորինգի համակարգ:

Zabbix-ի վերջին տարբերակներում ընկերությունը սկսեց շատ ավելի մեծ ուշադրություն դարձնել կաղապարներին. կաղապարներ սկսեցին հայտնվել մոնիտորինգի ծառայությունների, DBMS-ի, Սերվերների ապարատային (IMM/iBMC) համար IPMI-ի միջոցով: Պահպանման համակարգի մոնիտորինգը դեռևս դուրս է կաղապարներից դուրս, ուստի Zabbix-ում պահեստավորման բաղադրիչների կարգավիճակի և կատարողականի մասին տեղեկատվությունը ինտեգրելու համար հարկավոր է օգտագործել հատուկ ձևանմուշներ: Ձեր ուշադրությանն եմ ներկայացնում այս կաղապարներից մեկը։

Նախ, մի փոքր տեսություն.

IBM Storwize պահեստավորման համակարգերի կարգավիճակին և վիճակագրությանը ծանոթանալու համար կարող եք օգտագործել.

  1. CIM/WBEM արձանագրություններ;
  2. RESTful API- ն (աջակցվում է IBM Storwize-ում՝ սկսած ծրագրային ապահովման 8.1.3 տարբերակից);
  3. SNMP թակարդներ (թակարդների սահմանափակ հավաքածու, վիճակագրություն չկա);
  4. Միացեք SSH-ի միջոցով, այնուհետև հեռակա կարգով հարմար է հանգիստ բաշ սկրիպտավորման համար.

Ցանկացողները կարող են ավելին իմանալ մոնիտորինգի տարբեր մեթոդների մասին վաճառողի փաստաթղթերի համապատասխան բաժիններում, ինչպես նաև փաստաթղթում IBM Spectrum Virtualize scripting.

Մենք կօգտագործենք CIM/WBEM արձանագրությունները, որոնք թույլ են տալիս մեզ ստանալ պահեստավորման համակարգի գործառնական պարամետրեր՝ առանց ծրագրային էական փոփոխությունների տարբեր պահեստավորման համակարգերի համար: CIM/WBEM արձանագրությունները գործում են համաձայն Storage Management Initiative Specification (SMI-S). Պահպանման կառավարման նախաձեռնություն – Հստակեցումը հիմնված է բաց ստանդարտների վրա CIM (ընդհանուր տեղեկատվական մոդել) и WBEM (Վեբ վրա հիմնված ձեռնարկությունների կառավարում), որոշված Բաշխված կառավարման աշխատանքային խումբ.

WBEM-ն աշխատում է HTTP արձանագրության վերևում: WBEM-ի միջոցով դուք կարող եք աշխատել ոչ միայն պահեստավորման համակարգերի, այլ նաև HBA-ների, անջատիչների և ժապավենային գրադարանների հետ:

Ըստ SMI Architecture и Որոշել ենթակառուցվածքըSMI ներդրման հիմնական բաղադրիչը WBEM սերվերն է, որը մշակում է CIM-XML հարցումները WBEM հաճախորդներից (մեր դեպքում՝ մոնիտորինգի սկրիպտներից).

IBM Storwize պահեստավորման համակարգերի մոնիտորինգ Zabbix-ի միջոցով

CIM-ը օբյեկտի վրա հիմնված մոդել է, որը հիմնված է Unified Modeling Language (UML) վրա:
Կառավարվող տարրերը սահմանվում են որպես CIM դասեր, որոնք ունեն հատկություններ և մեթոդներ՝ ներկայացնելու կառավարվող տվյալները և ֆունկցիոնալությունը:

Ըստ www.snia.org/pywbemCIM/WBEM-ի միջոցով պահեստավորման համակարգեր մուտք գործելու համար կարող եք օգտագործել PyWBEM՝ Python-ով գրված բաց կոդով գրադարան, որը մշակողներին և համակարգի ադմինիստրատորներին տրամադրում է CIM արձանագրության ներդրում՝ CIM օբյեկտներ մուտք գործելու և WBEM սերվերով տարբեր գործողություններ կատարելու համար։ SMI-S-ի կամ CIM-ի այլ բնութագրերի համաձայն:

WBEM սերվերին միանալու համար մենք օգտագործում ենք դասի կոնստրուկտորը WBEMC միացում:

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

Սա վիրտուալ կապ է, քանի որ 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)

Որոշելու համար, թե որ դասերը պետք է ստանանք պահեստավորման օբյեկտների պարամետրերը, օրինակ կարդացեք փաստաթղթերը Ինչպես համակարգի հայեցակարգերը քարտեզագրվում են CIM հասկացություններին.

Այսպիսով, ֆիզիկական սկավառակների (Disk Drives) պարամետրեր (ոչ կատարողականի հաշվիչներ) ստանալու համար մենք կհարցենք Class IBMTSSVC_DiskDrive, Volumes պարամետրերը ստանալու համար՝ Class IBMTSSVC_StorageVolume, զանգվածի պարամետրերը ստանալու համար՝ Class IBMTSSVC_Array, ստանալու համար Class IBMTSSVC_Array, MDisksVC_MTV, և այլն:

Կատարման համար կարող եք կարդալ Ընդհանուր տեղեկատվական մոդելի գործակալի ֆունկցիոնալ դիագրամներ (մասնավորապես - Արգելափակել սերվերի աշխատանքի ենթապրոֆիլը) և IBM System Storage SAN Volume Controller և Storwize V7000 Լավագույն պրակտիկա և կատարողական ուղեցույց (Օրինակ C-11, էջ 415):

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 սկրիպտները, պահեստավորման դասերի կառուցվածքը և դրանց հատկությունները, ինչպես նաև կազմաձևման ֆայլերի օրինակներ, կարող եք գտեք այստեղ.

Source: www.habr.com

Добавить комментарий