Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

15 Creación de nombres personalizados de contadores de rendimiento para VMware

Descripción general

La ruta del contador de rendimiento de VMware tiene el formato group/counter[rollup] donde:

  • group - el grupo del contador de rendimiento, por ejemplo cpu
  • counter - el nombre del contador de rendimiento, por ejemplo usagemhz
  • rollup - el tipo de resumen del contador de rendimiento, por ejemplo average

Así, el ejemplo anterior daría la siguiente ruta de contador: cpu/usagemhz[average]

Las descripciones de los grupos de contadores de rendimiento, los nombres de los contadores y los tipos de resumen se pueden encontrar en la documentación de VMware.

Es posible obtener nombres internos y crear nombres personalizados de contadores de rendimiento utilizando una métrica de script en Zabbix.

Configuración

  1. Cree una métrica de tipo Script deshabilitada en el equipo principal de VMware (donde está presente la métrica eventlog[]) con los siguientes parámetros:

  • Nombre: métricas de VMware
  • Tipo: Script
  • Clave: vmware.metrics
  • Tipo de información: Texto
  • Script: copie y pegue el script proporcionado a continuación
  • Tiempo de espera: 10
  • Histórico: No almacenar
  • Habilitado: desmarcado

Script

try {
           Zabbix.log(4, 'vmware metrics script');
       
           var result, 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}", login);
           if (req.getStatus() != 200) {
               throw 'Response code: '+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 'Response code: '+req.getStatus();
           }
           Zabbix.log(4, 'vmware metrics=' + resp);
           result = 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 'Response code: '+req.getStatus();
           }
       
       } catch (error) {
           Zabbix.log(4, 'vmware call failed : '+error);
           result = {};
       }
       
       return result;

Una vez que la métrica esté configurada, pulse el botón Probar y luego pulse Obtener valor.

Copie el XML recibido a cualquier formateador de XML y busque la métrica deseada.

Un ejemplo de XML para una métrica:

<PerfCounterInfo xsi:type="PerfCounterInfo">
           <key>6</key>
           <nameInfo>
               <label>Usage in MHz</label>
               <summary>CPU usage in megahertz during the interval</summary>
               <key>usagemhz</key>
           </nameInfo>
           <groupInfo>
               <label>CPU</label>
               <summary>CPU</summary>
               <key>cpu</key>
           </groupInfo>
           <unitInfo>
               <label>MHz</label>
               <summary>Megahertz</summary>
               <key>megaHertz</key>
           </unitInfo>
           <rollupType>average</rollupType>
           <statsType>rate</statsType>
           <level>1</level>
           <perDeviceLevel>3</perDeviceLevel>
       </PerfCounterInfo>

Utilice XPath para extraer la ruta del contador del XML recibido. Para el ejemplo anterior, el XPath será:

campo xPath valor
grupo //groupInfo[../key=6]/key cpu
contador //nameInfo[../key=6]/key usagemhz
rollup //rollupType[../key=6] average

La ruta resultante del contador de rendimiento en este caso es: cpu/usagemhz[average]