Бұл мақалада біз IBM Storwize сақтау жүйелерін және CIM / WBEM протоколдарын қолдайтын басқа сақтау жүйелерін бақылау туралы аздап сөйлесетін боламыз. Мұндай бақылаудың қажеттілігі жақшадан тыс қалды, біз мұны аксиома ретінде қарастырамыз. Біз Zabbix-ті бақылау жүйесі ретінде қолданамыз.
Zabbix-тің соңғы нұсқаларында компания шаблондарға көбірек көңіл бөле бастады - үлгілер IPMI арқылы бақылау қызметтері, ДҚБЖ, Серверлердің аппараттық құралдары (IMM / iBMC) үшін пайда бола бастады. Сақтау мониторингі әлі де қораптан тыс, сондықтан сақтау компоненттерінің күйі мен өнімділігі туралы ақпаратты Zabbix жүйесіне біріктіру үшін пайдаланушы үлгілерін пайдалану қажет. Назарларыңызға осы үлгілердің бірін ұсынамын.
Біріншіден, кішкене теория.
IBM Storwize қоймасының күйі мен статистикасына қол жеткізу үшін мыналарды пайдалануға болады:
CIM/WBEM хаттамалары;
RESTful API (8.1.3 бағдарламалық жасақтама нұсқасынан бастап IBM Storwize қолдау көрсетеді);
SNMP тұзақтары (тұзақтардың шектеулі жиынтығы, статистика жоқ);
Қызығушылық танытқандар әр түрлі бақылау әдістері туралы толығырақ жеткізуші құжаттамасының тиісті бөлімдерінен, сондай-ақ құжаттан біле алады. IBM Spectrum Virtualize сценарийі.
WBEM HTTP протоколының үстінде жұмыс істейді. WBEM арқылы сіз тек сақтау жүйелерімен ғана емес, сонымен қатар HBA, қосқыштар және таспа кітапханаларымен жұмыс істей аласыз.
бойынша SMI архитектурасы и Инфрақұрылымды анықтау, SMI енгізудің негізгі құрамдас бөлігі WBEM клиенттерінің CIM-XML сұрауларын өңдейтін WBEM сервері болып табылады (біздің жағдайда, бақылау сценарийлерінен):
CIM - Бірыңғай модельдеу тіліне (UML) негізделген нысанға бағытталған модель.
Басқарылатын элементтер басқарылатын деректер мен функцияларды көрсету үшін сипаттары мен әдістері бар CIM сыныптары ретінде анықталады.
бойынша www.snia.org/pywbem, CIM/WBEM арқылы жадқа қол жеткізу үшін PyWBEM, Python тілінде жазылған ашық бастапқы кітапхананы пайдалануға болады, ол әзірлеушілер мен жүйелік әкімшілерге CIM нысандарына қол жеткізу және SMI сәйкес жұмыс істейтін WBEM серверімен әртүрлі операцияларды орындау үшін CIM хаттамасын жүзеге асыруды қамтамасыз етеді. -S немесе басқа CIM техникалық сипаттамалары.
WBEM серверіне қосылу үшін сынып конструкторын пайдаланыңыз WBEMMConnection:
Бұл виртуалды қосылым, себебі CIM-XML/WBEM HTTP арқылы жұмыс істейді, нақты қосылым әдістер WBEMMonnection класының данасында шақырылғанда орын алады. IBM System Storage SAN Volume Controller және Storwize V7000 үздік тәжірибелері мен өнімділік нұсқауларына (C-8 мысалы, 412-бет) сәйкес біз IBM Storwize қоймасы үшін CIM аттар кеңістігі ретінде “root/ibm” қолданамыз.
CIM-XML/WBEM протоколы бойынша статистиканы жинау үшін пайдаланушыны тиісті қауіпсіздік тобына қосу керек екенін ескеріңіз. Әйтпесе, WBEM сұрауларын орындау кезінде сынып данасы атрибуттарының шығысы бос болады..
Сақтау статистикасына қол жеткізу үшін конструктор шақырылатын пайдаланушы WBEMMConnection(), кем дегенде RestrictedAdmin (cod_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() әдісін пайдалану керек.
Мысал:
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
print (classname)
Сақтау жүйесінің параметрлерінің мәндерін алу үшін әдіс EnumerateInstances() Даналар тізімін қайтаратын WBEMMonnection сыныбы CIInstance().
Мысал:
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(), бұл тек бізді қызықтыратын класс данасы сипаттарын алуға мүмкіндік береді. Бұл әдіс CIM сақтау нысандарын сұрау үшін CIM сұрау тілі (DMTF:CQL) немесе WBEM сұрау тілі (WQL) сияқты SQL сұрау тілін пайдалануды қамтиды:
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
Сонымен, физикалық дискілердің (диск жетектерінің) параметрлерін (өнімділік есептегіштері емес) алу үшін біз IBMTSSVC_DiskDrive сыныбынан, Volumes параметрлерін алу үшін - IBMTSSVC_StorageVolume класын, жиым параметрлерін алу үшін - IBMTSSVC_Array сыныбын, MDisks параметрлерін алу үшін - Class_BackLum, Class_BackDrive, т.б.
Томдар үшін сақтау статистикасын алу үшін ClassName параметрінің мәні ретінде IBMTSSVC_StorageVolumeStatistics көрсетуіңіз керек. Статистиканы жинауға қажетті IBMTSSVC_StorageVolumeStatistics класының сипаттарын мына жерден табуға болады Түйін статистикасы.
Сондай-ақ, өнімділікті талдау үшін IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics сыныптарын пайдалануға болады.
Мониторинг жүйесіне деректерді жазу үшін біз механизмді қолданамыз заббикс тұзақтары, модульде python тілінде жүзеге асырылады py-zabbix. Сақтау сыныптарының құрылымы және олардың қасиеттері JSON пішіміндегі сөздікте орналастырылады.
Үлгіні Zabbix серверіне жүктейміз, бақылау серверінің WEB хаттамасы (TCP / 5989) арқылы сақтау мүмкіндігі бар екеніне көз жеткіземіз, конфигурация файлдарын, анықтау және бақылау сценарийлерін мониторинг серверіне орналастырамыз. Әрі қарай, сценарийлерді жоспарлаушыға қосыңыз. Нәтижесінде: біз сақтау объектілерін (массивтер, физикалық және виртуалды дискілер, қоршаулар және т.б.) ашамыз, оларды Zabbix ашылымдарына береміз, олардың параметрлерінің күйін оқимыз, өнімділік статистикасын оқимыз (өнімділік есептегіштері), мұның барлығын сәйкес Біздің үлгінің Zabbix элементтері.
Zabbix үлгісі, питон сценарийлері, сақтау кластарының құрылымы және олардың қасиеттері, сондай-ақ конфигурация файлдарының мысалдары болуы мүмкін. мына жерден табыңыз.