مخزون LSI RAID في GLPI

مخزون LSI RAID في GLPI
في عملي ، غالبًا ما أعاني من الهواجس حول نقص المعلومات حول البنية التحتية ، ومع زيادة أسطول الخوادم المزودة بالخدمات ، فإن هذا يتحول إلى تعذيب حقيقي. حتى عندما كنت مسؤولاً في مؤسسات صغيرة ، كنت أرغب دائمًا في معرفة ما هو المكان ، وأين تم توصيله ، وأي من الأشخاص كان مسؤولاً عن أي قطعة من الحديد أو الخدمة ، والأهم من ذلك ، إصلاح التغييرات في كل شيء. عندما تأتي إلى مكان جديد وتواجه نوعًا من الحوادث ، يتم قضاء الكثير من الوقت في البحث عن هذه المعلومات. بعد ذلك ، سأخبرك بما يجب أن أواجهه في RuVDS ، وكيف حللت المشكلة المشار إليها في العنوان.

قبل التاريخ

لكوني مسؤول مؤسسة ، كانت لدي خبرة قليلة في مركز البيانات ، لكنني رأيت RackTables من زاوية عيني. قدم بصريًا رفًا مع جميع الخوادم ومزودات UPS والمفاتيح وجميع الاتصالات بينها. لم يكن لدى RuVDS مثل هذا النظام ، ولكن فقط ملفات Excel / الورق التي تحتوي على معلومات حول الخوادم ، وبعض مكوناتها ، وأرقام الحامل ، وما إلى ذلك. باستخدام هذا النهج ، من الصعب جدًا تتبع التغييرات في المكونات الصغيرة. لكن أهم المواد الاستهلاكية التي يتم استبدالها بشكل متكرر للخوادم هي الأقراص. من المهم جدًا الاحتفاظ بمعلومات محدثة عن حالة الأقراص واحتياطيها الاستراتيجي. إذا تعطل محرك الأقراص من مجموعة RAID ولم يتم استبداله بسرعة ، فقد يؤدي ذلك في النهاية إلى عواقب وخيمة. لذلك ، نحتاج حقًا إلى نظام يتتبع موقع الأقراص وحالتها لفهم ما قد نفقده والنماذج التي نحتاج إلى شرائها.

جاء GLPI إلى الإنقاذ ، وهو منتج مفتوح المصدر مصمم لتحسين عمل أقسام تكنولوجيا المعلومات ونقلهم إلى المثل العليا لـ ITIL. بالإضافة إلى مخزون المعدات وإدارة الرفوف ، فإنه يحتوي على قاعدة معرفية ومكتب خدمة وإدارة مستندات وغير ذلك الكثير. يحتوي GLPI على العديد من المكونات الإضافية ، بما في ذلك FusionInventory و OCS Inventory ، والتي تتيح لك جمع المعلومات تلقائيًا حول أجهزة الكمبيوتر والأجهزة الأخرى من خلال تثبيت الوكيل و SNMP. يمكنك قراءة المزيد حول تثبيت GLPI والمكونات الإضافية في مقالات أخرى ، والأفضل من ذلك كله - الوثائق الرسمية. يمكنك تثبيته على استضافتنا على قالب جاهز LAMP.

ومع ذلك ، بعد نشر الوكيل ، سنفتح مكونات الكمبيوتر في GLPI ونرى هذا:

مخزون LSI RAID في GLPI
تكمن المشكلة في أنه لا يمكن لأي من المكونات الإضافية رؤية معلومات حول الأقراص المادية في مصفوفات LSI RAID. بعد معرفة كيفية حل هذه المشكلة للمراقبة في Zabbix باستخدام برنامج PowerShell النصي lsi-raid.ps1 قررت أن أكتب شيئًا مشابهًا لنقل المعلومات إلى GLPI.
يمكن الحصول على معلومات حول الأقراص الموجودة في المصفوفة باستخدام الأدوات المساعدة من الشركة المصنعة لوحدة التحكم ، في حالة LSI ، هذا هو StorCLI. يمكنك من خلاله الحصول على البيانات بتنسيق JSON وتحليلها وتمريرها إلى GLPI API. سنربط الأقراص بأجهزة الكمبيوتر التي أنشأها FusionInventory بالفعل. عند إعادة التنفيذ ، سيقوم البرنامج النصي بتحديث البيانات على الأقراص وإضافة أقراص جديدة. يكمن البرنامج النصي Send-RAIDtoGLPI.ps1 نفسه هنا على جيثب. بعد ذلك ، سأوضح لك كيفية استخدامه.

ما سيكون مطلوبا

  1. GLPI الإصدار 9.5.1 (تم اختباره في هذا الإصدار)
  2. المساعد جرد فيوجن ووكيل تحت Windows
  3. Windows 2012 R2 (والإصدارات الأحدث) كنظام مضيف ، أو إدارة VM مع وحدة تحكم تم إعادة توجيهها إليه ، PowerShell الإصدار 4 أو أعلى
  4. برنامج تشغيل MegaRAID المثبت
  5. الوحدة النمطية لـ PowerShell - PSGLPI
  6. حساب GLPI مع ملف تعريف المسؤول للحصول على إذن عبر واجهة برمجة التطبيقات التي تم إنشاؤها بواسطة UserToken و AppToken

نقطة مهمة. لسبب ما ، يحتوي GLPI على كيانين مختلفين لطراز القرص ، ولكن لا توجد خاصية "نوع الوسائط". لذلك ، لتسجيل خصائص HDD و SSD ، قررت استخدام القائمة المنسدلة "نماذج محركات الأقراص الثابتة" (front / devicemodel.php؟ itemtype = DeviceHardDriveModel). يجب أن يحتوي البرنامج النصي على هذه القيم في قاعدة بيانات GLPI ، وإلا فلن يتمكن من كتابة بيانات حول طراز القرص. لذلك ، تحتاج إلى إضافة HDD إلى هذه القائمة الفارغة أولاً ، ثم SSD ، بحيث تكون معرفات هذه العناصر في قاعدة البيانات هي 2 و 1. إذا كان هناك عناصر أخرى ، فاستبدل في هذا السطر النصي Send-RAIDtoGLPI.ps2 بعد HDD و SSD بدلاً من 1 و 1 المعرفات المقابلة:

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

إذا كنت لا تريد العبث بها أو إذا كنت تستخدم هذه القائمة المنسدلة بشكل مختلف ، يمكنك ببساطة إزالة هذا السطر من البرنامج النصي.

تحتاج أيضًا إلى إضافة حالات الأقراص إلى "حالات العنصر" (/front/state.php). لقد أضفت الحالة "MediaError" (كان هناك خطأ واحد على الأقل في الوصول إلى القرص) و "OK" ، سطر في البرنامج النصي حيث يتم تمرير معرفاتهم ، و "2" لـ "OK" و "1" لـ "MediaError":

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

هذه الحالات ضرورية للملاءمة ، إذا لم تكن بحاجة لهذه الخصائص ، يمكنك أيضًا حذف هذا السطر بالكامل.

في البرنامج النصي نفسه ، لا تنس تعيين المتغيرات على متغيراتك. يجب أن يحتوي $ GlpiCreds على عنوان URL لخادم GLPI API و UserToken و AppToken.

ماذا يوجد في النص

نظرًا لتحليل JSON المرهق وأوراق if ، فإن النص غير قابل للقراءة بشكل جيد ، لذلك سأصف منطقه هنا.

عندما يتم تشغيله لأول مرة على المضيف ، يمر البرنامج النصي عبر جميع وحدات التحكم ويبحث عن الأقراص في قاعدة بيانات GLPI بالأرقام التسلسلية ، إذا لم يتم العثور عليها ، فإنه يبحث عن النموذج. إذا لم يعثر على النموذج أيضًا ، ثم يضيف نموذج القرص الجديد إلى GLPI ويدخل هذا القرص في قاعدة البيانات.

في كل تمريرة جديدة ، سيحاول البرنامج النصي اكتشاف الأقراص الجديدة ، لكن لا يمكنه حذف الأقراص المفقودة ، لذلك سيتعين عليك القيام بذلك يدويًا.

مثال على النشر

يحتوي مستودع البرنامج النصي على البرنامج النصي Deploy-Send-RAIDtoGLPI.ps1 ، والذي سيقوم بتنزيل أرشيف ZIP بالملفات الضرورية من خادم GLPI الخاص بنا ونشرها على كل مضيف.

بعد نسخ الملفات ، سيقوم البرنامج النصي بتثبيت وكيل FusionInventory كمهمة يومية وإنشاء نفس المهمة للبرنامج النصي الخاص بنا. بعد التنفيذ الناجح ، سنتمكن أخيرًا من رؤية الأقراص في قسم "المكونات" بالكمبيوتر في GLPI.

نتيجة

الآن ، بالانتقال إلى GLPI في قائمة "الإعدادات" -> "المكونات" -> "محركات الأقراص الثابتة" ، يمكننا النقر فوق نماذج محركات الأقراص وإلقاء نظرة على أرقامها لفهم ما نحتاج إلى شرائه.

مخزون LSI RAID في GLPI
مخزون LSI RAID في GLPI

المصدر: www.habr.com

إضافة تعليق