Yn yr erthygl hon byddwn yn siarad ychydig am fonitro systemau storio IBM Storwize a systemau storio eraill sy'n cefnogi protocolau CIM / WBEM. Mae’r angen am fonitro o’r fath yn cael ei adael allan o’r hafaliad; byddwn yn ystyried hwn yn axiom. Byddwn yn defnyddio Zabbix fel system fonitro.
Yn y fersiynau diweddaraf o Zabbix, dechreuodd y cwmni dalu llawer mwy o sylw i dempledi - dechreuodd templedi ymddangos ar gyfer gwasanaethau monitro, DBMS, caledwedd Gweinyddwyr (IMM / iBMC) trwy IPMI. Mae monitro system storio yn dal i fod y tu allan i'r templedi allan o'r blwch, felly er mwyn integreiddio gwybodaeth am statws a pherfformiad cydrannau storio yn Zabbix, mae angen i chi ddefnyddio templedi arferol. Dygaf eich sylw at un o'r templedi hyn.
Yn gyntaf, ychydig o theori.
I gael mynediad at statws ac ystadegau systemau storio IBM Storwize, gallwch ddefnyddio:
protocolau CIM/WBEM;
API RESTING (a gefnogir yn IBM Storwize gan ddechrau gyda fersiwn meddalwedd 8.1.3);
Trapiau SNMP (set gyfyngedig o drapiau, dim ystadegau);
Gall y rhai sydd â diddordeb ddysgu mwy am wahanol ddulliau monitro yn yr adrannau perthnasol o ddogfennaeth y gwerthwr, yn ogystal ag yn y ddogfen IBM Spectrum Virtualize sgriptio.
Mae WBEM yn rhedeg ar ben y protocol HTTP. Trwy WBEM gallwch weithio nid yn unig gyda systemau storio, ond hefyd gyda HBAs, switshis a llyfrgelloedd tâp.
Yn ôl Pensaernïaeth salwch meddwl difrifol и Penderfynu Isadeiledd, prif gydran gweithrediad salwch meddwl difrifol yw'r gweinydd WBEM, sy'n prosesu ceisiadau CIM-XML gan gleientiaid WBEM (yn ein hachos ni, o sgriptiau monitro):
Mae CIM yn fodel gwrthrych-ganolog yn seiliedig ar Iaith Modelu Unedig (UML).
Diffinnir elfennau a reolir fel dosbarthiadau CIM sydd â phriodweddau a dulliau i gynrychioli data a swyddogaethau a reolir.
Yn ôl www.snia.org/pywbem, i gael mynediad at systemau storio trwy CIM/WBEM, gallwch ddefnyddio PyWBEM - llyfrgell ffynhonnell agored a ysgrifennwyd yn Python, sy'n rhoi protocol CIM ar waith i ddatblygwyr a gweinyddwyr system ar gyfer cyrchu gwrthrychau CIM a pherfformio gweithrediadau amrywiol gyda gweinydd WBEM yn gweithredu yn yn unol â SMI-S neu fanylebau CIM eraill.
I gysylltu â'r gweinydd WBEM rydym yn defnyddio'r lluniwr dosbarth Cysylltiad WBEM:
Cysylltiad rhithwir yw hwn, gan fod CIM-XML/WBEM yn rhedeg ar ben HTTP, mae'r cysylltiad go iawn yn digwydd pan fydd dulliau'n cael eu galw ar enghraifft o'r dosbarth WBEMConnection. Yn unol â Rheolydd Cyfrol SAN Storage System IBM a Chanllawiau Arferion Gorau a Pherfformiad Storwize V7000 (Enghraifft C-8, tudalen 412), byddwn yn defnyddio “root/ibm” fel gofod enw CIM ar gyfer system storio IBM Storwize.
Sylwch, er mwyn casglu ystadegau trwy'r protocol CIM-XML/WBEM, rhaid i chi gynnwys y defnyddiwr yn y grŵp diogelwch priodol. Fel arall, wrth weithredu ymholiadau WBEM, bydd allbwn priodoleddau enghraifft dosbarth yn wag.
I gael mynediad at ystadegau storio, y defnyddiwr y gelwir yr adeiladwr oddi tano Cysylltiad WBEM(), rhaid cael o leiaf RestrictedAdmin (ar gael ar gyfer code_level> 7.8.0) neu hawliau Gweinyddwr (nid argymhellir am resymau diogelwch).
Rydym yn cysylltu â'r system storio trwy SSH ac yn edrych ar y niferoedd grŵp:
> 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
Ychwanegwch y defnyddiwr zabbix i'r grŵp a ddymunir:
> chuser -usergrp 5 zabbix
Yn ogystal, yn unol â Rheolydd Cyfrol IBM System Storio SAN a Chanllawiau Arferion Gorau a Pherfformiad Storwize V7000 (t. 415), rhaid i chi alluogi casglu ystadegau ar y system storio. Felly, i gasglu ystadegau bob munud:
> startstats -interval 1
Rydym yn gwirio:
> lssystem | grep statistics
statistics_status on
statistics_frequency 1
I gael yr holl ddosbarthiadau storio presennol, rhaid i chi ddefnyddio'r dull EnumerateClassNames().
Enghraifft:
classnames = conn.EnumerateClassNames(namespace='root/ibm', DeepInheritance=True)
for classname in classnames:
print (classname)
Defnyddir y dull i gael gwerthoedd paramedrau'r system storio EnumrateInstances() class WBEMconnection, gan ddychwelyd rhestr o achosion AMCAN ().
Enghraifft:
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))
Ar gyfer rhai dosbarthiadau sy'n cynnwys nifer fawr o achosion, megis IBMTSSVC_StorageVolume, gall ymholiad llawn o bob achos fod yn eithaf araf. Gall gynhyrchu llawer iawn o ddata y mae'n rhaid ei baratoi gan y system storio, ei drosglwyddo dros y rhwydwaith a'i brosesu gan y sgript. Mae dull ar gyfer achos o'r fath ExecQuery(), sy'n caniatáu i ni gael dim ond priodweddau enghraifft dosbarth sydd o ddiddordeb i ni. Mae'r dull hwn yn cynnwys defnyddio iaith ymholiad tebyg i SQL, naill ai CIM Query Language (DMTF:CQL) neu WBEM Query Language (WQL), i ymholi am wrthrychau storio CIM:
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
Felly, i gael paramedrau (nid cownteri perfformiad) disgiau corfforol (Gyriannau Disg) byddwn yn pleidleisio Dosbarth IBMTSSVC_DiskDrive, i gael paramedrau Cyfrolau - Dosbarth IBMTSSVC_StorageVolume, i gael paramedrau arae - Dosbarth IBMTSSVC_Array, i gael paramedrau MDisks - Class IBMTSSVC_BackendVolume, ac ati.
I gael ystadegau storio ar gyfer Cyfrolau, rhaid i chi nodi IBMTSSVC_StorageVolumeStatistics fel gwerth y paramedr ClassName. Gellir gweld priodweddau'r dosbarth IBMTSSVC_StorageVolumeStatistics sy'n angenrheidiol ar gyfer casglu ystadegau yn Ystadegau Nôd.
Hefyd, ar gyfer dadansoddi perfformiad gallwch ddefnyddio'r dosbarthiadau IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics.
I gofnodi data yn y system fonitro byddwn yn defnyddio'r mecanwaith trapiau zabbix, a weithredir yn python mewn modiwl py-zabbix. Byddwn yn gosod strwythur dosbarthiadau systemau storio a'u priodweddau mewn geiriadur ar ffurf JSON.
Rydym yn uwchlwytho'r templed i'r gweinydd Zabbix, yn sicrhau bod gan y gweinydd monitro fynediad i'r system storio trwy'r protocol WEB (TCP/5989), ac yn gosod ffeiliau ffurfweddu, sgriptiau canfod a monitro ar y gweinydd monitro. Nesaf, ychwanegwch lansiad sgript i'r trefnydd. O ganlyniad: rydym yn darganfod gwrthrychau storio (araeau, disgiau corfforol a rhithwir, caeau a llawer mwy), yn eu trosglwyddo i ddarganfyddiadau Zabbix, yn darllen statws eu paramedrau, yn darllen ystadegau perfformiad (cownteri perfformiad), yn trosglwyddo hyn i gyd i'r Zabbix cyfatebol Eitemau o'n templed.
Templed Zabbix, sgriptiau python, strwythur dosbarthiadau storio a'u priodweddau, yn ogystal ag enghreifftiau o ffeiliau ffurfweddu, gallwch darganfyddwch yma.