مخزون LSI RAID في GLPI



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



خلفية



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



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



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





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

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



ما هو المطلوب



  1. GLPI 9.5.1 ( )
  2. FusionInventory Windows
  3. Windows 2012 R2 ( ) , management-VM , PowerShell 4
  4. MegaRAID
  5. PowerShell — PSGLPI
  6. GLPI Admin API, UserToken AppToken


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



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 المرهقة وورقة ifs ، يصعب قراءة النص ، لذلك سأصف منطقه هنا.



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



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



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



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



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



نتيجة



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








All Articles