GLPI ۾ LSI RAID انوینٽري

GLPI ۾ LSI RAID انوینٽري
منهنجي ڪم ۾، مون کي اڪثر بنيادي ڍانچي جي باري ۾ معلومات جي کوٽ جي باري ۾ جنون جو تجربو آهي، ۽ سرور جي تعداد ۾ اضافو سان خدمت ڪئي پئي وڃي، اهو حقيقي تشدد ۾ بدلجي ٿو. جيتوڻيڪ جڏهن مان ننڍين تنظيمن ۾ ايڊمنسٽريٽر هئس، تڏهن به مان هميشه اهو ڄاڻڻ چاهيندو هوس ته ڇا آهي، ڪٿي پلگ ان ڪيو ويو آهي، ڪهڙا ماڻهو ذميوار آهن ڪهڙي هارڊويئر يا سروس جي پيس، ۽ سڀ کان اهم، انهن سڀني تبديلين کي رڪارڊ ڪرڻ لاءِ. جڏهن توهان ڪنهن نئين جڳهه تي ايندا آهيو ۽ هڪ واقعو پيش ڪندا آهيو، گهڻو وقت ان معلومات جي ڳولا ۾ خرچ ڪيو ويندو آهي. اڳيون، مان توهان کي ٻڌايان ٿو ته مون کي RuVDS ۾ منهن ڏيڻو پيو، ۽ عنوان ۾ بيان ڪيل مسئلو ڪيئن حل ڪيو.

prehistory

هڪ ڪاروباري منتظم جي حيثيت سان، مون کي ڊيٽا سينٽر ۾ ڪم ڪرڻ جو ٿورو تجربو هو، پر مون ريڪ ٽيبلز جي هڪ جھلڪ ڏٺي. اهو واضح طور تي سڀني سرورز، يو پي ايس، سوئچز ۽ انهن جي وچ ۾ سڀني ڪنيڪشن سان ريڪ ڏيکاري ٿو. RuVDS وٽ اهڙو سسٽم نه هو، پر صرف ايڪسل/پيپر فائلون سرورز، انهن جا ڪجهه حصا، ريڪ نمبر، وغيره بابت معلومات سان. هن طريقي سان، ننڍن حصن ۾ تبديلين کي ٽريڪ ڪرڻ تمام ڏکيو آهي. پر سرورز لاءِ سڀ کان وڌيڪ اهم ۽ بار بار تبديل ٿيل استعمال جون شيون آهن ڊسڪون. اهو تمام ضروري آهي ته ڊسڪ جي صورتحال ۽ انهن جي اسٽريٽجڪ رزرو تي تازه ترين معلومات کي برقرار رکڻ لاء. جيڪڏهن هڪ ڊرائيو RAID صف کان ناڪام ٿئي ٿي ۽ جلدي تبديل نه ڪئي وئي آهي، اهو آخرڪار موتمار نتيجن جي ڪري سگھي ٿو. تنهن ڪري، اسان کي واقعي هڪ سسٽم جي ضرورت آهي جيڪا ڊسڪ جي جڳهه ۽ انهن جي حالت کي ٽريڪ ڪري ٿي انهي کي سمجهڻ لاء ته اسان کي ڇا ملي سگهي ٿو ۽ اسان کي ڪهڙي ماڊل خريد ڪرڻ جي ضرورت آهي.

بچاءَ لاءِ آيو GLPI، هڪ اوپن سورس پراڊڪٽ جيڪا آئي ٽي شعبن جي ڪارڪردگي کي بهتر ڪرڻ ۽ انهن کي آئي ٽي آئي ايل آئيڊيلز تائين آڻڻ لاءِ ٺهيل آهي. سامان جي انوینٽري ۽ ريڪ مينيجمينٽ کان علاوه، ان ۾ هڪ ڄاڻ جو بنياد، سروس ڊيسڪ، دستاويزن جو انتظام ۽ گهڻو ڪجهه آهي. GLPI وٽ ڪيترائي پلگ ان آھن، جن ۾ FusionInventory ۽ OCS Inventory شامل آھن، جيڪي توھان کي خودڪار طريقي سان ڪمپيوٽرن ۽ ٻين ڊوائيسز بابت معلومات گڏ ڪرڻ جي اجازت ڏين ٿيون ايجنٽ تنصيب ۽ SNMP ذريعي. توھان ٻين مضمونن ۾ GLPI ۽ پلگ ان انسٽال ڪرڻ بابت وڌيڪ پڙھي سگھو ٿا، سڀ کان بھترين - سرڪاري دستاويز. توھان ان کي انسٽال ڪري سگھوٿا اسان جي ھوسٽنگ تي تيار ٿيل ٽيمپليٽ تي LAMP.

جڏهن ته، ايجنٽ کي ترتيب ڏيڻ کان پوء، اسان ڪمپيوٽر جي اجزاء کي GLPI ۾ کولينداسين ۽ هي ڏسو:

GLPI ۾ LSI RAID انوینٽري
مسئلو اهو آهي ته پلگ ان مان ڪوبه نه ڏسي سگھي ٿو جسماني ڊسڪ بابت LSI RAID arrays ۾. ڏٺو وڃي ته هي مسئلو ڪيئن حل ڪيو ويو آهي مانيٽرنگ لاءِ Zabbix ۾ PowerShell اسڪرپٽ استعمال ڪندي lsi-raid.ps1 مون فيصلو ڪيو ته GLPI ڏانهن معلومات جي منتقلي لاءِ ساڳيو لکڻ.
صفن ۾ ڊسڪ بابت ڊيٽا ڪنٽرولر ٺاهيندڙ کان استعمال ڪندي حاصل ڪري سگهجي ٿو؛ LSI جي صورت ۾، هي StorCLI آهي. ان مان توھان حاصل ڪري سگھوٿا ڊيٽا JSON فارميٽ ۾، ان کي پارس ڪريو ۽ ان کي GLPI API ڏانھن منتقل ڪريو. اسان ڊسڪ کي ڪمپيوٽرن سان ڳنڍينداسين جيڪي FusionInventory اڳ ۾ ئي ٺاهي چڪا آهن. جڏهن ٻيهر عمل ڪيو ويندو، اسڪرپٽ ڊسڪ تي ڊيٽا کي اپڊيٽ ڪندو ۽ نوان شامل ڪندو. اسڪرپٽ خود Send-RAIDtoGLPI.ps1 آهي هتي GitHub تي. اڳتي هلي مان توهان کي ٻڌائيندس ته ان کي ڪيئن استعمال ڪجي.

ڇا جي ضرورت پوندي

  1. جي ايل پي آئي نسخو 9.5.1 (هن تي آزمائشي)
  2. Плагин فيوزن انوینٹری ۽ ونڊوز لاءِ ايجنٽ
  3. ونڊوز 2012 R2 (۽ وڌيڪ) هڪ ميزبان سسٽم جي طور تي، يا هڪ انتظام-VM ان ۾ داخل ٿيل ڪنٽرولر سان، پاور شيل ورزن 4 يا وڌيڪ
  4. انسٽال ٿيل MegaRAID ڊرائيور
  5. PowerShell لاءِ ماڊل - PSGLPI
  6. صارف ٽوڪن ۽ ايپ ٽوڪن پاران ٺاهيل API ذريعي اختيار ڏيڻ لاءِ انتظامي پروفائل سان GLPI ۾ اڪائونٽ

اهم نقطو. ڪجھ سببن لاء، GLPI وٽ ڊسڪ ماڊل لاء 2 مختلف ادارا آھن، پر "ميڊيا قسم" ملڪيت نه آھي. تنهن ڪري، HDD ۽ SSD ملڪيتن کي رڪارڊ ڪرڻ لاءِ، مون ”هارڊ ڊرائيو ماڊلز“ ڊراپ-ڊائون لسٽ استعمال ڪرڻ جو فيصلو ڪيو (front/devicemodel.php?itemtype=DeviceHardDriveModel). اسڪرپٽ کي GLPI ڊيٽابيس ۾ اهي قيمتون هجڻ گهرجن، ٻي صورت ۾ اهو ڊسڪ ماڊل بابت ڊيٽا لکڻ جي قابل نه هوندو. تنهن ڪري، توهان کي هن خالي لسٽ ۾ پهرين HDD، پوء SSD شامل ڪرڻ جي ضرورت آهي، انهي ڪري ته ڊيٽابيس ۾ انهن عنصرن جي سڃاڻپ 1 ۽ 2 آهن. جيڪڏهن ٻيا آهن، پوء اسڪرپٽ جي هن لائن ۾ تبديل ڪريو Send-RAIDtoGLPI.ps1 کان پوء. HDD ۽ SSD بدران 1 ۽ 2 انهن جي لاڳاپيل ID:

deviceharddrivemodels_id = switch ($MediaType) { "HDD" { "1" }; "SSD" { "2" }; default { "" } }

جيڪڏهن توهان هن سان پريشان ٿيڻ نٿا چاهيو يا توهان هن ڊراپ-ڊائون لسٽ کي مختلف طريقي سان استعمال ڪريو ٿا، توهان صرف هن لائن کي اسڪرپٽ مان هٽائي سگهو ٿا.

توھان کي پڻ "Element Statuses" (/front/state.php) ۾ ڊسڪ لاءِ اسٽيٽس شامل ڪرڻ جي ضرورت آھي. مون اسٽيٽسز شامل ڪيون آهن “MediaError” (اتي گهٽ ۾ گهٽ هڪ ڊسڪ رسائي جي غلطي هئي) ۽ “OK”، اسڪرپٽ ۾ هڪ لائن جتي انهن جي آئي ڊيز منتقل ٿيل آهن، “2” “OK” لاءِ ۽ “1” “MediaError” لاءِ:

states_id = switch ($MediaError) { 0 { "2" }; { $_ -gt 0 } { "1" } }

اهي حالتون سهولت لاءِ گهربل آهن؛ جيڪڏهن توهان کي انهن خاصيتن جي ضرورت نه آهي، ته توهان پڻ هن لائن کي مڪمل طور تي حذف ڪري سگهو ٿا.

خود رسم الخط ۾، متغيرن کي اشارو ڪرڻ نه وساريو. $GlpiCreds ۾ GLPI API سرور، UserToken ۽ AppToken جو URL هجڻ لازمي آهي.

لکت ۾ ڇا آهي

پيچيده JSON پارسنگ ۽ خالي ifs جي ڪري، اسڪرپٽ پڙهڻ ڏکيو آهي، تنهنڪري مان هتي ان جي منطق کي بيان ڪندس.

جڏهن پهريون ڀيرو هوسٽ تي لانچ ڪيو ويو، اسڪرپٽ سڀني ڪنٽرولرز جي ذريعي وڃي ٿي ۽ سيريل نمبرن ذريعي GLPI ڊيٽابيس ۾ ڊسڪ جي ڳولا ڪري ٿي؛ جيڪڏهن اهو نه ڳولي، اهو ماڊل ڳولي ٿو، جيڪڏهن اهو ماڊل نه ڳولي، اهو شامل ڪري ٿو. نئين ڊسڪ جو ماڊل GLPI ڏانهن ۽ هن ڊسڪ کي ڊيٽابيس ۾ داخل ڪري ٿو.

هر نئون پاس اسڪرپٽ نئين ڊسڪ کي ڳولڻ جي ڪوشش ڪندو، پر اهو نه ڄاڻندو آهي ته گم ٿيل ماڻهن کي ڪيئن هٽائڻ، تنهنڪري توهان کي دستي طور تي ڪرڻو پوندو.

لڳائڻ جو مثال

اسڪرپٽ مخزن ۾ Deploy-Send-RAIDtoGLPI.ps1 اسڪرپٽ شامل آهي، جيڪو اسان جي GLPI سرور مان ضروري فائلن سان گڏ هڪ زپ آرڪائيو ڊائون لوڊ ڪندو ۽ انهن کي هر ميزبان تي ترتيب ڏيندو.

فائلن کي نقل ڪرڻ کان پوء، اسڪرپٽ نصب ڪندو FusionInventory ايجنٽ کي روزاني ڪم جي طور تي هلائڻ ۽ اسان جي اسڪرپٽ لاء ساڳيو ڪم ٺاهي. ڪامياب عمل ڪرڻ کان پوء، اسان آخرڪار GLPI ۾ ڪمپيوٽر جي اجزاء سيڪشن ۾ ڊرائيو ڏسي سگهنداسين.

نتيجي ۾

ھاڻي، "سيٽنگون" -> "اجزاء" -> "ھارڊ ڊرائيو" مينيو ۾ GLPI ڏانھن وڃڻ سان، اسان ڊرائيو ماڊل تي ڪلڪ ڪري سگھون ٿا ۽ انھن جي مقدار کي ڏسي سگھون ٿا سمجھو ته اسان کي ڇا خريد ڪرڻ جي ضرورت آھي.

GLPI ۾ LSI RAID انوینٽري
GLPI ۾ LSI RAID انوینٽري

جو ذريعو: www.habr.com

تبصرو شامل ڪريو