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 metriekscript');
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 'Reactiecode: '+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 'Reactiecode: '+req.getStatus();
}
Zabbix.log(4, 'vmware metrieken=' + 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 'Reactiecode: '+req.getStatus();
}
} catch (error) {
Zabbix.log(4, 'vmware-oproep mislukt: '+error);
result = {};
}
return result;
Zodra het item is geconfigureerd, drukt u op de knop Testen, en drukt u vervolgens op Waarde ophalen.
Kopieer de ontvangen XML naar een willekeurige XML-formatter en zoek de gewenste metriek.
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 halen. Voor het bovenstaande voorbeeld is de XPath:
veld | xPath | waarde |
---|---|---|
groep | //groupInfo[../key=6]/key | cpu |
teller | //nameInfo[../key=6]/key | usagemhz |
rollup | //rollupType[../key=6] | gemiddeld |
Het resulterende prestatieteller-pad in dit geval is: cpu/usagemhz[gemiddeld]