Zabbix: مراقبة تخزين القرص DELL MD36XX

مرحبا بالجميع!


لقد فتحنا مجموعة جديدة لدورة Linux Administrator المحدثة: جميع المعلمين الجدد ، وبرنامج ديناميكي ، ومناقشات مثيرة للاهتمام. حسنًا ، في الوقت نفسه ، نشارك ملاحظة مثيرة للاهتمام من الحالة الحقيقية لأحد المعلمين - أليكسي تسيكونوف .


دعنا نذهب.



التحدي


يجب تكوين مراقبة الحمل على مخازن أقراص DELL MD36XX.
هناك مشكلة - لا تعرف الرفوف كيفية إرسال البيانات عبر snmp. بالمناسبة ، توجد مشاكل مماثلة أيضًا في مرافق التخزين الخاصة بشركات IBM و HP وغيرها من البائعين.


البيئة


يوفر البائعون أنفسهم برنامج العميل. ما يسمى StorageManager's. بعضها مخصص لنظام التشغيل Windows فقط ، ولكنه ظهر مؤخرًا في Linux. في حالتي ، تم تثبيت البرنامج على Linux ويتضمن أداة وحدة التحكم SMcli. باستخدام SMcli ، يمكنك أخذ الإحصائيات إلى ملف:


SMcli -n StorageName -S -quick -c "save storageArray performanceStats file=\\"/var/log/md36xx.stat\\";" 

ويبدو هذا


 "Performance Monitor Statistics for Storage Array: StorageName - Date/Time: 1/17/18 9:37:04 PM - Polling interval in seconds: 5" "Objects","Total IOs","Read %","Primary Read Cache Hit %","Primary Write Cache Hit %","SSD Read Cache Hit %","Current MBs/sec","Maximum MBs/sec","Current IOs/sec","Ma ximum IOs/sec","Minimum IOs/sec","Average IOs/sec","Minimum MBs/sec","Average MBs/sec","Current IO Latency","Maximum IO Latency","Minimum IO Latency","Average IO Late ncy" "Capture Iteration: 1","","","","","","","","","","","","","","","","","" "Date/Time: 1/17/18 9:37:05 PM","","","","","","","","","","","","","","","","","" "Storage Array StorageName ","6396.0","52.0","64.6","100.0","0.0","31.2","31.2","1279.0","1279.0","1279.0","1279.0","31.2","31.2","-","-","-","-" "RAID Controller Module 0","4043.0","47.3","55.3","100.0","0.0","27.3","27.3","808.0","808.0","808.0","808.0","27.3","27.3","-","-","-","-" "RAID Controller Module 1","2353.0","60.0","77.3","100.0","0.0","3.9","3.9","470.0","470.0","470.0","470.0","3.9","3.9","-","-","-","-" "Disk Pool Disk_Pool_1","5181.0","59.6","69.3","100.0","0.0","29.1","29.1","1036.0","1036.0","1036.0","1036.0","29.1","29.1","-","-","-","-" "Disk Pool Disk_Pool_vps","1215.0","19.4","3.8","100.0","0.0","2.1","2.1","243.0","243.0","243.0","243.0","2.1","2.1","-","-","-","-" "Virtual Disk VPS1","645.0","1.6","30.0","100.0","0.0","0.9","0.9","129.0","129.0","129.0","129.0","0.9","0.9","1.7","1.7","1.7","1.7" ... 

خيارات القرار


يمكن تحليل هذه المعلومات وإرسالها إلى zabbix ، وهناك عدة خيارات للإرسال


وكيل Zabbix و UserParameter ، حيث يمكنك طلاء كل من المعلمات المهمة ، على سبيل المثال:


 UserParameter = dell.md.discovery, /path/script_discovery UserParameter = dell.md.totalio[*], /path/script2 $1 UserParameter = dell.md.currmb[*], /path/script3 $1 

Zabbix_sender ، مما يجعل من الممكن إرسال جميع المعلمات في وقت واحد مع مكالمة البرنامج النصي. هذا هو الخيار الذي اخترته.


الإعدادات في zabbix


في zabbix ، تحتاج إلى تكوين مضيف جديد وإنشاء قاعدة اكتشاف فيه



يصف مرشح في ذلك:



وإضافة النماذج الأولية للعنصر


item_proto.png


فيما يلي مزيد من التفاصيل حول كيفية وصف النموذج الأولي:



جارٍ الإرسال إلى Zabbix


يمكن إرسال البيانات عبر zabbix_sender -i <key_value_file>


تنسيق الملف:


 HOST key value 

وكقيمة ، يمكنك تمرير json للاكتشاف في التنسيق:


 { 'data' :[ {'{#MDDEV}': 'drive1'}, {'{#MDDEV}': 'drive1'}, ] } 

حيث {#MDDEV} هو الماكرو الذي نجد من خلاله أسماء أجهزتنا / محركات الأقراص التي سنأخذ منها الإحصائيات.


إجمالي خوارزمية الإجراءات كما يلي:


- نقوم بإزالة الإحصائيات من خلال SMcli ، وحفظها في ملف ؛
- تحليل الملف المستلم ؛
- إنشاء ملف لـ zabbix_sende r.


كل هذا يمكن تنفيذه باستخدام نص bash . ولكن يبدو لي أن أسهل طريقة لتطبيق نص Python واحد ، والذي سيتم استدعاؤه من التاج مرة واحدة في الدقيقة. نشأت صعوبات فقط مع وحدة الإرسال في zabbix. تم تثبيته تحت 2.7 و 3.6 ، لكنه بدأ أقل من 3.6.


يمكن أن تؤخذ النصي على جيثب


كما هو الحال دائمًا ، نحن في انتظار الأسئلة والتعليقات هنا أو في درس مفتوح .

Source: https://habr.com/ru/post/ar416787/


All Articles