CIM/WBEM ప్రోటోకాల్లకు మద్దతిచ్చే IBM Storwize స్టోరేజ్ సిస్టమ్లు మరియు ఇతర స్టోరేజ్ సిస్టమ్లను పర్యవేక్షించడం గురించి ఈ కథనంలో మనం కొంచెం మాట్లాడుతాము. అటువంటి పర్యవేక్షణ యొక్క ఆవశ్యకత సమీకరణం నుండి విడిచిపెట్టబడింది; మేము దీనిని ఒక సిద్ధాంతంగా పరిగణిస్తాము. మేము Zabbixని పర్యవేక్షణ వ్యవస్థగా ఉపయోగిస్తాము.
Zabbix యొక్క తాజా సంస్కరణల్లో, కంపెనీ టెంప్లేట్లపై ఎక్కువ శ్రద్ధ చూపడం ప్రారంభించింది - IPMI ద్వారా పర్యవేక్షణ సేవలు, DBMS, సర్వర్ల హార్డ్వేర్ (IMM/iBMC) కోసం టెంప్లేట్లు కనిపించడం ప్రారంభించాయి. నిల్వ సిస్టమ్ పర్యవేక్షణ ఇప్పటికీ టెంప్లేట్లకు వెలుపల ఉంది, కాబట్టి నిల్వ భాగాల స్థితి మరియు పనితీరు గురించి సమాచారాన్ని Zabbixలో ఏకీకృతం చేయడానికి, మీరు అనుకూల టెంప్లేట్లను ఉపయోగించాలి. నేను ఈ టెంప్లేట్లలో ఒకదానిని మీ దృష్టికి తీసుకువస్తున్నాను.
మొదట, ఒక చిన్న సిద్ధాంతం.
IBM Storwize నిల్వ సిస్టమ్ల స్థితి మరియు గణాంకాలను యాక్సెస్ చేయడానికి, మీరు వీటిని ఉపయోగించవచ్చు:
CIM/WBEM ప్రోటోకాల్లు;
RESTful API (సాఫ్ట్వేర్ వెర్షన్ 8.1.3తో ప్రారంభించి IBM Storwizeలో మద్దతు ఉంది);
ఆసక్తి ఉన్నవారు విక్రేత డాక్యుమెంటేషన్లోని సంబంధిత విభాగాలలో అలాగే డాక్యుమెంట్లో వివిధ పర్యవేక్షణ పద్ధతుల గురించి మరింత తెలుసుకోవచ్చు IBM స్పెక్ట్రమ్ వర్చువలైజ్ స్క్రిప్టింగ్.
WBEM HTTP ప్రోటోకాల్ పైన నడుస్తుంది. WBEM ద్వారా మీరు నిల్వ వ్యవస్థలతో మాత్రమే కాకుండా, HBAలు, స్విచ్లు మరియు టేప్ లైబ్రరీలతో కూడా పని చేయవచ్చు.
ప్రకారం SMI ఆర్కిటెక్చర్ и మౌలిక సదుపాయాలను నిర్ణయించండి, SMI అమలులో ప్రధాన భాగం WBEM సర్వర్, ఇది WBEM క్లయింట్ల నుండి CIM-XML అభ్యర్థనలను ప్రాసెస్ చేస్తుంది (మా విషయంలో, పర్యవేక్షణ స్క్రిప్ట్ల నుండి):
CIM అనేది యూనిఫైడ్ మోడలింగ్ లాంగ్వేజ్ (UML) ఆధారంగా ఆబ్జెక్ట్-ఓరియెంటెడ్ మోడల్.
నిర్వహించబడే మూలకాలు CIM తరగతులుగా నిర్వచించబడ్డాయి, ఇవి నిర్వహించబడే డేటా మరియు కార్యాచరణను సూచించే లక్షణాలు మరియు పద్ధతులను కలిగి ఉంటాయి.
ప్రకారం www.snia.org/pywbem, CIM/WBEM ద్వారా స్టోరేజ్ సిస్టమ్లను యాక్సెస్ చేయడానికి, మీరు PyWBEM - పైథాన్లో వ్రాయబడిన ఓపెన్ సోర్స్ లైబ్రరీని ఉపయోగించవచ్చు, ఇది డెవలపర్లు మరియు సిస్టమ్ అడ్మినిస్ట్రేటర్లకు CIM ఆబ్జెక్ట్లను యాక్సెస్ చేయడానికి మరియు WBEM సర్వర్తో వివిధ కార్యకలాపాలను నిర్వహించడానికి CIM ప్రోటోకాల్ అమలును అందిస్తుంది. SMI-S లేదా ఇతర CIM స్పెసిఫికేషన్లకు అనుగుణంగా.
WBEM సర్వర్కి కనెక్ట్ చేయడానికి మేము క్లాస్ కన్స్ట్రక్టర్ని ఉపయోగిస్తాము WBEMకనెక్షన్:
ఇది వర్చువల్ కనెక్షన్, ఎందుకంటే CIM-XML/WBEM HTTP పైన రన్ అవుతుంది, WBEMConnection క్లాస్ యొక్క ఒక ఉదాహరణలో పద్ధతులను పిలిచినప్పుడు నిజమైన కనెక్షన్ ఏర్పడుతుంది. IBM సిస్టమ్ స్టోరేజ్ SAN వాల్యూమ్ కంట్రోలర్ మరియు Storwize V7000 బెస్ట్ ప్రాక్టీసెస్ మరియు పెర్ఫార్మెన్స్ గైడ్లైన్స్ (ఉదాహరణ C-8, పేజీ 412) ప్రకారం, మేము IBM Storwize స్టోరేజ్ సిస్టమ్ కోసం CIM నేమ్స్పేస్గా “root/ibm”ని ఉపయోగిస్తాము.
దయచేసి CIM-XML/WBEM ప్రోటోకాల్ ద్వారా గణాంకాలను సేకరించడానికి, మీరు తప్పనిసరిగా తగిన భద్రతా సమూహంలో వినియోగదారుని చేర్చాలని గుర్తుంచుకోండి. లేకపోతే, WBEM ప్రశ్నలను అమలు చేస్తున్నప్పుడు, క్లాస్ ఇన్స్టాన్స్ అట్రిబ్యూట్ల అవుట్పుట్ ఖాళీగా ఉంటుంది.
నిల్వ గణాంకాలను యాక్సెస్ చేయడానికి, వినియోగదారుని కింద కన్స్ట్రక్టర్ అంటారు WBEMకనెక్షన్(), తప్పనిసరిగా కనీసం 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 సిస్టమ్ స్టోరేజ్ SAN వాల్యూమ్ కంట్రోలర్ మరియు Storwize V7000 బెస్ట్ ప్రాక్టీసెస్ మరియు పెర్ఫార్మెన్స్ గైడ్లైన్స్ (p. 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)
నిల్వ సిస్టమ్ పారామితుల విలువలను పొందేందుకు ఈ పద్ధతి ఉపయోగించబడుతుంది ఉదాహరణలు () తరగతి WBEMకనెక్షన్, ఉదాహరణల జాబితాను అందిస్తుంది CIMinstance().
ఉదాహరణకు:
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 స్టోరేజ్ ఆబ్జెక్ట్లను ప్రశ్నించడానికి, SQL-వంటి ప్రశ్న భాషను, CIM క్వెరీ లాంగ్వేజ్ (DMTF:CQL) లేదా WBEM క్వెరీ లాంగ్వేజ్ (WQL)ని ఉపయోగించడం ఉంటుంది:
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
కాబట్టి, ఫిజికల్ డిస్క్ల (డిస్క్ డ్రైవ్లు) పారామితులను (పనితీరు కౌంటర్లు కాదు) పొందేందుకు, వాల్యూమ్ల పారామితులను పొందేందుకు మేము క్లాస్ IBMTSSVC_DiskDriveని పోల్ చేస్తాము - క్లాస్ IBMTSSVC_StorageVolume, శ్రేణి పారామితులను పొందేందుకు - క్లాస్ IBMTSSVC_Array, క్లాస్ IBMTSSVC_Array, IBMTSVC_Arrays మొదలైనవి
వాల్యూమ్ల కోసం నిల్వ గణాంకాలను పొందేందుకు, మీరు తప్పనిసరిగా IBMTSSVC_StorageVolumeStatisticsని ClassName పరామితి యొక్క విలువగా పేర్కొనాలి. గణాంకాలను సేకరించేందుకు అవసరమైన IBMTSSVC_StorageVolumeStatistics తరగతి యొక్క లక్షణాలను వీక్షించవచ్చు నోడ్ గణాంకాలు.
అలాగే, పనితీరు విశ్లేషణ కోసం మీరు IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics తరగతులను ఉపయోగించవచ్చు.
మానిటరింగ్ సిస్టమ్లో డేటాను రికార్డ్ చేయడానికి మేము మెకానిజంను ఉపయోగిస్తాము zabbix ఉచ్చులు, మాడ్యూల్లో పైథాన్లో అమలు చేయబడింది py-zabbix. మేము స్టోరేజ్ సిస్టమ్స్ క్లాస్ల స్ట్రక్చర్ మరియు వాటి ప్రాపర్టీలను JSON ఫార్మాట్లో డిక్షనరీలో ఉంచుతాము.
మేము టెంప్లేట్ను Zabbix సర్వర్కు అప్లోడ్ చేస్తాము, మానిటరింగ్ సర్వర్కు WEB ప్రోటోకాల్ (TCP/5989) ద్వారా స్టోరేజ్ సిస్టమ్కి యాక్సెస్ ఉందని నిర్ధారించుకోండి మరియు పర్యవేక్షణ సర్వర్లో కాన్ఫిగరేషన్ ఫైల్లు, డిటెక్షన్ మరియు మానిటరింగ్ స్క్రిప్ట్లను ఉంచుతాము. తర్వాత, షెడ్యూలర్కు స్క్రిప్ట్ లాంచ్ను జోడించండి. ఫలితంగా: మేము నిల్వ వస్తువులను (శ్రేణులు, భౌతిక మరియు వర్చువల్ డిస్క్లు, ఎన్క్లోజర్లు మరియు మరిన్ని) కనుగొంటాము, వాటిని Zabbix ఆవిష్కరణలకు బదిలీ చేస్తాము, వాటి పారామితుల స్థితిని చదవండి, పనితీరు గణాంకాలను (పనితీరు కౌంటర్లు) చదవండి, వీటన్నింటినీ సంబంధిత Zabbixకి బదిలీ చేస్తాము మా టెంప్లేట్ యొక్క అంశాలు.
Zabbix టెంప్లేట్, పైథాన్ స్క్రిప్ట్లు, నిల్వ తరగతుల నిర్మాణం మరియు వాటి లక్షణాలు, అలాగే కాన్ఫిగరేషన్ ఫైల్ల ఉదాహరణలు, మీరు చేయవచ్చు ఇక్కడ కనుగొనండి.