Zabbix کا استعمال کرتے ہوئے IBM Storwize اسٹوریج سسٹم کی نگرانی کرنا

اس مضمون میں ہم IBM Storwize سٹوریج سسٹمز اور دیگر سٹوریج سسٹمز کی نگرانی کے بارے میں تھوڑی بات کریں گے جو CIM/WBEM پروٹوکول کو سپورٹ کرتے ہیں۔ اس طرح کی نگرانی کی ضرورت کو مساوات سے باہر رکھا گیا ہے؛ ہم اسے ایک محور پر غور کریں گے۔ ہم Zabbix کو مانیٹرنگ سسٹم کے طور پر استعمال کریں گے۔

Zabbix کے تازہ ترین ورژنز میں، کمپنی نے ٹیمپلیٹس پر بہت زیادہ توجہ دینا شروع کی - ٹیمپلیٹس مانیٹرنگ سروسز، DBMS، سرورز ہارڈویئر (IMM/iBMC) کے ذریعے IPMI کے لیے ظاہر ہونے لگے۔ سٹوریج سسٹم کی نگرانی ابھی بھی ٹیمپلیٹس سے باہر ہے، لہذا زبکس میں سٹوریج کے اجزاء کی حیثیت اور کارکردگی کے بارے میں معلومات کو ضم کرنے کے لیے، آپ کو حسب ضرورت ٹیمپلیٹس استعمال کرنے کی ضرورت ہے۔ میں ان میں سے ایک ٹیمپلیٹس آپ کی توجہ میں لاتا ہوں۔

سب سے پہلے، ایک چھوٹا سا نظریہ.

IBM Storwize اسٹوریج سسٹم کی حیثیت اور اعدادوشمار تک رسائی حاصل کرنے کے لیے، آپ استعمال کر سکتے ہیں:

  1. CIM/WBEM پروٹوکول؛
  2. RESTful API (سافٹ ویئر ورژن 8.1.3 سے شروع ہونے والے IBM Storwize میں تعاون یافتہ)
  3. SNMP ٹریپس (ٹریپس کا محدود سیٹ، کوئی اعداد و شمار نہیں)؛
  4. SSH کے ذریعے اور پھر دور سے جڑیں۔ آرام سے باش اسکرپٹنگ کے لئے موزوں ہے۔.

دلچسپی رکھنے والے وینڈر دستاویزات کے متعلقہ حصوں کے ساتھ ساتھ دستاویز میں نگرانی کے مختلف طریقوں کے بارے میں مزید جان سکتے ہیں۔ IBM سپیکٹرم ورچوئلائز اسکرپٹنگ.

ہم CIM/WBEM پروٹوکول استعمال کریں گے، جو ہمیں مختلف اسٹوریج سسٹمز کے لیے سافٹ ویئر کی اہم تبدیلیوں کے بغیر اسٹوریج سسٹم آپریٹنگ پیرامیٹرز حاصل کرنے کی اجازت دیتے ہیں۔ CIM/WBEM پروٹوکول کے مطابق کام کرتے ہیں۔ سٹوریج مینجمنٹ انیشی ایٹو سپیکیفیکیشن (SMI-S). اسٹوریج مینجمنٹ انیشیٹو - تفصیلات کھلے معیارات پر مبنی ہے۔ CIM (عام معلومات کا ماڈل) и ڈبلیو بی ای ایم (ویب پر مبنی انٹرپرائز مینجمنٹ)، یہ تعین تقسیم شدہ مینجمنٹ ٹاسک فورس.

WBEM HTTP پروٹوکول کے اوپر چلتا ہے۔ WBEM کے ذریعے آپ نہ صرف سٹوریج سسٹم کے ساتھ بلکہ HBAs، سوئچز اور ٹیپ لائبریریوں کے ساتھ بھی کام کر سکتے ہیں۔

کے مطابق ایس ایم آئی آرکیٹیکچر и انفراسٹرکچر کا تعین کریں۔، SMI کے نفاذ کا بنیادی جزو WBEM سرور ہے، جو WBEM کلائنٹس کی CIM-XML درخواستوں پر کارروائی کرتا ہے (ہمارے معاملے میں، مانیٹرنگ اسکرپٹ سے):

Zabbix کا استعمال کرتے ہوئے IBM Storwize اسٹوریج سسٹم کی نگرانی کرنا

CIM ایک آبجیکٹ پر مبنی ماڈل ہے جس کی بنیاد یونیفائیڈ ماڈلنگ لینگویج (UML) پر ہے۔
منظم عناصر کی تعریف CIM کلاسز کے طور پر کی جاتی ہے جن میں منظم ڈیٹا اور فعالیت کی نمائندگی کرنے کے لیے خصوصیات اور طریقے ہوتے ہیں۔

کے مطابق www.snia.org/pywbemCIM/WBEM کے ذریعے سٹوریج سسٹم تک رسائی حاصل کرنے کے لیے، آپ PyWBEM - Python میں لکھی ہوئی ایک اوپن سورس لائبریری کا استعمال کر سکتے ہیں، جو ڈیولپرز اور سسٹم ایڈمنسٹریٹرز کو CIM آبجیکٹ تک رسائی حاصل کرنے اور WBEM سرور کے ساتھ مختلف آپریشنز کرنے کے لیے CIM پروٹوکول کے نفاذ کے ساتھ فراہم کرتی ہے۔ SMI-S یا دیگر CIM وضاحتیں کے مطابق۔

WBEM سرور سے جڑنے کے لیے ہم کلاس کنسٹرکٹر استعمال کرتے ہیں۔ ڈبلیو بی ای ایم کنکشن:

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

یہ ایک ورچوئل کنکشن ہے، چونکہ CIM-XML/WBEM HTTP کے اوپر چلتا ہے، اصل کنکشن اس وقت ہوتا ہے جب WBEMConnection کلاس کی مثال پر طریقوں کو بلایا جاتا ہے۔ IBM سسٹم سٹوریج SAN والیوم کنٹرولر اور Storwize V7000 بہترین پریکٹسز اور پرفارمنس گائیڈ لائنز (مثال C-8، صفحہ 412) کے مطابق، ہم IBM Storwize اسٹوریج سسٹم کے لیے CIM نام کی جگہ کے طور پر "root/ibm" استعمال کریں گے۔

براہ کرم نوٹ کریں کہ 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    

زبکس صارف کو مطلوبہ گروپ میں شامل کریں:

> 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)

یہ طریقہ اسٹوریج سسٹم کے پیرامیٹرز کی قدروں کو حاصل کرنے کے لیے استعمال کیا جاتا ہے۔ Inumerate Instances() کلاس WBEMConnection، مثالوں کی فہرست واپس کر رہا ہے۔ 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 سٹوریج آبجیکٹ سے استفسار کرنے کے لیے SQL جیسی استفسار کی زبان، یا تو CIM Query Language (DMTF:CQL) یا WBEM Query Language (WQL) کا استعمال شامل ہے:

request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)

اس بات کا تعین کرنے کے لیے کہ ہمیں اسٹوریج آبجیکٹ کے پیرامیٹرز کو حاصل کرنے کے لیے کن کلاسوں کی ضرورت ہے، مثال کے طور پر دستاویزات پڑھیں سسٹم کے تصورات CIM تصورات کا نقشہ کیسے بناتے ہیں۔.

لہذا ، جسمانی ڈسکوں (ڈسک ڈرائیوز) کے پیرامیٹرز (پرفارمنس کاؤنٹر نہیں) حاصل کرنے کے لئے ہم کلاس IBMTSSVC_DISKDRIVE ، حجم کے پیرامیٹرز حاصل کرنے کے لئے ، کلاس IBMTSSVC_STORAGEVOLUME ، کو حاصل کرنے کے لئے ، سرنی پیرامیٹرز - کلاس IBMTSSVC_ARRAY ، پیرامیٹرز کو حاصل کرنے کے لئے ، پیرامیٹرز کو حاصل کریں گے ، پیرامیٹرز کو حاصل کریں گے۔

کارکردگی کے لیے آپ پڑھ سکتے ہیں۔ کامن انفارمیشن ماڈل ایجنٹ کے فنکشنل ڈایاگرام (خاص طور پر - سرور کی کارکردگی کا ذیلی پروفائل بلاک کریں۔) اور IBM سسٹم سٹوریج SAN والیوم کنٹرولر اور Storwize V7000 بہترین پریکٹسز اور پرفارمنس گائیڈ لائنز (مثال C-11، صفحہ 415)۔

والیوم کے لیے اسٹوریج کے اعداد و شمار حاصل کرنے کے لیے، آپ کو IBMTSSVC_StorageVolumeStatistics کو ClassName پیرامیٹر کی قدر کے طور پر بتانا چاہیے۔ اعداد و شمار جمع کرنے کے لیے ضروری IBMTSSVC_StorageVolumeStatistics کلاس کی خصوصیات کو اس میں دیکھا جا سکتا ہے۔ نوڈ کے اعدادوشمار.

اس کے علاوہ، کارکردگی کے تجزیے کے لیے آپ IBMTSSVC_BackendVolumeStatistics، IBMTSSVC_DiskDriveStatistics، IBMTSSVC_NodeStatistics کلاسز استعمال کر سکتے ہیں۔

مانیٹرنگ سسٹم میں ڈیٹا ریکارڈ کرنے کے لیے ہم طریقہ کار استعمال کریں گے۔ zabbix جال، ایک ماڈیول میں python میں لاگو کیا گیا ہے۔ py-zabbix. ہم اسٹوریج سسٹمز کی کلاسز اور ان کی خصوصیات کو JSON فارمیٹ میں ایک لغت میں رکھیں گے۔

ہم ٹیمپلیٹ کو Zabbix سرور پر اپ لوڈ کرتے ہیں، اس بات کو یقینی بنائیں کہ مانیٹرنگ سرور کو WEB پروٹوکول (TCP/5989) کے ذریعے اسٹوریج سسٹم تک رسائی حاصل ہے، اور مانیٹرنگ سرور پر کنفیگریشن فائلیں، پتہ لگانے اور مانیٹرنگ اسکرپٹس رکھیں۔ اگلا، شیڈولر میں اسکرپٹ لانچ شامل کریں۔ نتیجے کے طور پر: ہم سٹوریج آبجیکٹ (ارے، فزیکل اور ورچوئل ڈسک، انکلوژرز اور بہت کچھ) دریافت کرتے ہیں، انہیں Zabbix دریافتوں میں منتقل کرتے ہیں، ان کے پیرامیٹرز کی حیثیت کو پڑھتے ہیں، کارکردگی کے اعدادوشمار (کارکردگی کے کاؤنٹر) کو پڑھتے ہیں، یہ سب متعلقہ Zabbix کو منتقل کرتے ہیں۔ ہمارے ٹیمپلیٹ کے آئٹمز۔

Zabbix ٹیمپلیٹ، ازگر کی اسکرپٹس، اسٹوریج کلاسز کی ساخت اور ان کی خصوصیات کے ساتھ ساتھ کنفیگریشن فائلوں کی مثالیں، آپ یہاں تلاش کریں.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں