Het VMware-prestatie teller pad heeft de group/counter[rollup]
formaat waarbij:
group
- de prestatie teller groep, bijvoorbeeld cpucounter
- de naam van de prestatie teller, bijvoorbeeld usegemhzrollup
- het type prestatie teller rollup, bijvoorbeeld gemiddeldDus het bovenstaande voorbeeld zou het volgende teller pad geven: cpu/usegemhz[gemiddelde]
De beschrijvingen van de prestatie teller items, de namen van de tellers en de rollup typen zijn te vinden in VMware documentatie.
Het is mogelijk om interne namen te verkrijgen en aangepaste prestatie teller items te maken met behulp van een script item in Zabbix.
try {
Zabbix.log(4, 'vmware-metingen 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.GEBRUIKERSNAAM}</urn:userName>\
<urn:password>{$VMWARE.WACHTWOORD}</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-metingen=' + 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-oproep mislukt: '+error);
result = {};
}
return result;
Zodra het item is geconfigureerd, druk op de Test knop en vervolgens op Waardeveld ophalen.
Kopieer de ontvangen XML naar een XML-formatter en zoek de gewenste metriek op.
Een voorbeeld van XML voor één metriek:
<PerfCounterInfo xsi:type="PerfCounterInfo">
<key>6</key>
<nameInfo>
<label>Gebruik in MHz</label>
<summary>CPU-gebruik in megahertz tijdens het 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>gemiddeld</rollupType>
<statsType>rate</statsType>
<level>1</level>
<perDeviceLevel>3</perDeviceLevel>
</PerfCounterInfo>
Gebruik XPath om het tellerpad uit de ontvangen XML te extraheren. Voor het bovenstaande voorbeeld zal de XPath zijn:
veld | xPath | waarde |
---|---|---|
groep | //groupInfo[../key=6]/key | cpu |
teller | //nameInfo[../key=6]/key | usagemhz |
rollup | //rollupType[../key=6] | gemiddeld |
Het resulterende prestatiemeterpad is in dit geval: cpu/usagemhz[gemiddeld]