16 יצירת שמות מוני ביצועים מותאמים אישית VMware

סקירה כללית

נתיב מונה הביצועים של VMware כולל את פורמט קבוצה/מונה[אוסף] שבו:

  • קבוצה - קבוצת מונה הביצועים, למשל מעבד
  • counter - שם מונה הביצועים, למשל usagemhz
  • אוסף - סוג אוסף מונה הביצועים, למשל מְמוּצָע

אז הדוגמה לעיל תיתן את נתיב הנגד הבא: cpu/usagemhz[ממוצע]

תיאורי הקבוצות של מונה הביצועים, שמות המונה והאוסף ניתן למצוא סוגים ב-VMware תיעוד.

ניתן להשיג שמות פנימיים וליצור שמות מונה ביצועים מותאמים אישית באמצעות פריט סקריפט ב- Zabbix.

תצורה

  1. צור פריט סקריפט מושבת במארח VMware הראשי (שם קיים הפריט eventlog[]) עם הפרמטרים הבאים:

  • שם: מדדי VMware
  • סוג: סקריפט
  • מפתח: vmware.metrics
  • סוג מידע: טקסט
  • סקריפט: העתק והדבק את ה-script המופיע למטה
  • פסק זמן: 10
  • תקופת אחסון היסטוריה: אין לשמור היסטוריה
  • מופעל: לא מסומן

סקריפט

 נסה {
     Zabbix.log(4, 'vmware metrics script');

     תוצאה של var, resp,
     req = new HttpRequest();
     req.addHeader('Content-Type: application/xml');
     req.addHeader('SOAPAction: "urn:vim25/6.0"');

     login = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:vim25">\
     <soapenv:Header/>\
     <soapenv:Body>\
         <urn:Login>\
             <urn:_this type="SessionManager">SessionManager</urn:_this>\
             <urn:userName>{$VMWARE.USERNAME}</urn:userName>\
             <urn:password>{$VMWARE.PASSWORD}</urn:password>\
         </urn:Login>\
     </soapenv:Body>\
 </soapenv:Envelope>'
     resp = req.post("{$VMWARE.URL}", התחברות);
     if (req.getStatus() != 200) {
         throw 'קוד תגובה: '+req.getStatus();
     }

     query = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:vim25">\
 <soapenv:Header/>\
     <soapenv:Body>\
         <urn:RetrieveProperties>\
             <urn:_this type="PropertyCollector">propertyCollector</urn:_this>\
             <urn:specSet>\
                 <urn:propSet>\
                    <urn:type>PerformanceManager</urn:type>\
                    <urn:pathSet>perfCounter</urn:pathSet>\
                 </urn:propSet>\
                 <urn:objectSet>\
                    <urn:obj type="PerformanceManager">PerfMgr</urn:obj>\
                 </urn:objectSet>\
             </urn:specSet>\
         </urn:RetrieveProperties>\
     </soapenv:Body>\
 </soapenv:Envelope>'
     resp = req.post("{$VMWARE.URL}", query);
     if (req.getStatus() != 200) {
         throw 'קוד תגובה: '+req.getStatus();
     }
     Zabbix.log(4, 'vmware metrics=' + resp);
     תוצאה = resp;

     logout = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:vim25">\
     <soapenv:Header/>\
     <soapenv:Body>\
         <urn:Logout>\
             <urn:_this type="SessionManager">SessionManager</urn:_this>\
         </urn:Logout>\
     </soapenv:Body>\
 </soapenv:Envelope>'

     resp = req.post("{$VMWARE.URL}",logout);
     if (req.getStatus() != 200) {
         throw 'קוד תגובה: '+req.getStatus();
     }

 } תפוס (שגיאה) {
     Zabbix.log(4, קריאת vmware נכשלה: '+שגיאה);
     תוצאה = {};
 }

 החזרת תוצאה;

לאחר הגדרת הפריט, לחץ על כפתור בדיקה ולאחר מכן לחץ על קבל ערך.

העתק את ה-XML שהתקבל לכל מעצב XML ומצא את המדד הרצוי.

דוגמה ל-XML עבור מדד אחד:

 <PerfCounterInfo xsi:type="PerfCounterInfo">
     <key>6</key>
     <nameInfo>
         <label>שימוש ב-MHz</label>
         <summary>שימוש במעבד במגה הרץ במהלך המרווח</summary>
         <key>usagemhz</key>
     </nameInfo>
     <groupInfo>
         <label>מעבד</label>
         <summary>CPU</summary>
         <key>מעבד</key>
     </groupInfo>
     <unitInfo>
         <label>MHz</label>
         <summary>Megahertz</summary>
         <key>megaHertz</key>
     </unitInfo>
     <rollupType>ממוצע</rollupType>
     <statsType>שיעור</statsType>
     <level>1</level>
     <perDeviceLevel>3</perDeviceLevel>
 </PerfCounterInfo>

השתמש ב-XPath כדי לחלץ את נתיב המונה מ-XML שהתקבל. עבור הדוגמה שלמעלה, ה-XPath יהיה:

field xPath ערך
קבוצה //groupInfo[../key=6]/key מעבד
counter //nameInfo[../key=6]/key usagemhz
rollup //rollupType[../key=6] ממוצע

נתיב מונה הביצועים המתקבל במקרה זה הוא: cpu/usagemhz[average]