ในบทความนี้ เราจะพูดถึงเล็กน้อยเกี่ยวกับการมอนิเตอร์ระบบสตอเรจ IBM Storwize และระบบสตอเรจอื่นๆ ที่สนับสนุนโปรโตคอล CIM / WBEM ความจำเป็นในการตรวจสอบดังกล่าวไม่อยู่ในวงเล็บ เราจะถือว่านี่เป็นสัจพจน์ เราจะใช้ Zabbix เป็นระบบตรวจสอบ
ใน Zabbix เวอร์ชันล่าสุด บริษัท เริ่มให้ความสำคัญกับเทมเพลตมากขึ้น - เทมเพลตเริ่มปรากฏขึ้นสำหรับบริการตรวจสอบ, DBMS, ฮาร์ดแวร์เซิร์ฟเวอร์ (IMM / iBMC) ผ่าน IPMI การตรวจสอบพื้นที่เก็บข้อมูลยังไม่อยู่ในกรอบ ดังนั้นในการรวมข้อมูลเกี่ยวกับสถานะและประสิทธิภาพของส่วนประกอบพื้นที่เก็บข้อมูลใน Zabbix คุณต้องใช้เทมเพลตที่กำหนดเอง ฉันขอแจ้งให้คุณทราบหนึ่งในเทมเพลตเหล่านี้
ก่อนอื่นทฤษฎีเล็กน้อย
ในการเข้าถึงสถานะและสถิติของหน่วยเก็บข้อมูล IBM Storwize คุณสามารถใช้:
- โปรโตคอล CIM/WBEM;
RESTful API (สนับสนุนโดย IBM Storwize เริ่มต้นด้วยซอฟต์แวร์เวอร์ชัน 8.1.3)- กับดัก SNMP (ชุดกับดักจำกัด ไม่มีสถิติ);
- การเชื่อมต่อ SSH ตามด้วยรีโมต
เหมาะสำหรับการเขียนสคริปต์ทุบตีแบบสบาย ๆ .
ผู้ที่สนใจสามารถเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการตรวจสอบต่างๆ ได้ในส่วนที่เกี่ยวข้องของเอกสารประกอบของผู้จำหน่าย รวมทั้งในเอกสาร
เราจะใช้โปรโตคอล CIM / WBEM ซึ่งช่วยให้เราได้รับพารามิเตอร์ของระบบจัดเก็บข้อมูลโดยไม่มีการเปลี่ยนแปลงที่สำคัญในซอฟต์แวร์สำหรับระบบจัดเก็บข้อมูลต่างๆ โปรโตคอล CIM/WBEM ทำงานตาม
WBEM ทำงานบนโปรโตคอล HTTP ด้วย WBEM คุณสามารถทำงานไม่เพียงแค่กับระบบจัดเก็บข้อมูลเท่านั้น แต่ยังสามารถทำงานร่วมกับ HBA สวิตช์ และเทปไลบรารีได้อีกด้วย
ตามที่
CIM เป็นโมเดลเชิงวัตถุที่ใช้ Unified Modeling Language (UML)
รายการที่มีการจัดการถูกกำหนดเป็นคลาส CIM ที่มีคุณสมบัติและวิธีการเพื่อแสดงข้อมูลและฟังก์ชันที่มีการจัดการ
ตามที่
ในการเชื่อมต่อกับเซิร์ฟเวอร์ WBEM ให้ใช้ตัวสร้างคลาส
conn = pywbem.WBEMConnection(server_uri, (self.login, self.password),
namespace, no_verification=True)
นี่คือการเชื่อมต่อเสมือน เนื่องจาก CIM-XML/WBEM ทำงานผ่าน HTTP การเชื่อมต่อจริงจะเกิดขึ้นเมื่อมีการเรียกใช้เมธอดบนอินสแตนซ์ของคลาส WBEMConnection ตาม IBM System Storage SAN Volume Controller และ Storwize V7000 Best Practices และ Performance Guide (ตัวอย่าง C-8, p. 412) เราจะใช้ "root/ibm" เป็น CIM namespace สำหรับ IBM Storwize storage
โปรดทราบว่าในการเก็บรวบรวมสถิติบนโปรโตคอล CIM-XML/WBEM คุณต้องรวมผู้ใช้ในกลุ่มความปลอดภัยที่เหมาะสม มิฉะนั้น เมื่อเรียกใช้แบบสอบถาม WBEM ผลลัพธ์ของแอตทริบิวต์อินสแตนซ์ของคลาสจะว่างเปล่า.
ในการเข้าถึงสถิติการจัดเก็บ ผู้ใช้ที่อยู่ภายใต้การเรียกตัวสร้าง
เราเชื่อมต่อกับระบบจัดเก็บข้อมูลผ่าน 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
เพิ่มผู้ใช้ zabbix ลงในกลุ่มที่ต้องการ:
> chuser -usergrp 5 zabbix
นอกจากนี้ ตาม IBM System Storage SAN Volume Controller และ Storwize V7000 Best Practices and Performance Guide (หน้า 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)
วิธีรับค่าพารามิเตอร์ระบบจัดเก็บข้อมูล
ตัวอย่าง:
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 การสืบค้นทั้งหมดของอินสแตนซ์ทั้งหมดอาจค่อนข้างช้า สามารถสร้างข้อมูลจำนวนมากที่ต้องจัดเตรียมโดยระบบจัดเก็บข้อมูล ส่งผ่านเครือข่าย และประมวลผลโดยสคริปต์ สำหรับกรณีดังกล่าวมีวิธีการ
request = 'SELECT Name FROM IBMTSSVC_StorageVolumeStatistics'
objects_perfs_cim = wbem_connection.ExecQuery('DMTF:CQL', request)
ในการพิจารณาว่าเราต้องการคลาสใดเพื่อรับพารามิเตอร์ของออบเจกต์หน่วยเก็บข้อมูล เราอ่านเอกสารประกอบ เช่น
ดังนั้น เพื่อรับพารามิเตอร์ (ไม่ใช่ตัวนับประสิทธิภาพ) ของฟิสิคัลดิสก์ (ดิสก์ไดร์ฟ) เราจะสอบถามคลาส IBMTSSVC_DiskDrive เพื่อรับพารามิเตอร์ไดรฟ์ข้อมูล - คลาส IBMTSSVC_StorageVolume เพื่อรับพารามิเตอร์อาร์เรย์ - คลาส IBMTSSVC_Array เพื่อรับพารามิเตอร์ MDisks - คลาส IBMTSSVC_BackendVolume เป็นต้น
คุณสามารถอ่านเกี่ยวกับประสิทธิภาพ
ในการรับสถิติการจัดเก็บสำหรับ Volumes คุณต้องระบุ IBMTSSVC_StorageVolumeStatistics เป็นค่าของพารามิเตอร์ ClassName คุณสมบัติของคลาส IBMTSSVC_StorageVolumeStatistics ที่จำเป็นสำหรับการรวบรวมสถิติสามารถพบได้ใน
นอกจากนี้ สำหรับการวิเคราะห์ประสิทธิภาพ คุณสามารถใช้คลาส IBMTSSVC_BackendVolumeStatistics, IBMTSSVC_DiskDriveStatistics, IBMTSSVC_NodeStatistics
ในการเขียนข้อมูลไปยังระบบตรวจสอบเราจะใช้กลไก
เราอัปโหลดเทมเพลตไปยังเซิร์ฟเวอร์ Zabbix ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์การตรวจสอบสามารถเข้าถึงที่เก็บข้อมูลผ่านโปรโตคอล WEB (TCP / 5989) วางไฟล์การกำหนดค่า สคริปต์การตรวจจับและการตรวจสอบบนเซิร์ฟเวอร์การตรวจสอบ ถัดไป เพิ่มสคริปต์ไปยังตัวกำหนดตารางเวลา ผลที่ตามมา: เราค้นพบวัตถุจัดเก็บข้อมูล (อาร์เรย์ ดิสก์จริงและดิสก์เสมือน กล่องหุ้ม และอื่นๆ อีกมากมาย) ส่งต่อไปยังการค้นพบ Zabbix อ่านสถานะของพารามิเตอร์ อ่านสถิติประสิทธิภาพ (ตัวนับประสิทธิภาพ) ส่งทั้งหมดนี้ไปยังที่เกี่ยวข้อง รายการ Zabbix ของเทมเพลตของเรา
เทมเพลต Zabbix, สคริปต์ python, โครงสร้างของคลาสหน่วยเก็บข้อมูลและคุณสมบัติ รวมถึงตัวอย่างไฟล์คอนฟิกูเรชัน
ที่มา: will.com